<?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>26398</bug_id>
          
          <creation_ts>2009-06-14 22:18:47 -0700</creation_ts>
          <short_desc>Make IDLParser.pm conform to the WebIDL spec</short_desc>
          <delta_ts>2012-09-27 01:13:29 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81128</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>arv</cc>
    
    <cc>bashi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>code.vineet</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
    
    <cc>ojan</cc>
    
    <cc>sh4.seo</cc>
    
    <cc>shezbaig.wk</cc>
    
    <cc>tasak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125882</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-14 22:18:47 -0700</bug_when>
    <thetext>Currently extended attributes are in the wrong place in our syntax. For example, they come after the word &quot;interface&quot; but should come before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125884</commentid>
    <comment_count>1</comment_count>
      <attachid>31280</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-06-14 22:19:26 -0700</bug_when>
    <thetext>Created attachment 31280
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127360</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-06-22 08:50:52 -0700</bug_when>
    <thetext>I&apos;ll make sure this works w/V8 bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130674</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-07-09 09:32:23 -0700</bug_when>
    <thetext>Yay! Judging from the patch, this should work as-is w/V8 bindings codegen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132760</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-17 16:14:29 -0700</bug_when>
    <thetext>IDLParser.pm assumes that the first line of an interface has the word &quot;interface&quot; in it, so this won&apos;t work until we deal with that brokenness.

Here&apos;s the command that globally changes the .idl files, though:

find . -name &apos;*.idl&apos; | xargs -n1 perl -i -0777 -pe &apos;s/\b(((readonly\s)?attribute|interface|in)\s+)(\[.*?\]\s+)/$4$1/sg&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580651</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-03-16 10:34:56 -0700</bug_when>
    <thetext>This is a challenging project. I started on it, but got stuck. Need someone interested in this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662865</commentid>
    <comment_count>6</comment_count>
      <attachid>150773</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-04 04:49:31 -0700</bug_when>
    <thetext>Created attachment 150773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662867</commentid>
    <comment_count>7</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-04 04:52:04 -0700</bug_when>
    <thetext>First, Follow and Director for WebIDL grammar is:
https://docs.google.com/spreadsheet/ccc?key=0AtdkWCxGaEc2dFYzbmE1QTA1NnZydnFXV3J0UjI2V0E

The differences between generated files are:
https://docs.google.com/document/d/1jaE15g8AqeGmC1-FJNpf5dJNlyJmN2jAZ5w_Tb31aZk/edit

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662874</commentid>
    <comment_count>8</comment_count>
      <attachid>150773</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-04 04:56:24 -0700</bug_when>
    <thetext>Comment on attachment 150773
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        No new tests. Tested by comparing with sources generated by
&gt; +        the previous IDLParser.pm.

No diff! Great!

&gt; Source/WebCore/ChangeLog:645
&gt; +        * bindings/scripts/IDLParser.pm:

Would you please upload the new IDLParser.pm as a separate file just for review? The current diff style is not readable...:( I think if IDLParser.pm is OK, then the whole patch is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663384</commentid>
    <comment_count>9</comment_count>
      <attachid>150888</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-05 01:23:42 -0700</bug_when>
    <thetext>Created attachment 150888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663582</commentid>
    <comment_count>10</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-05 08:43:40 -0700</bug_when>
    <thetext>darin: Would you roughly check if rewriting IDLParser in this direction is OK? I am happy to review implementation details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664531</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-08 18:41:03 -0700</bug_when>
    <thetext>Generally speaking, we&apos;d like to evolve WebKitIDL towards matching WebIDL to make it easier to compare our implementation with the specs.  In addition to moving the extended attributes, will this new approach to IDLParser.pm let us move our syntax closer to WebIDL?

One thing I noticed about this patch is that it triples the size of IDLParser.pm.  We should be sensitive to that as a cost of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664610</commentid>
    <comment_count>12</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-08 21:25:23 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; will this new approach to IDLParser.pm let us move our syntax closer to WebIDL?

Yes. The patch is implemented in conformance with the grammar defined in the spec:

http://www.w3.org/TR/WebIDL/#idl-grammar

&gt; One thing I noticed about this patch is that it triples the size of IDLParser.pm.  We should be sensitive to that as a cost of this change.

If I had to say one thing, the new IDLParser.pm might be a bit over engineering than is required to parse the current WebKitIDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664612</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-08 21:30:20 -0700</bug_when>
    <thetext>It is possible to follow the grammar of http://www.w3.org/TR/WebIDL/#idl-grammar without tripling the amount of code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664937</commentid>
    <comment_count>14</comment_count>
      <attachid>150888</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-09 10:10:51 -0700</bug_when>
    <thetext>Comment on attachment 150888
Patch

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

I like this change. I don&apos;t think the code size increase is a big deal. The new code is much easier to follow.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:289
&gt; +# InteraceMembers := ExtendedAttributeList InterfaceMember InterfaceMembers | epsilon

typo

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:866
&gt; +    if ($next-&gt;type() == IdentifierToken &amp;&amp; $next-&gt;value() eq &quot;optional&quot;) {
&gt; +        $self-&gt;getToken();
&gt; +        return 0;
&gt; +    }
&gt; +    return 0;
&gt; +}

How come we are returning 0 in both these cases?

Same issue with parseEllipsis</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666670</commentid>
    <comment_count>15</comment_count>
      <attachid>151681</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-11 04:57:05 -0700</bug_when>
    <thetext>Created attachment 151681
IDL Parser Template Code Generator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666671</commentid>
    <comment_count>16</comment_count>
      <attachid>151682</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-11 04:58:40 -0700</bug_when>
    <thetext>Created attachment 151682
IDL Grammar used by WebKit IDL files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666675</commentid>
    <comment_count>17</comment_count>
      <attachid>151686</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-11 05:00:44 -0700</bug_when>
    <thetext>Created attachment 151686
Modified WebIDL Grammar based on 20110712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667445</commentid>
    <comment_count>18</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-12 00:03:38 -0700</bug_when>
    <thetext>&gt; It is possible to follow the grammar of http://www.w3.org/TR/WebIDL/#idl-grammar without tripling the amount of code?

tasak: would you comment on abarth&apos;s comment above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667451</commentid>
    <comment_count>19</comment_count>
      <attachid>151870</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-12 00:22:21 -0700</bug_when>
    <thetext>Created attachment 151870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667452</commentid>
    <comment_count>20</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-12 00:26:02 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Generally speaking, we&apos;d like to evolve WebKitIDL towards matching WebIDL to make it easier to compare our implementation with the specs.  In addition to moving the extended attributes, will this new approach to IDLParser.pm let us move our syntax closer to WebIDL?

Yes, I&apos;m trying to move closer to WebIDL. 
I attached the IDL grammar which the new IDLParser.pm expects.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667460</commentid>
    <comment_count>21</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-12 00:34:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; It is possible to follow the grammar of http://www.w3.org/TR/WebIDL/#idl-grammar without tripling the amount of code?

I generated the new IDLParser.pm from the attached WebID grammar (the grammar is based on a little older WebIDL spec) by using the IDL Parser Template Code Generator.
I modified the generated code to support old and new WebIDL grammars and to generate the same outputs as the old IDLParser.pm does.

As current WebKit IDL files doesn&apos;t use Dictionary, DictionaryMembers, ImplementStatements and so on, I can remove the code for parsing them. However, I&apos;m not sure whether I can reduce the code.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667485</commentid>
    <comment_count>22</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-12 01:03:19 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=151870) [details]
&gt; Patch

I removed diff for IDL files and added backwardCompatibleMode to parse the current WebKit IDL files.
Its default value is 1. This means that IDLParser.pm expects the current WebKit IDL files&apos; grammar.

The following is the way to generate IDLParser.pm:
(1) Run the uploaded IDL ParserTemplate Code Generator script with the WebIDL grammar definition file.

e.g.
  python IDLParserTemplateGenerator.py WebIDLGrammar.txt

The WebIDL grammar definition file is copied from http://www.w3.org/TR/2011/WD-WebIDL-20110712/#idl-grammar &apos;s table and modified to support WebKit IDL files. i.e.

- Support the &quot;module&quot; which is not terminated by &quot;;&quot;,
- Support &quot;setter raises&quot; and &quot;getter raises&quot;,
- Support multiple parents,
- Support &quot;int&quot;.
- Extended attribute can has &quot;condition1|condition2&quot; or &quot;condition1&amp;condition2&quot;... ,
(the spec says, the extended attributes defined in this document only accept a more restricted syntax. 
The above extended attributes don&apos;t match the spec.)
- Move extended attributes&apos; location,
- Extended attributes can be terminated by &quot;,]&quot;. (According to the spec, the &quot;,&quot; is wrong.)

The result is https://bugs.webkit.org/attachment.cgi?id=151682

I created one more WebIDL grammar to move extended attributes to the spec location. The difference between the previous grammar and this is:

- Not support &quot;setter raises&quot; and &quot;getter raises&quot;. Support &quot;setraises&quot; and &quot;getraises&quot;.
- Move extended attributes to the spec location,

The reason why I didn&apos;t use the latest spec is that &quot;module&quot; was removed from the spec.
I&apos;m not sure what is the best way to remove &quot;module&quot;s from WebKit IDL files. So I used the last spec which supports &quot;module&quot;.

(2) Merge two template codes and added the code to generate the same outputs as the original IDLParser.pm does.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667500</commentid>
    <comment_count>23</comment_count>
      <attachid>151682</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-12 01:15:49 -0700</bug_when>
    <thetext>Comment on attachment 151682
IDL Grammar used by WebKit IDL files

[57]	IntegerType	→	&quot;short&quot; 
 | &quot;int&quot;
 | &quot;long&quot; OptionalLong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667789</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-12 08:19:29 -0700</bug_when>
    <thetext>&gt; It is possible to follow the grammar of http://www.w3.org/TR/WebIDL/#idl-grammar without tripling the amount of code?

I&apos;ve spent some more time looking at this patch.  Like arv, I find the new code easier to read and understand than the old code (which has always been mysterious to me).  Part of the reason the new code is larger than the old code is that it supports both the new and old syntax.  Presumably we&apos;ll remove the code for parsing the old syntax once we convert all the IDL files.

I&apos;d like to defer to Kentaro for the actual review, if he&apos;s willing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667803</commentid>
    <comment_count>25</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-12 08:30:26 -0700</bug_when>
    <thetext>I&apos;ll review the details when I have time (maybe in weekend or next week).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668981</commentid>
    <comment_count>26</comment_count>
      <attachid>151870</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-13 07:00:53 -0700</bug_when>
    <thetext>Comment on attachment 151870
Patch

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

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:314
&gt; +    for my $item (@{$interfaceMembers}) {

How about this?

$dataNode-&gt;attributes = [ grep { ref($_) eq &apos;domAttribute&apos; } @$interfaceMembers ];
$dataNode-&gt;constants = [ grep { ref($_) eq &apos;domConstant&apos; } @$interfaceMembers ];
$dataNode-&gt;functions = [ grep { ref($_) eq &apos;domFunction&apos; } @$interfaceMembers ];

I know this is slower than for-loop. But, we may know what attributes, constants and function have at glance.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:512
&gt; +    for my $item (@{$exceptionMembers}) {

This is fragment as same as in parseInterfaceNew.
Is it better to have subroutine for sharing code?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:957
&gt; +    if ($backwardCompatibleMode) {

nit: return $backwardCompatibleMode ? $self-&gt;parseArgumentOld() : $self-&gt;parseAgumentNew();

or

if ($backwardCompatibleMode) {
    return $self-&gt;parseArgumentOld();
}
return $self-&gt;parseArgumentNew();

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1008
&gt; +    return;

nit: Do we need to have &quot;return&quot; at end of subroutine?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1018
&gt; +    return;

nit: Do we need to have &quot;return&quot; at end of subroutine?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1114
&gt; +    my %attr = ();

nit: return {};

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1134
&gt; +        return \%attr;

How about writing below?

my $attrs = {};
...
$attrs-&gt;{$name} = ...;

return $attrs;

This may be easier to put &quot;\&quot; onto each return statement.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1216
&gt; +        push(@types,$self-&gt;parsePrimitiveOrStringType());

nit: We don&apos;t need to have @types to reduce ARRAY copy and to avoid reusing variable.

return join(&apos;&apos;, $self-&gt;parsePimitiveOrStringType(), @{$self-&gt;parseTypeSuffix());

This comment applies other usage of @types and join(&apos;&apos;, @types) in this subroutine.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1349
&gt; +        return \@suffix;

nit: return [ &quot;[]&quot;, @{$self-&gt;parseTypeSuffix() ];

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1355
&gt; +        return \@suffix;

nit: return [ &quot;?&quot;, @{$self-&gt;parseTypeSuffixStartingWithArray()} ];

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1408
&gt; +        return \@names;

nit: return [ $self-&gt;parseScopedName(), @{$self-&gt;parseScopedNames()} ];

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1578
&gt; +    for my $item (@{$interfaceMembers}) {

See a comment for parseInterfaceNew and parseExceptionNew.
We may want to share codes.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1707
&gt; +    for my $item (@{$exceptionMembers}) {

See a comment for parseInterfaceNew, parseExceptionNew and parseInterfaceOld.
We may want to have &quot;sub&quot; and share code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670727</commentid>
    <comment_count>27</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-16 15:38:47 -0700</bug_when>
    <thetext>I don&apos;t think there is any need to support module. It is not used by any of the code generators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675441</commentid>
    <comment_count>28</comment_count>
      <attachid>151870</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-22 22:13:27 -0700</bug_when>
    <thetext>Comment on attachment 151870
Patch

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

Great patch!

General comments:

- Some die &quot;...&quot; messages are not descriptive. Please recheck dying messages so that developers can understand what kind of error is happening.

- Let&apos;s remove a bunch of verbose messages like &quot;while parsing the rule: Module -&gt; ...&quot;. (Details are explained below.)

- Let&apos;s use &apos;...&apos; instead of &quot;...&quot; to avoid escaping &quot;\&quot;&quot;.

- Let&apos;s avoid perl specific syntax (e.g. values, grep, map etc) for readability.

- Please define a long regular expression in a global variable. (e.g. /^(double|typedef|caller|byte|DOMString|short|int|exception|omittable|float|attribute|static|readonly|deleter|dictionary|\:\:|unsigned|optional|setter|interface|sequence|stringifier|module|void|getter|octet|long|\[|const|boolean|in|Date|creator|any|object)$/). We want to avoid too long regular expressions.

- &apos;:&apos; is not a meta character of regular expressions. You do not need to escape it in regular expressions.

- Please remove unnecessary parentheses from regular expressions. (e.g. You can remove &apos;(&apos; and &apos;)&apos; from &apos;$foo =~ /^(true|false)$/&apos; where you do not use $1 later.)

- m/foo/ =&gt; /foo/

- $foo =~ /^(bar)$/ =&gt; $foo eq &quot;bar&quot;.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:40
&gt; +use constant True =&gt; 1;
&gt; +use constant False =&gt; 0;

Nit: I do not think these variables are needed in your patch. You can just use 1 or 0.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:65
&gt; +    $beQuiet = shift;

Nit: Let&apos;s do all shifts at the head of a subroutine.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:70
&gt; +sub shouldTokenValueEquals

Nit: assertTokenValue might be a better name.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:74
&gt; +    my $line = shift;

Nit: $message would be a better name.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:78
&gt; +sub shouldTokenTypeEquals

Nit: assertTokenType

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:117
&gt; +    die $@ . &quot; in $fileName&quot; if $@;

More descriptive message please.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:119
&gt; +    die &quot;No document found&quot; unless length(@definitions) &gt; 0;

length() returns a string length. This check should be &apos;unless @definitions&apos;.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:148
&gt; +    if ($self-&gt;{DocumentContent} =~ m/^[\t\n\r ]*[\n\r]/) {

Nit: &apos;m/foo/&apos; =&gt; &apos;/foo/&apos;. The same comment for other regular expressions.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:149
&gt; +        $self-&gt;{DocumentContent} =~ s/^[\t\n\r ]*[\n\r]//g;

&apos;g&apos; is not needed.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:153
&gt; +            $self-&gt;{Line} = $1;

You want to store a line number to $self-&gt;{Line}, right? But $1 is ([^\n\r]+) in your patch.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:155
&gt; +            $self-&gt;{Line} = &quot;&quot;;

Nit: &quot;&quot; =&gt; &quot;Unknown&quot;

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:158
&gt; +    $self-&gt;{DocumentContent} =~ s/^([\t\n\r ]+)//g;

s/^([\t\n\r ]*)//. &apos;g&apos; is not needed.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:159
&gt; +    if (length($self-&gt;{DocumentContent}) &lt;= 0) {

Nit: length($self-&gt;{DocumentContent}) == 0

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:167
&gt; +        $self-&gt;{DocumentContent} =~ s/^(-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+))//;

Let&apos;s avoid writing the regular expression twice. You can store the regular expression in a variable.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:173
&gt; +        $self-&gt;{DocumentContent} =~ s/^(-?[1-9][0-9]*|-?0[Xx][0-9A-Fa-f]+|-?0[0-7]*)//;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:179
&gt; +        $self-&gt;{DocumentContent} =~ s/^(\&quot;[^\&quot;]*\&quot;)//;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:185
&gt; +        $self-&gt;{DocumentContent} =~ s/^([A-Z_a-z][0-9A-Z_a-z]*)//;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:189
&gt; +        $token-&gt;type(OtherToken);

What is other token?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:191
&gt; +        $self-&gt;{DocumentContent} =~ s/^(::|\.\.\.|[^\t\n\r 0-9A-Z_a-z])//;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:204
&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(dictionary|typedef|module|\:\:|\[|interface|exception|partial)$/)) {

&apos;:&apos; is not a meta character. You do not need to escape it. The same comment for other &apos;\:&apos;s in this patch.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:210
&gt; +    return\@definitions;

Nit: &apos;return \@definitions&apos;. A space after &apos;return&apos; please.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:217
&gt; +    if ($next-&gt;value() =~ /^(partial)$/) {

Nit: $next-&gt;value() eq &quot;partial&quot;. The same comment for other &apos;$foo =~ /^(bar)/$&apos;s.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:220
&gt; +    if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(double|typedef|caller|byte|DOMString|short|int|exception|omittable|float|attribute|static|readonly|deleter|dictionary|\:\:|unsigned|optional|setter|interface|sequence|stringifier|module|void|getter|octet|long|\[|const|boolean|in|Date|creator|any|object)$/)) {

This long list is used several times in the parser. Let&apos;s define it by a global variable.

In addition, the parenthesis (i.e. &apos;(double|...|object)&apos;) is not needed. The same comment for other regular expressions. Please do not add unnecessary parentheses.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:224
&gt; +    die &quot;Unexpected token &quot; . $next-&gt;value() . &quot; while applying the rule: Definition -&gt; ExtendedAttributeList NormalDefinition|PartialInterface at &quot; . $self-&gt;{Line};

Let&apos;s define assertUnexpectedToken() for this dying message. The same comment for other parts.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:233
&gt; +    if ($next-&gt;value() =~ /^(module)$/) {

Nit: $next-&gt;value() eq &quot;module&quot;

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:262
&gt; +    shouldTokenValueEquals($self-&gt;getToken(), &quot;module&quot;, &quot;while parsing the rule: Module -&gt; \&quot;module\&quot;^^^^ identifier \&quot;\{\&quot; Definitions \&quot;\}\&quot; OptionalSemicolon at line: \&quot;&quot; . $self-&gt;{Line} . &quot;\&quot;&quot;);

Let&apos;s use &apos;...&apos; to avoid escaping &quot;\&quot;&quot;. The same comment for all strings that contain &quot;\&quot;&quot;.

In addition I want to remove a bunch of verbose messages like &quot;while parsing the rule: Module -&gt; ...&quot;. I think that the column number and the line number would be enough for the message. Then the code would look like:

  shouldTokenValueEquals($self-&gt;getToken(), &quot;module&quot;, $self);

Then shouldTokenValueEquals() can output $self-&gt;{Line} and $self-&gt;{Column}. It would be nicer if shouldTokenValueEquals() can also output the exact error position of $self-&gt;{DocumentContent}.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:314
&gt;&gt; +    for my $item (@{$interfaceMembers}) {
&gt; 
&gt; How about this?
&gt; 
&gt; $dataNode-&gt;attributes = [ grep { ref($_) eq &apos;domAttribute&apos; } @$interfaceMembers ];
&gt; $dataNode-&gt;constants = [ grep { ref($_) eq &apos;domConstant&apos; } @$interfaceMembers ];
&gt; $dataNode-&gt;functions = [ grep { ref($_) eq &apos;domFunction&apos; } @$interfaceMembers ];
&gt; 
&gt; I know this is slower than for-loop. But, we may know what attributes, constants and function have at glance.

Both are OK but I would prefer tasak&apos;s original code. We might want to avoid using perl-specific syntax such as grep and map, for readability.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:390
&gt; +    if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(double|stringifier|caller|byte|void|getter|octet|DOMString|long|short|int|omittable|float|attribute|static|readonly|deleter|boolean|\:\:|unsigned|setter|Date|creator|any|object|sequence)$/)) {

Please define the list in a global variable.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:464
&gt; +    if ($next-&gt;value() =~ /^(\=)$/) {

Nit: $next-&gt;value() eq &quot;=&quot;.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:468
&gt; +    return;

Nit: Remove this.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:944
&gt; +        if ($next-&gt;value() =~ /^(\,)$/) {

Nit: $next-&gt;value() eq &quot;,&quot;

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:981
&gt; +        $type =~ s/\?//;

The &apos;g&apos; option is needed. $type =~ s/\?//g;

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1008
&gt;&gt; +    return;
&gt; 
&gt; nit: Do we need to have &quot;return&quot; at end of subroutine?

Nit: No.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1018
&gt;&gt; +    return;
&gt; 
&gt; nit: Do we need to have &quot;return&quot; at end of subroutine?

Nit: No.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1046
&gt; +        $newDataNode-&gt;signature(new domSignature);

Nit: new domSignature()

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1065
&gt; +        @attrs{keys %{$attr}} = values %{$attr};

I don&apos;t have a strong opinion, but you might want to use a simple for-loop for readability. We want to avoid perl-specific syntax.

  for my $key (keys %$attr) {
    $attrs{$key} = $attr-&gt;{$key};
  }

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1067
&gt; +        @attrs{keys %{$attr}} = values %{$attr};

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1082
&gt; +        @attrs{keys %{$attr}} = values %{$attr};

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1085
&gt; +        @attrs{keys %{$attr}} = values %{$attr};

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1100
&gt; +        my %attr = ();
&gt; +        return \%attr;

Nit: return {};

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1160
&gt; +sub parseExtendedAttributeRest3

I don&apos;t understand this code, but is it OK to make the type of return values inconsistent? (i.e. sometimes a string, sometimes a hash)

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1216
&gt;&gt; +        push(@types,$self-&gt;parsePrimitiveOrStringType());
&gt; 
&gt; nit: We don&apos;t need to have @types to reduce ARRAY copy and to avoid reusing variable.
&gt; 
&gt; return join(&apos;&apos;, $self-&gt;parsePimitiveOrStringType(), @{$self-&gt;parseTypeSuffix());
&gt; 
&gt; This comment applies other usage of @types and join(&apos;&apos;, @types) in this subroutine.

Both are OK. (I would prefer @types for readability though.)

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1322
&gt; +        } else {
&gt; +            return &quot;long&quot;;
&gt; +        }

Nit: return &quot;long&quot;. &apos;else&apos; is not needed.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1349
&gt;&gt; +        return \@suffix;
&gt; 
&gt; nit: return [ &quot;[]&quot;, @{$self-&gt;parseTypeSuffix() ];

Both are OK. (I would prefer @suffix for readability though.)

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1355
&gt;&gt; +        return \@suffix;
&gt; 
&gt; nit: return [ &quot;?&quot;, @{$self-&gt;parseTypeSuffixStartingWithArray()} ];

Ditto.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1408
&gt;&gt; +        return \@names;
&gt; 
&gt; nit: return [ $self-&gt;parseScopedName(), @{$self-&gt;parseScopedNames()} ];

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1495
&gt; +# For backward compatibility

These subroutines will be removed soon. Is my understanding correct?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1675
&gt; +    return;

Nit: Remove this.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1818
&gt; +    return;

Nit: Remove this.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1833
&gt; +    return;

Nit: Remove this.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1878
&gt; +sub applyExtendedAttributeList

Please move this subroutine above. This is not for-backward-compatibility code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675445</commentid>
    <comment_count>29</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-22 22:19:09 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; I don&apos;t think there is any need to support module. It is not used by any of the code generators.

Agree. Modules are going to be deprecated from the Web IDL spec. Let&apos;s remove all modules completely from WebKitIDL. Modules in IDL files are not used at all. But let&apos;s do it in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677840</commentid>
    <comment_count>30</comment_count>
      <attachid>154304</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-25 02:39:11 -0700</bug_when>
    <thetext>Created attachment 154304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677844</commentid>
    <comment_count>31</comment_count>
      <attachid>151870</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-25 02:46:44 -0700</bug_when>
    <thetext>Comment on attachment 151870
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:155
&gt;&gt; +            $self-&gt;{Line} = &quot;&quot;;
&gt; 
&gt; Nit: &quot;&quot; =&gt; &quot;Unknown&quot;

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:158
&gt;&gt; +    $self-&gt;{DocumentContent} =~ s/^([\t\n\r ]+)//g;
&gt; 
&gt; s/^([\t\n\r ]*)//. &apos;g&apos; is not needed.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:159
&gt;&gt; +    if (length($self-&gt;{DocumentContent}) &lt;= 0) {
&gt; 
&gt; Nit: length($self-&gt;{DocumentContent}) == 0

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:167
&gt;&gt; +        $self-&gt;{DocumentContent} =~ s/^(-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+))//;
&gt; 
&gt; Let&apos;s avoid writing the regular expression twice. You can store the regular expression in a variable.

I see. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:173
&gt;&gt; +        $self-&gt;{DocumentContent} =~ s/^(-?[1-9][0-9]*|-?0[Xx][0-9A-Fa-f]+|-?0[0-7]*)//;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:179
&gt;&gt; +        $self-&gt;{DocumentContent} =~ s/^(\&quot;[^\&quot;]*\&quot;)//;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:185
&gt;&gt; +        $self-&gt;{DocumentContent} =~ s/^([A-Z_a-z][0-9A-Z_a-z]*)//;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:189
&gt;&gt; +        $token-&gt;type(OtherToken);
&gt; 
&gt; What is other token?

&quot;other&quot; comes from WebIDL spec. IDLgrammar defines integer token, float token, identifier token, string token, whitespace token and other token.
So I prepared 5 token types.  The original &quot;other&quot; definition is:

other	=	[^\t\n\r 0-9A-Z_a-z]

However I would like to treat &quot;::&quot; and &quot;...&quot; as one token. So I added &quot;::|\.\.\.&quot;.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:191
&gt;&gt; +        $self-&gt;{DocumentContent} =~ s/^(::|\.\.\.|[^\t\n\r 0-9A-Z_a-z])//;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:204
&gt;&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(dictionary|typedef|module|\:\:|\[|interface|exception|partial)$/)) {
&gt; 
&gt; &apos;:&apos; is not a meta character. You do not need to escape it. The same comment for other &apos;\:&apos;s in this patch.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:210
&gt;&gt; +    return\@definitions;
&gt; 
&gt; Nit: &apos;return \@definitions&apos;. A space after &apos;return&apos; please.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:217
&gt;&gt; +    if ($next-&gt;value() =~ /^(partial)$/) {
&gt; 
&gt; Nit: $next-&gt;value() eq &quot;partial&quot;. The same comment for other &apos;$foo =~ /^(bar)/$&apos;s.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:224
&gt;&gt; +    die &quot;Unexpected token &quot; . $next-&gt;value() . &quot; while applying the rule: Definition -&gt; ExtendedAttributeList NormalDefinition|PartialInterface at &quot; . $self-&gt;{Line};
&gt; 
&gt; Let&apos;s define assertUnexpectedToken() for this dying message. The same comment for other parts.

Sure. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:233
&gt;&gt; +    if ($next-&gt;value() =~ /^(module)$/) {
&gt; 
&gt; Nit: $next-&gt;value() eq &quot;module&quot;

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:262
&gt;&gt; +    shouldTokenValueEquals($self-&gt;getToken(), &quot;module&quot;, &quot;while parsing the rule: Module -&gt; \&quot;module\&quot;^^^^ identifier \&quot;\{\&quot; Definitions \&quot;\}\&quot; OptionalSemicolon at line: \&quot;&quot; . $self-&gt;{Line} . &quot;\&quot;&quot;);
&gt; 
&gt; Let&apos;s use &apos;...&apos; to avoid escaping &quot;\&quot;&quot;. The same comment for all strings that contain &quot;\&quot;&quot;.
&gt; 
&gt; In addition I want to remove a bunch of verbose messages like &quot;while parsing the rule: Module -&gt; ...&quot;. I think that the column number and the line number would be enough for the message. Then the code would look like:
&gt; 
&gt;   shouldTokenValueEquals($self-&gt;getToken(), &quot;module&quot;, $self);
&gt; 
&gt; Then shouldTokenValueEquals() can output $self-&gt;{Line} and $self-&gt;{Column}. It would be nicer if shouldTokenValueEquals() can also output the exact error position of $self-&gt;{DocumentContent}.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:390
&gt;&gt; +    if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(double|stringifier|caller|byte|void|getter|octet|DOMString|long|short|int|omittable|float|attribute|static|readonly|deleter|boolean|\:\:|unsigned|setter|Date|creator|any|object|sequence)$/)) {
&gt; 
&gt; Please define the list in a global variable.

I see. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:464
&gt;&gt; +    if ($next-&gt;value() =~ /^(\=)$/) {
&gt; 
&gt; Nit: $next-&gt;value() eq &quot;=&quot;.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:468
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:512
&gt;&gt; +    for my $item (@{$exceptionMembers}) {
&gt; 
&gt; This is fragment as same as in parseInterfaceNew.
&gt; Is it better to have subroutine for sharing code?

I agree. It is better. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:944
&gt;&gt; +        if ($next-&gt;value() =~ /^(\,)$/) {
&gt; 
&gt; Nit: $next-&gt;value() eq &quot;,&quot;

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:957
&gt;&gt; +    if ($backwardCompatibleMode) {
&gt; 
&gt; nit: return $backwardCompatibleMode ? $self-&gt;parseArgumentOld() : $self-&gt;parseAgumentNew();
&gt; 
&gt; or
&gt; 
&gt; if ($backwardCompatibleMode) {
&gt;     return $self-&gt;parseArgumentOld();
&gt; }
&gt; return $self-&gt;parseArgumentNew();

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:981
&gt;&gt; +        $type =~ s/\?//;
&gt; 
&gt; The &apos;g&apos; option is needed. $type =~ s/\?//g;

Done.

&gt;&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1008
&gt;&gt;&gt; +    return;
&gt;&gt; 
&gt;&gt; nit: Do we need to have &quot;return&quot; at end of subroutine?
&gt; 
&gt; Nit: No.

I see. I removed &quot;return;&quot;.

&gt;&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1018
&gt;&gt;&gt; +    return;
&gt;&gt; 
&gt;&gt; nit: Do we need to have &quot;return&quot; at end of subroutine?
&gt; 
&gt; Nit: No.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1046
&gt;&gt; +        $newDataNode-&gt;signature(new domSignature);
&gt; 
&gt; Nit: new domSignature()

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1065
&gt;&gt; +        @attrs{keys %{$attr}} = values %{$attr};
&gt; 
&gt; I don&apos;t have a strong opinion, but you might want to use a simple for-loop for readability. We want to avoid perl-specific syntax.
&gt; 
&gt;   for my $key (keys %$attr) {
&gt;     $attrs{$key} = $attr-&gt;{$key};
&gt;   }

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1067
&gt;&gt; +        @attrs{keys %{$attr}} = values %{$attr};
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1082
&gt;&gt; +        @attrs{keys %{$attr}} = values %{$attr};
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1085
&gt;&gt; +        @attrs{keys %{$attr}} = values %{$attr};
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1100
&gt;&gt; +        return \%attr;
&gt; 
&gt; Nit: return {};

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1114
&gt;&gt; +    my %attr = ();
&gt; 
&gt; nit: return {};

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1134
&gt;&gt; +        return \%attr;
&gt; 
&gt; How about writing below?
&gt; 
&gt; my $attrs = {};
&gt; ...
&gt; $attrs-&gt;{$name} = ...;
&gt; 
&gt; return $attrs;
&gt; 
&gt; This may be easier to put &quot;\&quot; onto each return statement.

I see. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1160
&gt;&gt; +sub parseExtendedAttributeRest3
&gt; 
&gt; I don&apos;t understand this code, but is it OK to make the type of return values inconsistent? (i.e. sometimes a string, sometimes a hash)

The reason is to make the same resut as the original IDLParser&apos;s parseExtendedAttribute generates. The following is the rules related to the code, i.e. ExtendedAttribute rules:

[48]    ExtendedAttributeRest  -&gt; &quot;(&quot; ArgumentList &quot;)&quot; | &quot;=&quot; ExtendedAttributeRest2 | empty
[49]    ExtendedAttributeRest2 -&gt; identifier ExtendedAttributeRest3 | integer
[50]    ExtendedAttributeRest3 -&gt; &quot;&amp;&quot; identifier | &quot;|&quot; identifier | &quot;(&quot; ArgumentList &quot;)&quot; | empty

So in the case matching the rule: &quot;&amp;&quot; identifier or &quot;|&quot; identifier, the original parseExtendedAttribute does:

                # Parse &apos;=&apos; value &apos;,&apos;?                                            
                if ($str =~ /^\s*([^,]*),?/) {
                    $attrs{$name} = $1;

And in the case matching  &quot;(&quot; ArgumentList &quot;)&quot; ,

                    # Parse &apos;(&apos; arguments &apos;)&apos; &apos;,&apos;?                                
                    $str =~ s/^\s*\(//;
                    if ($str =~ /^([^)]*)\),?/) {
                        my $signature = $1;
                        $signature =~ s/^(.*?)\s*$/$1/;
                        $attrs{$name} = {&quot;ConstructorName&quot; =&gt; $constructorName, &quot;Signature&quot; =&gt; $signature};
...

The original IDLParser calls arguments as &quot;Signature&quot;.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1322
&gt;&gt; +        }
&gt; 
&gt; Nit: return &quot;long&quot;. &apos;else&apos; is not needed.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1495
&gt;&gt; +# For backward compatibility
&gt; 
&gt; These subroutines will be removed soon. Is my understanding correct?

I hope so. If we quickly move extended attributes to the right location defined in WebIDL spec, we can remove soon.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1578
&gt;&gt; +    for my $item (@{$interfaceMembers}) {
&gt; 
&gt; See a comment for parseInterfaceNew and parseExceptionNew.
&gt; We may want to share codes.

Sure. Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1675
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1707
&gt;&gt; +    for my $item (@{$exceptionMembers}) {
&gt; 
&gt; See a comment for parseInterfaceNew, parseExceptionNew and parseInterfaceOld.
&gt; We may want to have &quot;sub&quot; and share code.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1818
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1833
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1878
&gt;&gt; +sub applyExtendedAttributeList
&gt; 
&gt; Please move this subroutine above. This is not for-backward-compatibility code.

Sure. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677862</commentid>
    <comment_count>32</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-25 03:22:55 -0700</bug_when>
    <thetext>Thank you for reviewing the big patch.

I uploaded a new patch, but I have one problem. As WebIDL doesn&apos;t support &quot;static&quot; attribute, this IDLParser.pm cannot parse current TestObj.idl.

I would like to ask whether we need to support static attribute or not. If needed, I will modify WebIDL grammar and recreate patch.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678109</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-25 08:48:29 -0700</bug_when>
    <thetext>&gt; I would like to ask whether we need to support static attribute or not. If needed, I will modify WebIDL grammar and recreate patch.

Does WebIDL support the static attribute?  I&apos;m pretty sure we use it.  (There have been some recent patches improving the code it generates.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678112</commentid>
    <comment_count>34</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-07-25 08:51:28 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; &gt; I would like to ask whether we need to support static attribute or not. If needed, I will modify WebIDL grammar and recreate patch.
&gt; 
&gt; Does WebIDL support the static attribute?  I&apos;m pretty sure we use it.  (There have been some recent patches improving the code it generates.)

Yeah, maybe that was a mistake. As commented in bug 88919, static attributes are not defined in the WebIDL spec. We might need to roll out those changes, depending on the discussion of bug 88919.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678321</commentid>
    <comment_count>35</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-25 12:07:59 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; I uploaded a new patch, but I have one problem. As WebIDL doesn&apos;t support &quot;static&quot; attribute, this IDLParser.pm cannot parse current TestObj.idl.

We use static and WebIDL defines it.

http://www.w3.org/TR/WebIDL/#prod-ArgumentNameKeyword
http://dev.w3.org/2006/webapi/WebIDL/#prod-ArgumentNameKeyword</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678325</commentid>
    <comment_count>36</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-07-25 12:11:31 -0700</bug_when>
    <thetext>(In reply to comment #35)

We use static for DOMURL to allow URL.createObjectURL(...) as well as as new URL(...)

The links above are for static attributes but there is a section about static methods too.

http://dev.w3.org/2006/webapi/WebIDL/#dfn-static-operation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682925</commentid>
    <comment_count>37</comment_count>
      <attachid>155495</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-31 04:53:57 -0700</bug_when>
    <thetext>Created attachment 155495
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682926</commentid>
    <comment_count>38</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-07-31 04:55:05 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; 
&gt; We use static for DOMURL to allow URL.createObjectURL(...) as well as as new URL(...)
&gt; 
&gt; The links above are for static attributes but there is a section about static methods too.
&gt; 
&gt; http://dev.w3.org/2006/webapi/WebIDL/#dfn-static-operation

Thank you. I&apos;m now recreating a patch for supporting static attribute.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685332</commentid>
    <comment_count>39</comment_count>
      <attachid>155495</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-02 07:04:31 -0700</bug_when>
    <thetext>Comment on attachment 155495
WIP

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

Thank you very much for updating the patch.

&gt; Source/WebCore/ChangeLog:33
&gt; +        * bindings/scripts/IDLParser.pm:
&gt; +        To parse the existing WebKit IDL. Fixed the bug when parsing long
&gt; +        longAttr. Expected result is int longAttr, but the previous one generates
&gt; +        long long Attr.
&gt; +        * bindings/scripts/IDLParserEditorsDraft.pm:
&gt; +        To parse WebIDL based on Editor&apos;s Draft. However Editor&apos;s Draft doesn&apos;t
&gt; +        have setraises, getraises and exception list. Modified the grammar to
&gt; +        support these exceptions.

What&apos;s your plan to land this patch? Are you intending to land both IDLParser.pm and IDLParserEditorsDraft.pm?

We want to avoid over-engineering. IDLParser.pm does not have to be strictly conformed to the spec. I think it&apos;s OK to accept some temporal inconsistency. Maintainability would be more important.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:44
&gt; +my $beQuiet = 0;

IMHO, messages output by $beQuiet is not so helpful. Maybe you can remove $beQuiet.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:113
&gt; +    die $@ . &quot; in $fileName&quot; if $@;

More descriptive message please, so that developers can understand what happened.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:115
&gt; +    die &quot;No document found&quot; unless @definitions;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:118
&gt; +    die &quot;No document found&quot; unless ref($document) eq &quot;idlDocument&quot;;

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:154
&gt; +        $self-&gt;{LineNumber}++ while ($skipped =~ m/\n/g);

Nit: &apos;m&apos; is not needed.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:157
&gt; +        $self-&gt;{DocumentContent} =~ /^([^\n\r]+)/;
&gt; +        # Line is used for error output.
&gt; +        if (defined($1)) {

This can be:

    if ($self-&gt;{DocumentContent} =~ /^([^\n\r]+)/)

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:163
&gt; +    $self-&gt;{DocumentContent} =~ s/^([\t\n\r ]+)//;

Is this needed?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:164
&gt; +    if (length($self-&gt;{DocumentContent}) == 0) {

if ($self-&gt;{DocumentContent} eq &quot;&quot;)

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:199
&gt; +    die &quot;Failed in tokenizing at &quot; . $self-&gt;{Line};

Can you use $self-&gt;assertUnexpectedToken()?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:210
&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|dictionary|exception|interface|module|partial|typedef)$/)) {

Let&apos;s avoid hard-coding &apos;::|dictionary|exception|interface|module|partial|typedef&apos;.

Nit: The parentheses around the pattern is not needed.

Nit: Extra parentheses around each condition. The same comment for other parts.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:226
&gt; +    if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|dictionary|exception|interface|module|typedef)$/)) {

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:340
&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|DOMString|Date|\[|any|attribute|boolean|byte|caller|const|creator|deleter|double|float|getter|long|object|octet|omittable|readonly|sequence|setter|short|static|unsigned|void)$/)) {

Let&apos;s avoid hard-coding. The same comment for all other hard-codings.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:444
&gt; +    return;

Nit: Not needed. The same comment for other parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691408</commentid>
    <comment_count>40</comment_count>
      <attachid>157442</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-09 05:20:53 -0700</bug_when>
    <thetext>Created attachment 157442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692304</commentid>
    <comment_count>41</comment_count>
      <attachid>157658</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-10 00:50:44 -0700</bug_when>
    <thetext>Created attachment 157658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692311</commentid>
    <comment_count>42</comment_count>
      <attachid>157661</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-10 00:53:27 -0700</bug_when>
    <thetext>Created attachment 157661
WebIDL Parser Generator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692317</commentid>
    <comment_count>43</comment_count>
      <attachid>157663</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-10 00:58:04 -0700</bug_when>
    <thetext>Created attachment 157663
IDL Grammar (merged current WebKit IDL grammar and WebIDL Editor&apos;s draft grammar)

For example, this grammar supports:
- attribute [Reflect] DOMString reflectedStringAttr;
- attribute long attrWithGetterException getter raises(DOMException);

and

- [Reflect] attribute DOMString reflectedStringAttr;
- attribute long attrWithGetterException getraises(DOMException);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692336</commentid>
    <comment_count>44</comment_count>
      <attachid>157670</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-10 01:27:12 -0700</bug_when>
    <thetext>Created attachment 157670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692346</commentid>
    <comment_count>45</comment_count>
      <attachid>155495</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-10 01:40:35 -0700</bug_when>
    <thetext>Comment on attachment 155495
WIP

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

&gt;&gt; Source/WebCore/ChangeLog:33
&gt;&gt; +        support these exceptions.
&gt; 
&gt; What&apos;s your plan to land this patch? Are you intending to land both IDLParser.pm and IDLParserEditorsDraft.pm?
&gt; 
&gt; We want to avoid over-engineering. IDLParser.pm does not have to be strictly conformed to the spec. I think it&apos;s OK to accept some temporal inconsistency. Maintainability would be more important.

The new patch supports both IDL grammars (WebKit one and WebIDL editor&apos;s draft one). So after landing the new IDLParser.pm, we can remove &quot;module&quot; or can move extended attributes to the spec position or ...
After finish updating all IDLs, I will remove obsolete grammar from IDLParser.pm.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:44
&gt;&gt; +my $beQuiet = 0;
&gt; 
&gt; IMHO, messages output by $beQuiet is not so helpful. Maybe you can remove $beQuiet.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:113
&gt;&gt; +    die $@ . &quot; in $fileName&quot; if $@;
&gt; 
&gt; More descriptive message please, so that developers can understand what happened.

I think, $@ includes information about an error. Do you mean the information is not enough useful?

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:115
&gt;&gt; +    die &quot;No document found&quot; unless @definitions;
&gt; 
&gt; Ditto.

I changed to &quot;No definitions found in &quot; . $fileName.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:118
&gt;&gt; +    die &quot;No document found&quot; unless ref($document) eq &quot;idlDocument&quot;;
&gt; 
&gt; Ditto.

I changed to &quot;No definitions found in &quot; . $fileName.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:154
&gt;&gt; +        $self-&gt;{LineNumber}++ while ($skipped =~ m/\n/g);
&gt; 
&gt; Nit: &apos;m&apos; is not needed.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:157
&gt;&gt; +        if (defined($1)) {
&gt; 
&gt; This can be:
&gt; 
&gt;     if ($self-&gt;{DocumentContent} =~ /^([^\n\r]+)/)

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:163
&gt;&gt; +    $self-&gt;{DocumentContent} =~ s/^([\t\n\r ]+)//;
&gt; 
&gt; Is this needed?

This is caused by $whitespaceToken. As I wanted to get {LINE} as true line (including spaces at the top of line),  I used &apos;^[\t\n\r ]*[\n\r]&apos;. However, I removed such spaces and changed $whitespaceToken. So I removed this line.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:164
&gt;&gt; +    if (length($self-&gt;{DocumentContent}) == 0) {
&gt; 
&gt; if ($self-&gt;{DocumentContent} eq &quot;&quot;)

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:199
&gt;&gt; +    die &quot;Failed in tokenizing at &quot; . $self-&gt;{Line};
&gt; 
&gt; Can you use $self-&gt;assertUnexpectedToken()?

I implemented this method to create tokens (i.e.lex part). So I think, this is not an unexpected token. Probably invalid characters or something.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:210
&gt;&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|dictionary|exception|interface|module|partial|typedef)$/)) {
&gt; 
&gt; Let&apos;s avoid hard-coding &apos;::|dictionary|exception|interface|module|partial|typedef&apos;.
&gt; 
&gt; Nit: The parentheses around the pattern is not needed.
&gt; 
&gt; Nit: Extra parentheses around each condition. The same comment for other parts.

I updated the IDL parser generator to avoid hard-coding for such a long regex, &apos;::|dictionary|exception|interface|module|partial|typedef&apos;.
Also removed useless ().

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:226
&gt;&gt; +    if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|dictionary|exception|interface|module|typedef)$/)) {
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:340
&gt;&gt; +        if (($next-&gt;type() == IdentifierToken) || ($next-&gt;value() =~ /^(::|DOMString|Date|\[|any|attribute|boolean|byte|caller|const|creator|deleter|double|float|getter|long|object|octet|omittable|readonly|sequence|setter|short|static|unsigned|void)$/)) {
&gt; 
&gt; Let&apos;s avoid hard-coding. The same comment for all other hard-codings.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:444
&gt;&gt; +    return;
&gt; 
&gt; Nit: Not needed. The same comment for other parts.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706066</commentid>
    <comment_count>46</comment_count>
      <attachid>160899</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-08-27 22:24:21 -0700</bug_when>
    <thetext>Created attachment 160899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723323</commentid>
    <comment_count>47</comment_count>
      <attachid>164672</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-18 23:39:03 -0700</bug_when>
    <thetext>Created attachment 164672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723328</commentid>
    <comment_count>48</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-18 23:49:57 -0700</bug_when>
    <thetext>Sorry for the delay. Started reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723354</commentid>
    <comment_count>49</comment_count>
      <attachid>164672</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-19 00:52:57 -0700</bug_when>
    <thetext>Comment on attachment 164672
Patch

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

Getting close to LGTM.

&gt; Source/WebCore/ChangeLog:11
&gt; +        Firstly merges two grammars (editros draft and WebKit current IDL) and

Typo: editors

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:67
&gt; +    my $self = shift;
&gt; +    my $token = shift;
&gt; +    my $value = shift;
&gt; +    my $line = shift;

It looks like $line is not used by any caller. Maybe you need to add __LINE__ to all callers?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:70
&gt; +        $msg = $msg . $line;

$msg .= &quot; IDLParser.pm:&quot; . $line;

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:90
&gt; +        $msg = $msg . &quot; IDLParser.pm:&quot; . $line;

Nit: $msg .= &quot; IDLParser.pm:&quot; . $line;

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:116
&gt; +        if ($next-&gt;type() != EmptyToken) {
&gt; +            die &quot;Expect EOF, but found &quot; . $next-&gt;value() . &quot; at &quot; . $self-&gt;{Line};
&gt;          }

You can use assertTokenType().

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:131
&gt; +        
&gt; +    die &quot;No document found&quot; unless ref($document) eq &quot;idlDocument&quot;;

Remove this. This should not happen.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:165
&gt; +        $self-&gt;{LineNumber}++ while ($skipped =~ /\n/g);

Can be an infinite loop?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:167
&gt; +        if ($self-&gt;{DocumentContent} =~ /^([^\n\r]+)/) {
&gt; +            $self-&gt;{Line} = $self-&gt;{LineNumber} . &quot;:&quot; . $1;

If you match &apos;\n\n\n\n\n&apos;, then &apos;\n\n\n\n\n&apos; is appended. Is it expected?

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:510
&gt; +    return;

Nit: Remove this.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:628
&gt; +    return;

Nit: Remove this. The same comment for all other last &apos;return&apos;s.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1239
&gt; +        if ($type =~ /^(.*)\?$/) {

Nit: $type =~ /\?$/

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1254
&gt; +        if ($type =~ /^(.*)\?$/) {

Ditto.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1346
&gt; +        my $attrs = {};
&gt; +        my $attr = $self-&gt;parseExtendedAttribute();

These two variable names are confusing.

&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1369
&gt; +            my $attr = $self-&gt;parseExtendedAttribute2();

Ditto.

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:54
&gt; -        JS, V8
&gt; +        // JS, V8

Shall we remove this comment?

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:232
&gt; +        void convert1(in [TreatReturnedNullStringAs=Null] a value);
&gt; +        void convert2(in [TreatReturnedNullStringAs=Undefined] b value);
&gt; +        void convert4(in [TreatNullAs=NullString] d value);
&gt; +        void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e value);

&apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are not valid type names. Shall we change them to DOMString or something?

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:168
&gt; -    return v8::Number::New(static_cast&lt;double&gt;(imp-&gt;attr()));
&gt; +    return v8Integer(imp-&gt;longAttr(), info.GetIsolate());

I know that this code is conformed to the spec. But isn&apos;t there any compatibility concern to change a double to an integer?

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:176
&gt; -    long long v = toInt64(value);
&gt; -    imp-&gt;setAttr(WTF::getPtr(v));
&gt; +    int v = toInt32(value);
&gt; +    imp-&gt;setLongAttr(v);

Ditto. Isn&apos;t there any compatibility concern to change a long long to an int?

&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:454
&gt; -    ExceptionCode ec = 0;
&gt; -    imp-&gt;setAttrWithGetterException(v, ec);
&gt; -    if (UNLIKELY(ec))
&gt; -        setDOMException(ec, info.GetIsolate());
&gt; +    imp-&gt;setAttrWithGetterException(v);

Where does this change come from? Is it correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724037</commentid>
    <comment_count>50</comment_count>
      <attachid>164814</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 18:15:13 -0700</bug_when>
    <thetext>Created attachment 164814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724088</commentid>
    <comment_count>51</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-19 19:23:43 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; Created an attachment (id=164814) [details]
&gt; Patch

Would you comment on my review comments? (I want to know how you fixed them.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724089</commentid>
    <comment_count>52</comment_count>
      <attachid>164825</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 19:28:33 -0700</bug_when>
    <thetext>Created attachment 164825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724188</commentid>
    <comment_count>53</comment_count>
      <attachid>164672</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 23:10:50 -0700</bug_when>
    <thetext>Comment on attachment 164672
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        Firstly merges two grammars (editros draft and WebKit current IDL) and
&gt; 
&gt; Typo: editors

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:67
&gt;&gt; +    my $line = shift;
&gt; 
&gt; It looks like $line is not used by any caller. Maybe you need to add __LINE__ to all callers?

I think, $line provides much more information to debug IDLParser.pm and IDL files.
I added __LINE__.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:70
&gt;&gt; +        $msg = $msg . $line;
&gt; 
&gt; $msg .= &quot; IDLParser.pm:&quot; . $line;

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:90
&gt;&gt; +        $msg = $msg . &quot; IDLParser.pm:&quot; . $line;
&gt; 
&gt; Nit: $msg .= &quot; IDLParser.pm:&quot; . $line;

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:116
&gt;&gt;          }
&gt; 
&gt; You can use assertTokenType().

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:131
&gt;&gt; +    die &quot;No document found&quot; unless ref($document) eq &quot;idlDocument&quot;;
&gt; 
&gt; Remove this. This should not happen.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:165
&gt;&gt; +        $self-&gt;{LineNumber}++ while ($skipped =~ /\n/g);
&gt; 
&gt; Can be an infinite loop?

I think, the &quot;/g&quot; modifier can be used to process all regex matches in a string. The first m/regex/g will find the first match, the second m/regex/g the second match, etc. c.f. http://www.regular-expressions.info/perl.html

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:167
&gt;&gt; +            $self-&gt;{Line} = $self-&gt;{LineNumber} . &quot;:&quot; . $1;
&gt; 
&gt; If you match &apos;\n\n\n\n\n&apos;, then &apos;\n\n\n\n\n&apos; is appended. Is it expected?

Since ^[^\n\r]+, cannot match &apos;\n\n\n\n\n&apos;. In this case, no character can match.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:510
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:628
&gt;&gt; +    return;
&gt; 
&gt; Nit: Remove this. The same comment for all other last &apos;return&apos;s.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1239
&gt;&gt; +        if ($type =~ /^(.*)\?$/) {
&gt; 
&gt; Nit: $type =~ /\?$/

Done.

&gt;&gt; Source/WebCore/bindings/scripts/IDLParser.pm:1254
&gt;&gt; +        if ($type =~ /^(.*)\?$/) {
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:232
&gt;&gt; +        void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e value);
&gt; 
&gt; &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are not valid type names. Shall we change them to DOMString or something?

I think, &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are for checking the case where some user-defined class is specified. WebIDL allows users to use any identifier as NonAnyType.

&gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:168
&gt;&gt; +    return v8Integer(imp-&gt;longAttr(), info.GetIsolate());
&gt; 
&gt; I know that this code is conformed to the spec. But isn&apos;t there any compatibility concern to change a double to an integer?

This double is a bug of old IDLParser.pm. TestObj.idl has &quot;attribute long longAttr;&quot;. The old IDLParser.pm cannot parse the line correctly. So the parser generates the code for &quot;long long&quot; + &quot;Attr&quot;. But the correct result should be &quot;long&quot; + &quot;longAttr&quot;.

&gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:176
&gt;&gt; +    imp-&gt;setLongAttr(v);
&gt; 
&gt; Ditto. Isn&apos;t there any compatibility concern to change a long long to an int?

Ditto.

&gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:454
&gt;&gt; +    imp-&gt;setAttrWithGetterException(v);
&gt; 
&gt; Where does this change come from? Is it correct?

The code is generated from &quot;attribute long attrWithGetterException getter raises(DOMException);&quot;. So 2 methods are generated, one is attrWithGetterExceptionAttrGetter and the other is attrWithGetterExceptionAttrSetter.
Since only &quot;getter raises&quot; is specified, &quot;setter&quot; should not raise any exception. Does this make sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724190</commentid>
    <comment_count>54</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 23:12:17 -0700</bug_when>
    <thetext>(In reply to comment #51)
&gt; (In reply to comment #50)
&gt; &gt; Created an attachment (id=164814) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Would you comment on my review comments? (I want to know how you fixed them.)

Yes, I would like to do. I&apos;m just waiting for cq result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724191</commentid>
    <comment_count>55</comment_count>
      <attachid>164825</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 23:12:40 -0700</bug_when>
    <thetext>Comment on attachment 164825
Patch

Since qt and qt-wk2 look not good, I would like to request review?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724195</commentid>
    <comment_count>56</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-19 23:13:19 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; (From update of attachment 164825 [details])
&gt; Since qt and qt-wk2 look not good, I would like to request review?.

I mean, the bot seems not to work well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724200</commentid>
    <comment_count>57</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-19 23:20:11 -0700</bug_when>
    <thetext>Thanks for all the clarification.

&gt; &gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:232
&gt; &gt;&gt; +        void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e value);
&gt; &gt; 
&gt; &gt; &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are not valid type names. Shall we change them to DOMString or something?
&gt; 
&gt; I think, &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are for checking the case where some user-defined class is specified. WebIDL allows users to use any identifier as NonAnyType.

OK. Then let&apos;s change them to &apos;UserDefinedType&apos; or something like that. You can do it in a follow-up patch.


&gt; &gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:168
&gt; &gt;&gt; +    return v8Integer(imp-&gt;longAttr(), info.GetIsolate());
&gt; &gt; 
&gt; &gt; I know that this code is conformed to the spec. But isn&apos;t there any compatibility concern to change a double to an integer?
&gt; 
&gt; This double is a bug of old IDLParser.pm. TestObj.idl has &quot;attribute long longAttr;&quot;. The old IDLParser.pm cannot parse the line correctly. So the parser generates the code for &quot;long long&quot; + &quot;Attr&quot;. But the correct result should be &quot;long&quot; + &quot;longAttr&quot;.
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:454
&gt; &gt;&gt; +    imp-&gt;setAttrWithGetterException(v);
&gt; &gt; 
&gt; &gt; Where does this change come from? Is it correct?
&gt; 
&gt; The code is generated from &quot;attribute long attrWithGetterException getter raises(DOMException);&quot;. So 2 methods are generated, one is attrWithGetterExceptionAttrGetter and the other is attrWithGetterExceptionAttrSetter.
&gt; Since only &quot;getter raises&quot; is specified, &quot;setter&quot; should not raise any exception. Does this make sense?

Makes sense.

I&apos;d like to confirm one thing: There are changes in the generated code for bindings/scripts/tests/*.idl, but there is no meaningful change in the generated code for real idl files for JSC/V8/ObjC/GObject/CPP, right?

If it is right, I&apos;m happy to r+ the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725162</commentid>
    <comment_count>58</comment_count>
      <attachid>165050</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-20 22:34:35 -0700</bug_when>
    <thetext>Created attachment 165050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725167</commentid>
    <comment_count>59</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-20 22:49:06 -0700</bug_when>
    <thetext>I&apos;m sorry. I forgot to remove &quot;// JS,V8&quot; comment line. I uploaded a new patch for fixing the issue.

(In reply to comment #57)
&gt; Thanks for all the clarification.
&gt; 
&gt; &gt; &gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:232
&gt; &gt; &gt;&gt; +        void convert5(in [TreatNullAs=NullString, TreatUndefinedAs=NullString] e value);
&gt; &gt; &gt; 
&gt; &gt; &gt; &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are not valid type names. Shall we change them to DOMString or something?
&gt; &gt; 
&gt; &gt; I think, &apos;a&apos;, &apos;b&apos;, &apos;d&apos;, &apos;e&apos; are for checking the case where some user-defined class is specified. WebIDL allows users to use any identifier as NonAnyType.
&gt; 
&gt; OK. Then let&apos;s change them to &apos;UserDefinedType&apos; or something like that. You can do it in a follow-up patch.
&gt; 
&gt; 
&gt; &gt; &gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:168
&gt; &gt; &gt;&gt; +    return v8Integer(imp-&gt;longAttr(), info.GetIsolate());
&gt; &gt; &gt; 
&gt; &gt; &gt; I know that this code is conformed to the spec. But isn&apos;t there any compatibility concern to change a double to an integer?
&gt; &gt; 
&gt; &gt; This double is a bug of old IDLParser.pm. TestObj.idl has &quot;attribute long longAttr;&quot;. The old IDLParser.pm cannot parse the line correctly. So the parser generates the code for &quot;long long&quot; + &quot;Attr&quot;. But the correct result should be &quot;long&quot; + &quot;longAttr&quot;.
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp:454
&gt; &gt; &gt;&gt; +    imp-&gt;setAttrWithGetterException(v);
&gt; &gt; &gt; 
&gt; &gt; &gt; Where does this change come from? Is it correct?
&gt; &gt; 
&gt; &gt; The code is generated from &quot;attribute long attrWithGetterException getter raises(DOMException);&quot;. So 2 methods are generated, one is attrWithGetterExceptionAttrGetter and the other is attrWithGetterExceptionAttrSetter.
&gt; &gt; Since only &quot;getter raises&quot; is specified, &quot;setter&quot; should not raise any exception. Does this make sense?
&gt; 
&gt; Makes sense.
&gt; 
&gt; I&apos;d like to confirm one thing: There are changes in the generated code for bindings/scripts/tests/*.idl, but there is no meaningful change in the generated code for real idl files for JSC/V8/ObjC/GObject/CPP, right?

Yes. 
The problem is caused by a pair of &quot;long&quot;(return type or attribute type) and &quot;longXXX&quot;(method or attribute name). 
So I checked real idl files by using the following:
   find . -name \*.idl -exec grep -H -G &quot;long long[A-Za-z_]&quot; {} \;

I saw only TestObj.idl.



&gt; 
&gt; If it is right, I&apos;m happy to r+ the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725235</commentid>
    <comment_count>60</comment_count>
      <attachid>165050</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-21 00:46:09 -0700</bug_when>
    <thetext>Comment on attachment 165050
Patch

I&apos;ve scanned the patch again, and it looks good. Thank you very much for the great patch!

Please keep watching bots when landing. If something is wrong, it will break some build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727421</commentid>
    <comment_count>61</comment_count>
      <attachid>165050</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 02:04:17 -0700</bug_when>
    <thetext>Comment on attachment 165050
Patch

Rejecting attachment 165050 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Resolving [Supplemental=XXX] dependencies in all IDL files out/Release/obj/gen/supplemental_dependency.tmp
Unexpected token [ at 18:         [V8MeasureAs=WebAudioStart] [ImplementedAs=startGrain] void start(in double when, in double grainOffset, in double grainDuration); IDLParser.pm:426 at ../bindings/scripts/IDLParser.pm line 92.
 in ../Modules/webaudio/AudioBufferSourceNode.idl at ../bindings/scripts/IDLParser.pm line 116.
make: *** [out/Release/obj/gen/supplemental_dependency.tmp] Error 255

Full output: http://queues.webkit.org/results/14021036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729130</commentid>
    <comment_count>62</comment_count>
      <attachid>165914</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 19:04:33 -0700</bug_when>
    <thetext>Created attachment 165914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729131</commentid>
    <comment_count>63</comment_count>
      <attachid>165914</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 19:05:12 -0700</bug_when>
    <thetext>Comment on attachment 165914
Patch

Here we go!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729134</commentid>
    <comment_count>64</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 19:06:39 -0700</bug_when>
    <thetext>(In reply to comment #61)
&gt; (From update of attachment 165050 [details])
&gt; Rejecting attachment 165050 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2
&gt; 
&gt; Last 500 characters of output:
&gt; Resolving [Supplemental=XXX] dependencies in all IDL files out/Release/obj/gen/supplemental_dependency.tmp
&gt; Unexpected token [ at 18:         [V8MeasureAs=WebAudioStart] [ImplementedAs=startGrain] void start(in double when, in double grainOffset, in double grainDuration); IDLParser.pm:426 at ../bindings/scripts/IDLParser.pm line 92.
&gt;  in ../Modules/webaudio/AudioBufferSourceNode.idl at ../bindings/scripts/IDLParser.pm line 116.
&gt; make: *** [out/Release/obj/gen/supplemental_dependency.tmp] Error 255
&gt; 
&gt; Full output: http://queues.webkit.org/results/14021036

As the new IDLParser only allow restricted syntax, &quot;[V8MeasureAs=WebAudioStart] [ImplementedAs=startGrain]&quot; cannot be parsed.
I modified the IDL to use &quot;,&quot;, i.e. &quot;[V8MeasureAs=WebAudioStart, ImplementedAs=startGrain]&quot;

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729139</commentid>
    <comment_count>65</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 19:11:04 -0700</bug_when>
    <thetext>Committed r129723: &lt;http://trac.webkit.org/changeset/129723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729141</commentid>
    <comment_count>66</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 19:11:38 -0700</bug_when>
    <thetext>Landed manually to avoid style check errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729142</commentid>
    <comment_count>67</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-09-26 19:12:21 -0700</bug_when>
    <thetext>(In reply to comment #65)
&gt; Committed r129723: &lt;http://trac.webkit.org/changeset/129723&gt;

Awesome. Much appreciated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729186</commentid>
    <comment_count>68</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-26 21:25:01 -0700</bug_when>
    <thetext>This broke our internal Safari build. We have code that makes use of IDLParser, and this change appears to have broken the parsing of some extended attributes that were formerly valid ([SomeName=Some::Value], where Some::Value is a C++ identifier). Can you suggest a quick fix for this, or should we consider rolling this out until we come up with some way to rework our use of IDLParser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729190</commentid>
    <comment_count>69</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 21:27:46 -0700</bug_when>
    <thetext>(In reply to comment #68)
&gt; This broke our internal Safari build. We have code that makes use of IDLParser, and this change appears to have broken the parsing of some extended attributes that were formerly valid ([SomeName=Some::Value], where Some::Value is a C++ identifier). Can you suggest a quick fix for this, or should we consider rolling this out until we come up with some way to rework our use of IDLParser?

It will be an easy fix. tasak@ is uploading a follow-up patch. One sec please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729204</commentid>
    <comment_count>70</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-26 22:23:00 -0700</bug_when>
    <thetext>Which bug will it be attached to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729207</commentid>
    <comment_count>71</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 22:30:00 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; Which bug will it be attached to?

Will be to this bug (in 20 mins).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729208</commentid>
    <comment_count>72</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-26 22:30:58 -0700</bug_when>
    <thetext>Thanks for looking in to it so promptly!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729228</commentid>
    <comment_count>73</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 23:11:43 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; Which bug will it be attached to?

I&apos;m sorry. I will update soon.

I&apos;m now checking my new patch by using build-webkit or building DumpRenderTree.
The original run-bindings-tests passed and modified run-bindings-tests (i.e. modified TestObj.idl, i.e. =Test::TestObject) passed (passed means the same result as the original IDLParser.pm&apos;s result).

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729232</commentid>
    <comment_count>74</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-26 23:22:45 -0700</bug_when>
    <thetext>Requested by Takashi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729233</commentid>
    <comment_count>75</comment_count>
      <attachid>165936</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 23:23:24 -0700</bug_when>
    <thetext>Created attachment 165936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729235</commentid>
    <comment_count>76</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 23:28:02 -0700</bug_when>
    <thetext>(In reply to comment #74)
&gt; Requested by Takashi

Thank you, Ishibashi-san.

I have just uploaded my new patch.
The patch passes all rub-bindings-tests and buld-webkit and building DumpRenderTree.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729237</commentid>
    <comment_count>77</comment_count>
      <attachid>165936</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 23:28:31 -0700</bug_when>
    <thetext>Comment on attachment 165936
Patch

Rejecting attachment 165936 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
1746.
Hunk #13 FAILED at 1757.
Hunk #14 FAILED at 1768.
Hunk #15 FAILED at 1779.
Hunk #16 FAILED at 1825.
Hunk #17 FAILED at 1836.
Hunk #18 FAILED at 1847.
Hunk #19 FAILED at 1858.
Hunk #20 FAILED at 1924.
Hunk #21 FAILED at 2040.
Hunk #22 FAILED at 2180.
22 out of 22 hunks FAILED -- saving rejects to file Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14036700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729239</commentid>
    <comment_count>78</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-26 23:32:31 -0700</bug_when>
    <thetext>That new patch seems to include the entirety of your previous patch which was already landed. I think we&apos;d only need the diff against TOT in order to get it landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729240</commentid>
    <comment_count>79</comment_count>
      <attachid>165937</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 23:34:28 -0700</bug_when>
    <thetext>Created attachment 165937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729241</commentid>
    <comment_count>80</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-09-26 23:35:47 -0700</bug_when>
    <thetext>(In reply to comment #79)
&gt; Created an attachment (id=165937) [details]
&gt; Patch

Sorry. I have just uploaded the difference between the newest one and the submitted one.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729244</commentid>
    <comment_count>81</comment_count>
      <attachid>165937</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-26 23:38:48 -0700</bug_when>
    <thetext>Comment on attachment 165937
Patch

Looks OK as a temporal fix. (Later, we might want to kill the [XXX=YYY::ZZZ] syntax and then remove this code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729281</commentid>
    <comment_count>82</comment_count>
      <attachid>165937</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-27 00:36:04 -0700</bug_when>
    <thetext>Comment on attachment 165937
Patch

Rejecting attachment 165937 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Kit/chromium/third_party/yasm/source/patched-yasm --revision 154708 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
51&gt;At revision 154708.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/14032727</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729286</commentid>
    <comment_count>83</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-27 00:38:25 -0700</bug_when>
    <thetext>It needs a ChangeLog entry before the commit queue can process it…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729303</commentid>
    <comment_count>84</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-09-27 01:13:29 -0700</bug_when>
    <thetext>I made up a ChangeLog entry and landed this myself in r129737 since I can&apos;t leave our build broken all night. Thanks for taking the time to fix this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31280</attachid>
            <date>2009-06-14 22:19:26 -0700</date>
            <delta_ts>2010-06-10 17:58:44 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>ExtendedAttrPatch.txt</filename>
            <type>text/plain</type>
            <size>7538</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gNDQ2NzMp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjEsNyArMjIxLDcgQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiAgICAgICAgICMgTWF0Y2gg
aWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQgZW5jbG9zZWQgZGF0YS4uLgogICAgICAg
ICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlU2VsZWN0b3IvOwogCi0gICAgICAg
ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7
IGNob3AoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7CisgICAgICAgICRpbnRlcmZhY2VF
eHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7CiAgICAgICAgICRp
bnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5T
b3VyY2U6XG4kZGF0YVxuKSIpKTsKICAgICAgICAgJGludGVyZmFjZUJhc2UgPSAoZGVmaW5lZCgk
MykgPyAkMyA6ICIiKTsKICAgICAgICAgJGludGVyZmFjZURhdGEgPSAoZGVmaW5lZCgkNCkgPyAk
NCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwpAQCAtMjQ3LDgg
KzI0Nyw4IEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9h
dHRyaWJ1dGUvKSB7CiAgICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6Omlu
dGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yLzsKIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1
dGVUeXBlID0gKGRlZmluZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6
XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRXh0ZW5kZWRBdHRy
aWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRhdHRyaWJ1dGVFeHRlbmRl
ZEF0dHJpYnV0ZXMpOworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJp
YnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7CisgICAgICAgICAgICAgICAgbXkgJGF0
dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNv
dXJjZTpcbiRsaW5lXG4pIikpOwogCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFU
eXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKICAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVm
aW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OwpAQCAtMjgyLDcgKzI4Miw3IEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgICAgICAgICAgfSBl
bHNpZiAoKCRsaW5lICF+IHMvXlxzKiQvL2cpIGFuZCAoJGxpbmUgIX4gL15ccypjb25zdC8pKSB7
CiAgICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1ldGhv
ZFNlbGVjdG9yLyBvciBkaWUgIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7CiAK
LSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQo
JDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpOworICAgICAg
ICAgICAgICAgIG15ICRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAk
MSA6ICIgIik7CiAgICAgICAgICAgICAgICAgbXkgJG1ldGhvZFR5cGUgPSAoZGVmaW5lZCgkMikg
PyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwogICAgICAg
ICAgICAgICAgIG15ICRtZXRob2ROYW1lID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKICAgICAgICAgICAgICAgICBteSAkbWV0
aG9kU2lnbmF0dXJlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5T
b3VyY2U6XG4kbGluZVxuKSIpKTsKQEAgLTMxMCw3ICszMTAsNyBAQCBzdWIgUGFyc2VJbnRlcmZh
Y2UKICAgICAgICAgICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKIAogICAgICAgICAgICAgICAg
ICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2VsZWN0b3Iv
OwotICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVm
aW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQo
JDEpID8gJDEgOiAiICIpOwogICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gKGRl
ZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIp
KTsKICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IChkZWZpbmVkKCQzKSA/ICQz
IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CiAKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExTdHJ1Y3R1cmUucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQkocmV2aXNpb24gNDQ2NzMpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC03OSwyOSArNzksMjYgQEAgJGlkbElkTnNMaXN0ID0gJ1thLXpBLVowLTk6LFwgXSc7ICAj
IExpcwogJGlkbFR5cGUgPSAnW2EtekEtWjAtOV9dJzsgICAgICAjIEdlbmVyaWMgdHlwZS8idmFs
dWUgc3RyaW5nIiBpZGVudGlmaWVyCiAkaWRsRGF0YVR5cGUgPSAnW2EtekEtWjAtOVwgXSc7ICAg
IyBHZW5lcmljIGRhdGEgdHlwZSBpZGVudGlmaWVyCiAKLSMgTWFnaWMgSURMIHBhcnNpbmcgcmVn
dWxhciBleHByZXNzaW9ucwotbXkgJHN1cHBvcnRlZFR5cGVzID0gIigoPzp1bnNpZ25lZCApPyg/
OmludHxzaG9ydHwoPzpsb25nICk/bG9uZyl8KD86JGlkbElkTnMqKSkiOworIyBJREwgcGFyc2lu
ZyByZWd1bGFyIGV4cHJlc3Npb25zCitteSAkc3VwcG9ydGVkVHlwZXMgPSAiKCg/OnVuc2lnbmVk
XHMrKT8oPzppbnR8c2hvcnR8KD86bG9uZ1xzKyk/bG9uZyl8KD86JGlkbElkTnMrKSkiOwogCiAj
IFNwZWNpYWwgSURMIG5vdGF0aW9ucwogJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4ID0gJ1xbW15d
XSpcXSc7ICMgVXNlZCBmb3IgZXh0ZW5kZWQgYXR0cmlidXRlcwogCiAjIFJlZ3VsYXIgZXhwcmVz
c2lvbiBiYXNlZCBJREwgJ3N5bnRhY3RpY2FsIHRva2VuaXplcicgdXNlZCBpbiB0aGUgSURMUGFy
c2VyCi0kbW9kdWxlU2VsZWN0b3IgPSAnbW9kdWxlXHMqKCcgLiAkaWRsSWQgLiAnKilccyp7JzsK
LSRtb2R1bGVOU1NlbGVjdG9yID0gJ21vZHVsZVxzKignIC4gJGlkbElkIC4gJyopXHMqXFtuc1xz
KignIC4gJGlkbElkTnMgLiAnKilccyooJyAuICRpZGxJZE5zIC4gJyopXF1ccyo7JzsKLSRjb25z
dGFudFNlbGVjdG9yID0gJ2NvbnN0XHMqJyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRp
ZGxUeXBlIC4gJyopXHMqPVxzKignIC4gJGlkbFR5cGUgLiAnKiknOwotJHJhaXNlc1NlbGVjdG9y
ID0gJ3JhaXNlc1xzKlwoKCcgLiAkaWRsSWROc0xpc3QgLiAnKilccypcKSc7Ci0kZ2V0dGVyUmFp
c2VzU2VsZWN0b3IgPSAnXGJnZXR0ZXJccytyYWlzZXNccypcKCgnIC4gJGlkbElkTnNMaXN0IC4g
JyopXHMqXCknOwotJHNldHRlclJhaXNlc1NlbGVjdG9yID0gJ1xic2V0dGVyXHMrcmFpc2VzXHMq
XCgoJyAuICRpZGxJZE5zTGlzdCAuICcqKVxzKlwpJzsKLQotJHR5cGVOYW1lc3BhY2VTZWxlY3Rv
ciA9ICcoKD86JyAuICRpZGxJZCAuICcqOjopKilccyooJyAuICRpZGxEYXRhVHlwZSAuICcqKSc7
Ci0KLSRleGNlcHRpb25TZWxlY3RvciA9ICdleGNlcHRpb25ccyooJyAuICRpZGxJZE5zIC4gJyop
XHMqKFthLXpBLVpcc3s7XSp9OyknOwotJGV4Y2VwdGlvblN1YlNlbGVjdG9yID0gJ3tccyonIC4g
JHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbFR5cGUgLiAnKilccyo7XHMqfSc7Ci0KLSRp
bnRlcmZhY2VTZWxlY3RvciA9ICdpbnRlcmZhY2VccyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0
ZVN5bnRheCAuICcgKT8pKCcgLiAkaWRsSWROcyAuICcqKVxzKig/OjooXHMqW157XSopKT97KFth
LXpBLVowLTlfPVxzKCksOzpcW1xdXSopJzsKLSRpbnRlcmZhY2VNZXRob2RTZWxlY3RvciA9ICdc
cyooKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pJyAuICRzdXBwb3J0ZWRU
eXBlcyAuICdccyooJyAuICRpZGxJZE5zIC4gJyopXHMqXChccyooW2EtekEtWjAtOTpccyw9XFtc
XV0qKSc7Ci0kaW50ZXJmYWNlUGFyYW1ldGVyU2VsZWN0b3IgPSAnaW5ccyooKD86JyAuICRleHRl
bmRlZEF0dHJpYnV0ZVN5bnRheCAuICcgKT8pJyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAu
ICRpZGxJZE5zIC4gJyopJzsKKyRtb2R1bGVTZWxlY3RvciA9ICdcYm1vZHVsZVxzKygnIC4gJGlk
bElkIC4gJyspXHMqeyc7CiskY29uc3RhbnRTZWxlY3RvciA9ICdcYmNvbnN0XHMrJyAuICRzdXBw
b3J0ZWRUeXBlcyAuICdccysoJyAuICRpZGxUeXBlIC4gJyspXHMqPVxzKignIC4gJGlkbFR5cGUg
LiAnKyknOworJHJhaXNlc1NlbGVjdG9yID0gJ1xicmFpc2VzXHMrXCgoJyAuICRpZGxJZE5zTGlz
dCAuICcrKVxzKlwpJzsKKyRnZXR0ZXJSYWlzZXNTZWxlY3RvciA9ICdcYmdldHJhaXNlc1xzKlwo
KCcgLiAkaWRsSWROc0xpc3QgLiAnKylccypcKSc7Ciskc2V0dGVyUmFpc2VzU2VsZWN0b3IgPSAn
XGJzZXRyYWlzZXNccypcKCgnIC4gJGlkbElkTnNMaXN0IC4gJyspXHMqXCknOworCiskZXhjZXB0
aW9uU2VsZWN0b3IgPSAnXGJleGNlcHRpb25ccyooJyAuICRpZGxJZE5zIC4gJyspXHMrKFthLXpB
LVpcc3s7XSp9OyknOworJGV4Y2VwdGlvblN1YlNlbGVjdG9yID0gJ3tccyonIC4gJHN1cHBvcnRl
ZFR5cGVzIC4gJ1xzKygnIC4gJGlkbFR5cGUgLiAnKylccyo7XHMqfSc7CisKKyRpbnRlcmZhY2VT
ZWxlY3RvciA9ICcoKD86JyAuICRleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAuICcpPylccypcYmlu
dGVyZmFjZVxzKygnIC4gJGlkbElkTnMgLiAnKylccyooPzo6KFxzKltee10qKSk/eyhbYS16QS1a
MC05Xz1ccygpLDs6XFtcXV0qKSc7CiskaW50ZXJmYWNlTWV0aG9kU2VsZWN0b3IgPSAnKCg/Oicg
LiAkZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggLiAnKT8pXHMqXGInIC4gJHN1cHBvcnRlZFR5cGVz
IC4gJ1xzKygnIC4gJGlkbElkTnMgLiAnKylccypcKFxzKihbYS16QS1aMC05OlxzLD1cW1xdXSop
JzsKKyRpbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3RvciA9ICcoKD86JyAuICRleHRlbmRlZEF0dHJp
YnV0ZVN5bnRheCAuICcpPylccypcYmluXHMrJyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccysoJyAu
ICRpZGxJZE5zIC4gJyspJzsKIAotJGludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yID0gJ1xzKihy
ZWFkb25seSBhdHRyaWJ1dGV8YXR0cmlidXRlKVxzKignIC4gJGV4dGVuZGVkQXR0cmlidXRlU3lu
dGF4IC4gJyApPycgLiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsVHlwZSAuICcqKSc7
CiskaW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IgPSAnKCg/OicgLiAkZXh0ZW5kZWRBdHRyaWJ1
dGVTeW50YXggLiAnKT8pXHMqXGIocmVhZG9ubHlccythdHRyaWJ1dGV8YXR0cmlidXRlKVxzKycg
LiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMrKCcgLiAkaWRsVHlwZSAuICcrKSc7CiAKIDE7CkluZGV4
OiBXZWJDb3JlL2RvbS9BdHRyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9BdHRyLmlk
bAkocmV2aXNpb24gNDQ2NzMpCisrKyBXZWJDb3JlL2RvbS9BdHRyLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMTggKzIwLDE4IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAogICAgICAgICBHZW5lcmF0ZU5h
dGl2ZUNvbnZlcnRlciwKICAgICAgICAgSW50ZXJmYWNlVVVJRD1FRUU4RTIyQi0yMkMzLTRlNTAt
OTVGNC01RTBCOEFBRDgyMzEsCiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD00MUIxNjM0OC1E
OEU3LTRkMjEtQkZEQi0xMjU3MDVCN0U5MUYKLSAgICBdIEF0dHIgOiBOb2RlIHsKKyAgICBdIGlu
dGVyZmFjZSBBdHRyIDogTm9kZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKIAotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5n
IG5hbWU7CisgICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
c3BlY2lmaWVkOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5n
VG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmcsIEN1c3RvbVNldHRlcl0gRE9NU3RyaW5n
IHZhbHVlIAorICAgICAgICAgICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZywgQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZh
bHVlIAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIC8vIERPTSBMZXZlbCAyCkluZGV4OiBXZWJDb3JlL3BhZ2UvQWJzdHJhY3RWaWV3
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbAkocmV2aXNp
b24gNDQ2NzMpCisrKyBXZWJDb3JlL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjcsOSArMjcsOSBAQAogbW9kdWxlIHZpZXdzIHsKIAogICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIE9iakNDdXN0
b21JbXBsZW1lbnRhdGlvbgotICAgIF0gQWJzdHJhY3RWaWV3IHsKKyAgICBdIGludGVyZmFjZSBB
YnN0cmFjdFZpZXcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgZG9jdW1l
bnQ7CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150773</attachid>
            <date>2012-07-04 04:49:31 -0700</date>
            <delta_ts>2012-07-05 01:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120704204928.patch</filename>
            <type>text/plain</type>
            <size>888748</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmODc5NTIwYWE0Y2Q5
NGEzZjBlNjczMmZiMDRiYzliNjY4NzM2ZS4uOGJmOTYwMWFjNmNlOTM1YmFiZTFjYjhlZDcwOTcx
ZmJiNDkxNzJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3MCBAQAorMjAxMi0wNy0wNCAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAxMS9XRC1XZWJJREwtMjAxMTA3MTIvI2lkbC1ncmFtbWFyCisgICAgICAg
IFRoZSByZWFzb24gd2h5IHRoZSBwYXJzZXIgaXMgbm90IGJhc2VkIG9uIHRoZSBsYXRlc3QgV2Vi
SURMIGlzIHRoYXQKKyAgICAgICAgdGhlIGxhdGVzdCBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnkgIm1v
ZHVsZSIuIEFjY29yZGluZyB0byB0aGUgSURMCisgICAgICAgIGdyYW1tYXIsIGltcGxlbWVudGVk
IExMKDEpIHBhcnNlci4gTm93IGFjY29yZGluZyB0byB0aGUgc3BlYywgSURMCisgICAgICAgIGZp
bGVzIGFyZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAgICAgICAgLSBleHRlbmRl
ZCBhdHRyaWJ1dGVzIGFyZSBtb3ZlZCB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklE
TCwKKyAgICAgICAgICBlLmcuICJpbnRlcmZhY2UgWyAuLi4gXSBuYW1lIC4uLiIgaXMgbW9kaWZp
ZWQgdG8KKyAgICAgICAgICAiWyAuLi4gXSBpbnRlcmZhY2UgbmFtZSAuLi4iLgorICAgICAgICAt
ICJnZXR0ZXIgcmFpc2VzIiBhbmQgInNldHRlciByYWlzZXMiIGFyZSByZW5hbWVkIHRvICJnZXRy
YWlzZXMiIGFuZAorICAgICAgICAgICJzZXRyYWlzZXMiIGRlZmluZWQgaW4gV2ViSURMLgorICAg
ICAgICAtIGFkZGVkICI7IiBhZnRlciBtb2R1bGUncyAifSIsIGkuZS4gIm1vZHVsZSB7IC4uLiB9
IiBpcyBtb2RpZmllZCB0bworICAgICAgICAgICJtb2R1bGUgeyAuLi4gfTsiLgorICAgICAgICAt
IHJlbW92ZWQgIiwiIGFmdGVyIHRoZSBsYXN0IGV4dGVuZGVkIGF0dHJpYnV0ZSwKKyAgICAgICAg
ICBpLmUuICJbLi4uLCBhdHRyaWJ1dGUsXSIgaXMgbW9kaWZpZWQgdG8gIlsuLi4sIGF0dHJpYnV0
ZV0iLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdGVkIGJ5IGNvbXBhcmluZyB3aXRoIHNv
dXJjZXMgZ2VuZXJhdGVkIGJ5CisgICAgICAgIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0uCisK
KyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0v
RE9NV2luZG93RmlsZVN5c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL0Rh
dGFUcmFuc2Zlckl0ZW1GaWxlU3lzdGVtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW0vRGlyZWN0b3J5RW50cnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJl
Y3RvcnlFbnRyeVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3Rv
cnlSZWFkZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFk
ZXJTeW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cmllc0NhbGxiYWNr
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFycmF5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW0vRW50cnlBcnJheVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bS9FbnRyeUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlT
eW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRXJyb3JDYWxsYmFjay5pZGw6
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVDYWxsYmFjay5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVFbnRyeS5pZGw6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtL0ZpbGVFbnRyeVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9G
aWxlV3JpdGVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlckNh
bGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlclN5bmMu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9IVE1MSW5wdXRFbGVtZW50RmlsZVN5
c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL01ldGFkYXRhLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNvbnRleHRGaWxlU3lzdGVtLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGw6CisgICAgICAgICogTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRMaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGw6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRo
VmFsdWUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGw6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9p
bnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9E
ZWxpdmVyZWRJbnRlbnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9JbnRlbnQuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtRXZlbnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1MaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2
ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tM
aXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3Ry
ZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YUVycm9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJN
ZWRpYUVycm9yQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1NpZ25hbGluZ0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL25ldHdvcmtpbmZv
L05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9u
ZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMv
cXVvdGEvRE9NV2luZG93UXVvdGEuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFn
ZUluZm8uaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
ay5pZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2su
aWRsOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5pZGw6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlvbi9OYXZpZ2F0
b3JWaWJyYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGw6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbFNwbGl0dGVyLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0dhaW4uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9HYWlu
Tm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1By
b2Nlc3NpbmdFdmVudC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NvdXJj
ZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0phdmFTY3JpcHRBdWRpb05vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9Pc2NpbGxhdG9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1l
QW5hbHlzZXJOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJO
b2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVUYWJsZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlU3luYy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxFcnJvci5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0LmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmMu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2Fs
bGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvV29ya2VyQ29udGV4dFdl
YkRhdGFiYXNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGw6
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q2FsbGJhY2suaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJpdHkuaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRDb25zdHJ1Y3Rvci5pZGw6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFdmVudFRhcmdldC5pZGw6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0SW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0TmFtZWRDb25zdHJ1Y3Rvci5pZGw6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROb2RlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsOgorICAgICAgICAqIGNzcy9DU1NDaGFyc2V0
UnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6CisgICAgICAgICog
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuaWRsOgor
ICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NT
U1J1bGVMaXN0LmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6Cisg
ICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsOgorICAgICAgICAqIGNzcy9DU1NVbmtub3duUnVsZS5pZGw6CisgICAgICAgICogY3Nz
L0NTU1ZhbHVlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0LmlkbDoKKyAgICAgICAg
KiBjc3MvQ291bnRlci5pZGw6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5pZGw6CisgICAgICAg
ICogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5pZGw6CisgICAgICAgICogY3NzL1JHQkNvbG9yLmlkbDoKKyAgICAgICAgKiBjc3Mv
UmVjdC5pZGw6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRsOgorICAgICAgICAqIGNzcy9T
dHlsZVNoZWV0LmlkbDoKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldExpc3QuaWRsOgorICAgICAg
ICAqIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENT
U0tleWZyYW1lUnVsZS5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUu
aWRsOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsOgorICAgICAgICAqIGNzcy9X
ZWJLaXRDU1NSZWdpb25SdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaWRsOgorICAgICAgICAqIGRvbS9BdHRyLmlkbDoKKyAgICAgICAgKiBkb20vQmVmb3Jl
TG9hZEV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vQ0RBVEFTZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBkb20vQ2hhcmFjdGVyRGF0YS5pZGw6CisgICAgICAgICogZG9tL0NsaWVudFJlY3QuaWRsOgor
ICAgICAgICAqIGRvbS9DbGllbnRSZWN0TGlzdC5pZGw6CisgICAgICAgICogZG9tL0NsaXBib2Fy
ZC5pZGw6CisgICAgICAgICogZG9tL0NvbW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9Db21wb3Np
dGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vQ3VzdG9tRXZlbnQuaWRsOgorICAgICAgICAq
IGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRE9NRXJyb3IuaWRsOgor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RPTVN0
cmluZ0xpc3QuaWRsOgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaWRsOgorICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRl
bUxpc3QuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAg
ICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudFR5cGUuaWRsOgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAg
KiBkb20vRW50aXR5LmlkbDoKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmlkbDoKKyAg
ICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50LmlkbDoKKyAg
ICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGRvbS9FdmVudExpc3Rl
bmVyLmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaWRsOgorICAgICAgICAqIGRvbS9I
YXNoQ2hhbmdlRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDoKKyAg
ICAgICAgKiBkb20vTWVzc2FnZUNoYW5uZWwuaWRsOgorICAgICAgICAqIGRvbS9NZXNzYWdlRXZl
bnQuaWRsOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5pZGw6CisgICAgICAgICogZG9tL01v
dXNlRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3Jk
LmlkbDoKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAgKiBkb20vTm9k
ZS5pZGw6CisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICAqIGRvbS9Ob2Rl
SXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5pZGw6CisgICAgICAgICogZG9t
L05vdGF0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vT3ZlcmZsb3dFdmVudC5pZGw6CisgICAgICAg
ICogZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Qb3BTdGF0ZUV2
ZW50LmlkbDoKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBkb20vUHJvZ3Jlc3NFdmVudC5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmlkbDoKKyAg
ICAgICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGRvbS9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5pZGw6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgor
ICAgICAgICAqIGRvbS9TdHJpbmdDYWxsYmFjay5pZGw6CisgICAgICAgICogZG9tL1RleHQuaWRs
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaC5pZGw6
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaExpc3Qu
aWRsOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2VyLmlkbDoKKyAgICAgICAgKiBkb20vVUlFdmVu
dC5pZGw6CisgICAgICAgICogZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDoKKyAgICAgICAg
KiBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGw6CisgICAgICAgICogZG9tL1dlYktpdE5h
bWVkRmxvdy5pZGw6CisgICAgICAgICogZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGw6Cisg
ICAgICAgICogZG9tL1doZWVsRXZlbnQuaWRsOgorICAgICAgICAqIGVkaXRpbmcvVW5kb01hbmFn
ZXIuaWRsOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5pZGw6CisgICAgICAgICogZmlsZWFwaS9G
aWxlLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVFcnJvci5pZGw6CisgICAgICAgICogZmls
ZWFwaS9GaWxlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0LmlkbDoK
KyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaWRsOgorICAgICAgICAqIGZpbGVhcGkvRmls
ZVJlYWRlclN5bmMuaWRsOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuaWRs
OgorICAgICAgICAqIGh0bWwvRE9NRm9ybURhdGEuaWRsOgorICAgICAgICAqIGh0bWwvRE9NU2V0
dGFibGVUb2tlbkxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmlkbDoKKyAg
ICAgICAgKiBodG1sL0RPTVVSTC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQWxsQ29sbGVjdGlv
bi5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQlJFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5p
ZGw6CisgICAgICAgICogaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxCb2R5RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQ29sbGVjdGlvbi5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRExpc3RFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXJlY3Rv
cnlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5p
ZGw6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhSRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSGVhZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhlYWRpbmdFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTEludGVudEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExJRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWFwRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWVudUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTE1vZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdy
YXBoRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxQcmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTFNwYW5FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxTdHlsZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlQ29sRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFVM
aXN0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsOgor
ICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9JbWFn
ZURhdGEuaWRsOgorICAgICAgICAqIGh0bWwvTWVkaWFDb250cm9sbGVyLmlkbDoKKyAgICAgICAg
KiBodG1sL01lZGlhRXJyb3IuaWRsOgorICAgICAgICAqIGh0bWwvTWVkaWFLZXlFcnJvci5pZGw6
CisgICAgICAgICogaHRtbC9NZWRpYUtleUV2ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL1JhZGlv
Tm9kZUxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvVGV4dE1ldHJpY3MuaWRsOgorICAgICAgICAq
IGh0bWwvVGltZVJhbmdlcy5pZGw6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmlkbDoK
KyAgICAgICAgKiBodG1sL1ZvaWRDYWxsYmFjay5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJy
YXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0ludDhBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5
LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGw6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGw6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbDoKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hU
TUxTaGFkb3dFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5pZGw6
CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRsOgorICAgICAgICAqIGh0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2tMaXN0LmlkbDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrRXZlbnQuaWRsOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGw6CisgICAgICAgICogbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDoKKyAgICAgICAgKiBub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DZW50ZXIuaWRsOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBub3RpZmljYXRpb25zL1dvcmtlckNvbnRleHRO
b3RpZmljYXRpb25zLmlkbDoKKyAgICAgICAgKiBwYWdlL0Fic3RyYWN0Vmlldy5pZGw6CisgICAg
ICAgICogcGFnZS9CYXJJbmZvLmlkbDoKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaWRsOgorICAg
ICAgICAqIHBhZ2UvQ29vcmRpbmF0ZXMuaWRsOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmlkbDoK
KyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93UGFnZVBvcHVwLmlkbDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50U291cmNlLmlkbDoKKyAgICAgICAgKiBwYWdlL0hpc3RvcnkuaWRsOgorICAg
ICAgICAqIHBhZ2UvTG9jYXRpb24uaWRsOgorICAgICAgICAqIHBhZ2UvTWVtb3J5SW5mby5pZGw6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9y
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsOgorICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ29u
dHJvbGxlci5pZGw6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5pZGw6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50
cnlMaXN0LmlkbDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGw6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbDoKKyAgICAgICAgKiBw
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrLmlk
bDoKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5pZGw6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1
dEV2ZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbDoKKyAgICAg
ICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGw6CisgICAgICAgICogcGFnZS9XZWJL
aXRBbmltYXRpb24uaWRsOgorICAgICAgICAqIHBhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw6
CisgICAgICAgICogcGFnZS9XZWJLaXRQb2ludC5pZGw6CisgICAgICAgICogcGFnZS9Xb3JrZXJO
YXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaWRsOgorICAgICAg
ICAqIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5pZGw6CisgICAgICAgICogcGx1Z2lucy9ET01Q
bHVnaW4uaWRsOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaWRsOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnQu
aWRsOgorICAgICAgICAqIHN2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdBRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5pZGw6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWRCb29sZWFuLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bi5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGw6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJl
Y3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGw6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGlvbkVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQ29s
b3IuaWRsOgorICAgICAgICAqIHN2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdEZWZzRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0Rlc2NFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZF
QmxlbmRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jQUVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNCRWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVUaWxlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRml0VG9WaWV3Qm94LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9T
VkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0dseXBoRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0dseXBoUmVmRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0hLZXJuRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xhbmdTcGFjZS5pZGw6CisgICAg
ICAgICogc3ZnL1NWR0xlbmd0aC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdMaW5lRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xvY2F0YWJsZS5pZGw6
CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR01h
cmtlckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5pZGw6CisgICAg
ICAgICogc3ZnL1NWR01hdHJpeC5pZGw6CisgICAgICAgICogc3ZnL1NWR01ldGFkYXRhRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdOdW1iZXIuaWRsOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHUGFpbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQXJjQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0FyY1JlbC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1JlbC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnMuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGw6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbDoKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxBYnMuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbFJlbC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdNb3ZldG9BYnMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQb2ludC5pZGw6CisgICAgICAg
ICogc3ZnL1NWR1BvaW50TGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BvbHlnb25FbGVtZW50
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGw6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1JlY3QuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdSZWN0RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1JlbmRlcmluZ0ludGVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9T
VkdTY3JpcHRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU2V0RWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5n
TGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1N0eWxhYmxlLmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHU3R5bGVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU3dpdGNoRWxlbWVudC5pZGw6
CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdU
UmVmRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1RTcGFuRWxlbWVudC5pZGw6CisgICAg
ICAgICogc3ZnL1NWR1Rlc3RzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlz
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdVUklSZWZlcmVuY2UuaWRsOgorICAgICAgICAqIHN2Zy9TVkdVbml0VHlwZXMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5F
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdWaWV3U3BlYy5pZGw6CisgICAgICAgICogc3ZnL1NWR1pvb21BbmRQYW4uaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdab29tRXZlbnQuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAg
ICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyQ29udGV4dC5pZGw6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRs
OgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5pZGw6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5pZGw6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5pZGw6CisgICAgICAgICogeG1sL0RP
TVBhcnNlci5pZGw6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFVw
bG9hZC5pZGw6CisgICAgICAgICogeG1sL1hNTFNlcmlhbGl6ZXIuaWRsOgorICAgICAgICAqIHht
bC9YUGF0aEV2YWx1YXRvci5pZGw6CisgICAgICAgICogeG1sL1hQYXRoRXhjZXB0aW9uLmlkbDoK
KyAgICAgICAgKiB4bWwvWFBhdGhFeHByZXNzaW9uLmlkbDoKKyAgICAgICAgKiB4bWwvWFBhdGhO
U1Jlc29sdmVyLmlkbDoKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuaWRsOgorICAgICAgICAq
IHhtbC9YU0xUUHJvY2Vzc29yLmlkbDoKKyAgICAgICAgQWRkZWQgbWlzc2luZyAiOyIgYWZ0ZXIg
bW9kdWxlJ3MgIn0iLiBNb3ZlZCBleHRlbmRlZCBhdHRyaWJ1dGVzIHRvIHRoZQorICAgICAgICBs
b2NhdGlvbiBzcGVjaWZpZWQgaW4gV2ViSURMIHNwZWMuIFJlbmFtZWQgInNldHRlciByYWlzZXMi
IGFuZAorICAgICAgICAiZ2V0dGVyIHJhaXNlcyIgaW50byAic2V0cmFpc2VzIiBhbmQgImdldHJh
aXNlcyIsIGJlY2F1c2UKKyAgICAgICAgInNldHRlciByYWlzZXMiIGFuZCAiZ2V0dGVyIHJhaXNl
cyIgYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLgorICAgICAgICBSZW1vdmVkICIsIiBhZnRl
ciB0aGUgbGFzdCBleHRlbmRlZCBhdHRyaWJ1dGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoUGFyc2UpOgorICAgICAg
ICBBIG1ldGhvZCB0byBzdGFydCBwYXJzaW5nIGEgSURMIGZpbGUuIEFyZ3VtZW50cyBhbmQgcmV0
dXJuIHZhbHVlcyBhcmUKKyAgICAgICAgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIElETFBhcnNl
ci5wbSdzIFBhcnNlIG1ldGhvZC4KKyAgICAgICAgKHRva2VuU2hvdWxkQmUpOgorICAgICAgICBP
YnRhaW5zIGEgbmV3IHRva2VuIGFuZCBjb21wYXJlcyB3aXRoIHRoZSBzcGVjaWZpZWQgdHlwZSBh
bmQgdmFsdWUuCisgICAgICAgIElmIG5vdCBtYXRjaCwgdGhyb3dzIGFuIGV4Y2VwdGlvbiBieSB1
c2luZyAiZGllIi4KKyAgICAgICAgKHRva2VuU2hvdWxkQmVJZGVudGlmaWVyKToKKyAgICAgICAg
Q2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHRva2VuIGlzIGFuIGlkZW50aWZpZXIgb3Igbm90LiBJ
ZiBub3QgYW4KKyAgICAgICAgaWRlbnRpZmllciwgdGhyb3dzIGFuIGV4Y2VwdGlvbiBieSB1c2lu
ZyAiZGllIi4KKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbnMpOgorICAgICAgICAocGFyc2VEZWZp
bml0aW9uKToKKyAgICAgICAgKHBhcnNlTm9ybWFsRGVmaW5pdGlvbik6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZSk6CisgICAgICAgIChwYXJzZVBhcnRp
YWxJbnRlcmZhY2UpOgorICAgICAgICAocGFyc2VJbmhlcml0YW5jZSk6CisgICAgICAgIFdlYklE
TCBkb2Vzbid0IHN1cHBvcnQgbXVsdGlwbGUgcGFyZW50cywgYnV0IFNWR0FsdEdseXBoRWxlbWVu
dCBoYXMgdHdvCisgICAgICAgIHBhcmVudHMsIGkuZS4gU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dCBhbmQgU1ZHVVJJUmVmZXJlbmNlLiBTbyBjaGFuZ2VzCisgICAgICAgIHRoZSBvcmlnaW5hbCBn
cmFtbWFyIHRvIHN1cHBvcnQgc3VjaCBhIElETCBmaWxlLgorICAgICAgICAocGFyc2VJbnRlcmZh
Y2VNZW1iZXJzKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNlTWVtYmVyKToKKyAgICAgICAgKHBh
cnNlRGljdGlvbmFyeSk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlNZW1iZXJzKToKKyAgICAg
ICAgKHBhcnNlRGljdGlvbmFyeU1lbWJlcik6CisgICAgICAgIChwYXJzZURlZmF1bHRWYWx1ZSk6
CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbik6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk1lbWJl
cnMpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0
YXRlbWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RFeHBy
KToKKyAgICAgICAgKHBhcnNlQm9vbGVhbkxpdGVyYWwpOgorICAgICAgICAocGFyc2VBdHRyaWJ1
dGVPck9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRlT3JPcGVy
YXRpb24pOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAocGFyc2VSZWFkT25s
eSk6CisgICAgICAgIChwYXJzZUdldCk6CisgICAgICAgIChwYXJzZUluaGVyaXRzR2V0dGVyKToK
KyAgICAgICAgKHBhcnNlR2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlU2V0UmFpc2VzKToKKyAg
ICAgICAgKHBhcnNlT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVycyk6CisgICAg
ICAgIChwYXJzZVNwZWNpYWxzKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6CisgICAgICAgIChw
YXJzZU9wZXJhdGlvblJlc3QpOgorICAgICAgICAocGFyc2VPcHRpb25hbElkZW50aWZpZXIpOgor
ICAgICAgICAocGFyc2VSYWlzZXMpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25MaXN0KToKKyAg
ICAgICAgKHBhcnNlQXJndW1lbnRMaXN0KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnRzKToKKyAg
ICAgICAgKHBhcnNlQXJndW1lbnQpOgorICAgICAgICAocGFyc2VJbik6CisgICAgICAgIChwYXJz
ZU9wdGlvbmFsKToKKyAgICAgICAgKHBhcnNlRWxsaXBzaXMpOgorICAgICAgICAocGFyc2VFeGNl
cHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVsZCk6CisgICAgICAgIChw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmli
dXRlcyk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNl
VHlwZSk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAocGFyc2VDb25z
dFR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVPclN0cmluZ1R5cGUpOgorICAgICAgICAo
cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKToKKyAgICAgICAgKHBhcnNlSW50ZWdlclR5cGUpOgor
ICAgICAgICBBZGRlZCAiaW50IiB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgV2ViSURMIHNw
ZWMsIGJlY2F1c2Ugc29tZSBvZgorICAgICAgICBJREwgZmlsZXMgdXNlICJpbnQiLCBlLmcuIFRv
dWNoLmlkbCwgQXJyYXlCdWZmZXIuaWRsLCBhbmQgc28gb24uCisgICAgICAgIChwYXJzZU9wdGlv
bmFsTG9uZyk6CisgICAgICAgIChwYXJzZVR5cGVTdWZmaXgpOgorICAgICAgICAocGFyc2VUeXBl
U3VmZml4U3RhcnRpbmdXaXRoQXJyYXkpOgorICAgICAgICAocGFyc2VOdWxsKToKKyAgICAgICAg
KHBhcnNlUmV0dXJuVHlwZSk6CisgICAgICAgIChwYXJzZVNjb3BlZE5hbWVMaXN0KToKKyAgICAg
ICAgKHBhcnNlU2NvcGVkTmFtZXMpOgorICAgICAgICAocGFyc2VTY29wZWROYW1lKToKKyAgICAg
ICAgKHBhcnNlQWJzb2x1dGVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlUmVsYXRpdmVTY29w
ZWROYW1lKToKKyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZVBhcnRzKToKKyAgICAgICAgcGFyc2VY
WFhYcyBhcmUgaW1wbGVtZW50ZWQgdG8gcGFyc2UgdGhlIGdyYW1tYXI6ICJYWFhYIi4gRm9yIGV4
YW1wbGUsCisgICAgICAgIHBhcnNlU2NvcGVkTmFtZVBhcnRzIGlzIGZvciBwYXJzaW5nIHRoZSBn
cmFtbWFyOgorICAgICAgICBbNjhdIFNjb3BlZE5hbWVQYXJ0cyA6PSAiOjoiIGlkZW50aWZpZXIg
U2NvcGVkTmFtZVBhcnRzIHwgZXBzaWxvbi4KKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGUxKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKToKKyAgICAgICAgKHBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGUzKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGU0KToK
KyAgICAgICAgVGhlc2UgYXJlIGltcGxlbWVudGVkIHRvIHBhcnNlIHRoZSByZXN0cmljdGVkICJF
eHRlbmRlZEF0dHJpYnV0ZSIsIGkuZS4KKyAgICAgICAgRXh0ZW5kZWRBdHRyaWJ1dGVOb0FyZywg
RXh0ZW5kZWRBdHRyaWJ1dGVBcmdMaXN0LAorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZU5hbWVk
QXJnTGlzdCwgRXh0ZW5kZWRBdHRyaWJ1dGVJZGVudCBhbmQKKyAgICAgICAgRXh0ZW5kZWRBdHRy
aWJ1dGVTY29wZWROYW1lLiBIb3dldmVyLCB0aGVzZSBydWxlcyBkb24ndCBzdXBwb3J0CisgICAg
ICAgICJWYWx1ZT0wIiwgIlZhbHVlPUEmQiIsIGFuZCAiVmFsdWU9QXxCIiwgYmVjYXVzZSAwLCBB
JkIsIGFuZCBBfEIgYXJlCisgICAgICAgIG5laXRoZXIgaWRlbnRpZmllcnMgbm9yIHNjb3BlZCBu
YW1lcy4gU28gbW9kaWZpZWQgdG8gc3VwcG9ydCB0aGVzZQorICAgICAgICBleHRlbmRlZCBhdHRy
aWJ1dGUuCisgICAgICAgIChhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChw
cmludFRva2VuKToKKyAgICAgICAgQWRkZWQgZm9yIGRlYnVnZ2luZy4KKyAgICAgICAgKG5leHRU
b2tlbik6CisgICAgICAgIEltcGxlbWVudGVkIHRvIHNlZSBhIG5leHQgdG9rZW4sIGJlY2F1c2Ug
b2YgTEwoMSkuCisgICAgICAgIChnZXRUb2tlbik6CisgICAgICAgIFJldHVybnMgY3VycmVudCB0
b2tlbiwgYW5kIHVwZGF0ZSBuZXh0IGFuZCBjdXJyZW50IHRva2VuLgorICAgICAgICAoZ2V0VG9r
ZW5JbnRlcm5hbCk6CisgICAgICAgIEV4dHJhY3RzIGEgdG9rZW4gYnkgcGFyc2luZyBpbnB1dCBk
b2N1bWVudCBjb250ZW50LgorICAgICAgICAoZ2V0SW50ZWdlclRva2VuKToKKyAgICAgICAgUGFy
c2VzIGFuZCByZXR1cm5zIGludGVnZXIgdG9rZW4gaWYgaW5wdXQgY2hhcmFjdGVycyBtYXRjaCAi
aW50ZWdlciIKKyAgICAgICAgcGF0dGVybiwgaS5lLiAiLT8oMChbMC03XSp8W1h4XVswLTlBLUZh
LWZdKyl8WzEtOV1bMC05XSopIi4KKyAgICAgICAgKGdldEZsb2F0VHlwZTJUb2tlbik6CisgICAg
ICAgIFBhcnNlcyBhbmQgcmV0dXJucyBmbG9hdCB0b2tlbiBpZiBpbnB1dCBjaGFyYWN0ZXJzIG1h
dGNoICJmbG9hdCIKKyAgICAgICAgcGF0dGVybiwgaS5lLiAiLT9bMC05XStbRWVdWystXT9bMC05
XSsiLgorICAgICAgICAoZ2V0RmxvYXRUb2tlbik6CisgICAgICAgIFBhcnNlcyBhbmQgcmV0dXJu
cyBmbG9hdCB0b2tlbiBpZiBpbnB1dCBjaGFyYWN0ZXJzIG1hdGNoICJmbG9hdCIKKyAgICAgICAg
cGF0dGVybiwgaS5lLiAiLT8oWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bKy1d
P1swLTldKyk/Ii4KKyAgICAgICAgQXMgaW50ZWdlciBwYXR0ZXJuIGFuZCBmbG9hdCBwYXR0ZXJu
cyBjYW4gaGF2ZSB0aGUgc2FtZSBwcmVmaXgsCisgICAgICAgIGkuZS4gIi0/WzAtN10rIiwgZmly
c3RseSB0cnkgZmxvYXQgcGF0dGVybnMuIElmIG5vdCBtYXRjaCBmbG9hdAorICAgICAgICBwYXR0
ZXJucywgdHJ5IGludGVnZXIgcGF0dGVybi4gSWYgZmlyc3RseSB0cnkgaW50ZWdlciBwYXR0ZXJu
LAorICAgICAgICAiLTAwMDEuIiBpcyB0cmVhdGVkIGFzIGludGVnZXI6Ii0wMDAxIiBhbmQgb3Ro
ZXI6Ii4iLCBidXQgc2hvdWxkIGJlCisgICAgICAgIHRyZWF0IGFzIGZsb2F0OiItMDAwMS4iLgor
ICAgICAgICAoZ2V0Q2hhcik6CisgICAgICAgIE9idGFpbnMgb25lIG1vcmUgY2hhcmFjdGVyIGZy
b20gdGhlIHNwZWNpZmllZCBkb2N1bWVudCBjb250ZW50LgorICAgICAgICAodW5nZXRDaGFyKToK
KyAgICAgICAgUHVzaCBiYWNrIGEgc2luZ2xlIGNoYXJhY3RlciB0byByZWFkIGJ1ZmZlci4gU28g
Z2V0Q2hhciByZXR1cm5zIHRoZQorICAgICAgICBjaGFyYWN0ZXIgYXQgdGhlIG5leHQgaW52b2tl
ZCB0aW1lLgorCiAyMDEyLTA3LTA0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxODEzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5pZGwKaW5k
ZXggZTU1MmRmMzZlZGUzYzFjMzYxN2MyMTc3ZGY1OWIzMWNhZTk3ZWRiMy4uYzM5NDRmY2M4Njlj
NzliZTE2YWNjN2VhNjYzYzVjMjhmMGQ1NmJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuaWRsCkBAIC0yMCwxMSArMjAsMTEgQEAKIG1v
ZHVsZSB3aW5kb3cgewogCiAgICAgLy8gaHR0cDovL2Rldi53My5vcmcvMjAwOS9kYXAvc3lzdGVt
LWluZm8vYmF0dGVyeS1zdGF0dXMuaHRtbAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1CQVRURVJZX1NUQVRVUywKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAog
ICAgICAgICBFdmVudFRhcmdldAotICAgICBdIEJhdHRlcnlNYW5hZ2VyIHsKKyAgICAgXSBpbnRl
cmZhY2UgQmF0dGVyeU1hbmFnZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBjaGFyZ2luZzsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBjaGFyZ2luZ1Rp
bWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOwpA
QCAtMzgsMTMgKzM4LDEzIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBFdmVudFRhcmdl
dCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0
ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVh
biB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0g
aW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAg
Ym9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhF
dmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsCmluZGV4IDVjMjE0NzI3NGY5
NDRhNWMwZDk4OGIwZjczMmUxNmNiYjJjODhhNTIuLjg1ZGZhYTEwNTVkNDYyNGU4NzRkMzVkZWRi
ZjM2ZmNmM2UwM2I0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVy
eS9OYXZpZ2F0b3JCYXR0ZXJ5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRl
cnkvTmF2aWdhdG9yQmF0dGVyeS5pZGwKQEAgLTE5LDEyICsxOSwxMiBAQAogCiBtb2R1bGUgd2lu
ZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1CQVRU
RVJZX1NUQVRVUywKICAgICAgICAgU3VwcGxlbWVudGFsPU5hdmlnYXRvcgotICAgIF0gTmF2aWdh
dG9yQmF0dGVyeSB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yQmF0dGVyeSB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBCYXR0ZXJ5TWFuYWdlciB3ZWJraXRCYXR0ZXJ5OwogICAgIH07
CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9ET01GaWxlU3lzdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9E
T01GaWxlU3lzdGVtLmlkbAppbmRleCAyZTk4ZmJmOTM3MzNkYzUyMjkyMWFlZjg2OTljZWM2Njkz
MGIxMDc1Li4wZDI1NzZlNWUyOTI0MzczZjhmZGJmZGU5MDM1MWMxYzNhZWI4MmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW0uaWRs
CkBAIC0zMCwxMiArMzAsMTIgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBB
Y3RpdmVET01PYmplY3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERPTUZpbGVT
eXN0ZW0geworICAgIF0gaW50ZXJmYWNlIERPTUZpbGVTeXN0ZW0gewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
aXJlY3RvcnlFbnRyeSByb290OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtU3luYy5pZGwKaW5kZXggNzA2
YWE1MDI3NmY1MDQyY2RkNzFmMDk0ZTg4Zjc3MDg5OTRjYjg1ZC4uMTVjZDdhYWQ5NDcwMmNlYmE1
NjE3NDZlZjUyZWViOTljMWY0YWU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbVN5bmMuaWRsCkBAIC0yOSwxMSArMjksMTEg
QEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0g
ICAgXSBET01GaWxlU3lzdGVtU3luYyB7CisgICAgXSBpbnRlcmZhY2UgRE9NRmlsZVN5c3RlbVN5
bmMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBEaXJlY3RvcnlFbnRyeVN5bmMgcm9vdDsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01XaW5k
b3dGaWxlU3lzdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01X
aW5kb3dGaWxlU3lzdGVtLmlkbAppbmRleCBiNmVmNTEzMTk2YWFkYjY4MmExM2Y0YjVhNDlhYjM3
ZDJjNjhlMTM4Li41N2I1MzVlYWUxMDQwNWYyNDhhZjY0ODEyMDcxMDVlNWU3MjA4NDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5
c3RlbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTVdpbmRv
d0ZpbGVTeXN0ZW0uaWRsCkBAIC0yNiwxNyArMjYsMTcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0s
CiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd0ZpbGVTeXN0
ZW0geworICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvd0ZpbGVTeXN0ZW0gewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBURU1QT1JBUlkgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBQRVJTSVNURU5UID0gMTsKIAogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVT
eXN0ZW1dIHZvaWQgd2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oaW4gdW5zaWduZWQgc2hvcnQgdHlw
ZSwgaW4gbG9uZyBsb25nIHNpemUsCi0gICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrXSBGaWxl
U3lzdGVtQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBF
cnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICAgICAgICAgIFtDYWxsYmFja10g
aW4gRmlsZVN5c3RlbUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25h
bF0gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICAgICAgW1Y4RW5hYmxlZEF0
UnVudGltZT1GaWxlU3lzdGVtXSB2b2lkIHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwo
aW4gRE9NU3RyaW5nIHVybCwKLSAgICAgICAgICAgICAgICBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFs
XSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0g
RXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICBbQ2FsbGJhY2ss
IE9wdGlvbmFsXSBpbiBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW0NhbGxiYWNrLCBP
cHRpb25hbF0gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RhdGFUcmFu
c2Zlckl0ZW1GaWxlU3lzdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9EYXRhVHJhbnNmZXJJdGVtRmlsZVN5c3RlbS5pZGwKaW5kZXggMWM1MGRiNDIwZmJjNGZmMTI1
NDIzZDM2ZDQxYmExY2Y1ZTQxZTVmYS4uMThkMGY0NmE3ZDc5NmQ1NzY1OTI5ZDk2Y2IyM2JhYzJh
NDA4M2YxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Rh
dGFUcmFuc2Zlckl0ZW1GaWxlU3lzdGVtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW0vRGF0YVRyYW5zZmVySXRlbUZpbGVTeXN0ZW0uaWRsCkBAIC0zMCwxMSArMzAs
MTEgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMmRklMRV9TWVNURU0sCiAgICAgICAgIFN1
cHBsZW1lbnRhbD1EYXRhVHJhbnNmZXJJdGVtCi0gICAgXSBEYXRhVHJhbnNmZXJJdGVtRmlsZVN5
c3RlbSB7CisgICAgXSBpbnRlcmZhY2UgRGF0YVRyYW5zZmVySXRlbUZpbGVTeXN0ZW0gewogICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gRW50cnkgd2Via2l0R2V0QXNF
bnRyeSgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RW50cnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RpcmVjdG9yeUVudHJ5LmlkbAppbmRleCBjNmM5YWU5YmIxOGM0YzdjNmEz
NmVkOGJhMzdiYzVkMzA0Mjc2MjA4Li44YTYwOWU4ZDRmZmNmZmE2MDAwZTFiOWI2YzViOTQzMTQ4
MWVmMWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGly
ZWN0b3J5RW50cnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9E
aXJlY3RvcnlFbnRyeS5pZGwKQEAgLTI5LDE1ICsyOSwxNSBAQAogICovCiAKIG1vZHVsZSBzdG9y
YWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9T
WVNURU0sCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERpcmVjdG9y
eUVudHJ5IDogRW50cnkgeworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeUVudHJ5IDogRW50cnkg
ewogICAgICAgICBEaXJlY3RvcnlSZWFkZXIgY3JlYXRlUmVhZGVyKCk7Ci0gICAgICAgIFtDdXN0
b21dIHZvaWQgZ2V0RmlsZShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgcGF0aCwgaW4gW09wdGlvbmFsXSBXZWJLaXRGbGFn
cyBmbGFncywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
ayk7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0RGlyZWN0b3J5KGluIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBwYXRoLCBp
biBbT3B0aW9uYWxdIFdlYktpdEZsYWdzIGZsYWdzLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBF
bnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICAgICAgdm9pZCByZW1vdmVSZWN1cnNpdmVs
eShpbiBbQ2FsbGJhY2tdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25h
bCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIFtDdXN0
b21dIHZvaWQgZ2V0RmlsZShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRB
cz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgcGF0aCwgW09wdGlvbmFsXSBpbiBXZWJLaXRGbGFn
cyBmbGFncywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssIFtPcHRpb25hbCwgQ2FsbGJhY2tdIGluIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
ayk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0RGlyZWN0b3J5KFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBwYXRoLCBb
T3B0aW9uYWxdIGluIFdlYktpdEZsYWdzIGZsYWdzLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBF
bnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCByZW1vdmVSZWN1cnNpdmVs
eShbQ2FsbGJhY2tdIGluIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIFtPcHRpb25hbCwg
Q2FsbGJhY2tdIGluIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CiAgICAgfTsKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5
RW50cnlTeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3Rv
cnlFbnRyeVN5bmMuaWRsCmluZGV4IDY2YzI4OGZiYmM1YTJjZWEyYzgzYTVhNTEzMzY3ZDYzNjlk
ODc0MDUuLmEwMGUwYWRhNTgxYzdiNWI4YmU2MGEyNmYxOGZiN2FlZmMyY2E3MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRyeVN5bmMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRy
eVN5bmMuaWRsCkBAIC0yOSwxNSArMjksMTUgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAog
ICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pT
T2JqZWN0LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBEaXJlY3RvcnlFbnRyeVN5
bmMgOiBFbnRyeVN5bmMgeworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeUVudHJ5U3luYyA6IEVu
dHJ5U3luYyB7CiAgICAgICAgIERpcmVjdG9yeVJlYWRlclN5bmMgY3JlYXRlUmVhZGVyKCkgcmFp
c2VzIChGaWxlRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gRmlsZUVudHJ5U3luYyBnZXRG
aWxlKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJp
bmddIERPTVN0cmluZyBwYXRoLCBpbiBXZWJLaXRGbGFncyBmbGFncykgcmFpc2VzIChGaWxlRXhj
ZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gRGlyZWN0b3J5RW50cnlTeW5jIGdldERpcmVjdG9y
eShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgcGF0aCwgaW4gV2ViS2l0RmxhZ3MgZmxhZ3MpIHJhaXNlcyAoRmlsZUV4Y2Vw
dGlvbik7CisgICAgICAgIFtDdXN0b21dIEZpbGVFbnRyeVN5bmMgZ2V0RmlsZShbVHJlYXROdWxs
QXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcg
cGF0aCwgaW4gV2ViS2l0RmxhZ3MgZmxhZ3MpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CisgICAg
ICAgIFtDdXN0b21dIERpcmVjdG9yeUVudHJ5U3luYyBnZXREaXJlY3RvcnkoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHBh
dGgsIGluIFdlYktpdEZsYWdzIGZsYWdzKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHJlbW92ZVJlY3Vyc2l2ZWx5KCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9E
aXJlY3RvcnlSZWFkZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Rp
cmVjdG9yeVJlYWRlci5pZGwKaW5kZXggODdjZTg1MjFkZTg1M2NlNWQ1MDQ3ZmM3ZDNmNjUzMmRj
N2ZiNDg4ZS4uYmMwMjZmYmI2OTRhMzU3NTRiZTg1MjAxMWZjNTI1OTIxZDI5ZmUzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRlci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRl
ci5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAg
ICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERpcmVjdG9yeVJlYWRlciB7Ci0gICAgICAgIHZv
aWQgcmVhZEVudHJpZXMoaW4gW0NhbGxiYWNrXSBFbnRyaWVzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxi
YWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2sp
OworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeVJlYWRlciB7CisgICAgICAgIHZvaWQgcmVhZEVu
dHJpZXMoW0NhbGxiYWNrXSBpbiBFbnRyaWVzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0
aW9uYWwsIENhbGxiYWNrXSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgIH07
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Rp
cmVjdG9yeVJlYWRlclN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RpcmVjdG9yeVJlYWRlclN5bmMuaWRsCmluZGV4IGE4ZmY2ODVjZWU1ODNlOWZlMjdmYzJlYjcx
NjBmNjFiZTkwMjg2MjEuLmQyOTAyOGY1YzkyZmM4YTViMjdkMWRhMmYyYTQxY2ZjZjQwZTZhZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlS
ZWFkZXJTeW5jLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGly
ZWN0b3J5UmVhZGVyU3luYy5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBz
dG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklM
RV9TWVNURU0sCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERpcmVjdG9yeVJlYWRl
clN5bmMgeworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeVJlYWRlclN5bmMgewogICAgICAgICBF
bnRyeUFycmF5U3luYyByZWFkRW50cmllcygpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RW50cmllc0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9F
bnRyaWVzQ2FsbGJhY2suaWRsCmluZGV4IDczYjM3NGQ3OTI4ZWU0ODA2NjJlYzM5YzMzYzliMWYw
NGU4NjgxMzcuLjg4NjExYThlNDdhMTcwMTU3OWQxNTI1OTZjOTNkMDY0N2VhY2U5MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyaWVzQ2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyaWVzQ2FsbGJh
Y2suaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAg
ICAgICBDYWxsYmFjawotICAgIF0gRW50cmllc0NhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBF
bnRyaWVzQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEVudHJ5QXJy
YXkgZW50cmllcyk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtL0VudHJ5LmlkbAppbmRleCBjNmNkYmE1YmQ4YjBjYmVlY2VkZWI0ODc0OGU0NzRmZjE0
YWNmODc5Li4wZDUxNGQ4YmQyZTBlNzUwM2YwM2ZjNmEzZjcxZTJlM2M5NDJmMGY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeS5pZGwKQEAgLTI5LDIyICsyOSwy
MiBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3Qs
CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIEVudHJ5IHsKKyAgICBdIGludGVyZmFj
ZSBFbnRyeSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmlsZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNEaXJlY3Rvcnk7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBmdWxsUGF0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUZp
bGVTeXN0ZW0gZmlsZXN5c3RlbTsKIAotICAgICAgICB2b2lkIGdldE1ldGFkYXRhKGluIFtDYWxs
YmFja10gTWV0YWRhdGFDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25hbCwgQ2Fs
bGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7Ci0gICAgICAgIHZvaWQgbW92ZVRv
KGluIERpcmVjdG9yeUVudHJ5IHBhcmVudCwgaW4gW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lLCBpbiBb
T3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09w
dGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICAgICAg
dm9pZCBjb3B5VG8oaW4gRGlyZWN0b3J5RW50cnkgcGFyZW50LCBpbiBbT3B0aW9uYWwsIFRyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5n
IG5hbWUsIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVudHJ5Q2FsbGJhY2sgc3VjY2Vzc0NhbGxi
YWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2sp
OworICAgICAgICB2b2lkIGdldE1ldGFkYXRhKFtDYWxsYmFja10gaW4gTWV0YWRhdGFDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2ssIFtPcHRpb25hbCwgQ2FsbGJhY2tdIGluIEVycm9yQ2FsbGJhY2sg
ZXJyb3JDYWxsYmFjayk7CisgICAgICAgIHZvaWQgbW92ZVRvKGluIERpcmVjdG9yeUVudHJ5IHBh
cmVudCwgW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmddIGluIERPTVN0cmluZyBuYW1lLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBF
bnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBjb3B5VG8oaW4gRGlyZWN0
b3J5RW50cnkgcGFyZW50LCBbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIG5hbWUsIFtPcHRpb25hbCwgQ2Fs
bGJhY2tdIGluIEVudHJ5Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9uYWwsIENhbGxi
YWNrXSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBET01TdHJpbmcg
dG9VUkwoKTsKLSAgICAgICAgdm9pZCByZW1vdmUoaW4gW0NhbGxiYWNrXSBWb2lkQ2FsbGJhY2sg
c3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVy
cm9yQ2FsbGJhY2spOwotICAgICAgICB2b2lkIGdldFBhcmVudChpbiBbT3B0aW9uYWwsIENhbGxi
YWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFj
a10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCByZW1vdmUoW0Nh
bGxiYWNrXSBpbiBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9uYWwsIENhbGxi
YWNrXSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICB2b2lkIGdldFBh
cmVudChbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFj
aywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsK
ICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9FbnRyeUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9F
bnRyeUFycmF5LmlkbAppbmRleCAzMjRkYmM2OGIwNDhlY2Y4ZWMyNWIzMDZjYzcwODQ5MDQ1NmY5
NjM4Li44YzE2NjE4YzQzOTJkYjE3MTg4OTU2ZDg3NTg2NTM2YTFiNjgwMzc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlBcnJheS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5QXJyYXkuaWRsCkBAIC0yOSwx
MiArMjksMTIgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBJbmRleGVkR2V0
dGVyLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBFbnRyeUFycmF5IHsKKyAgICBd
IGludGVyZmFjZSBFbnRyeUFycmF5IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBFbnRyeSBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICAgICAgRW50cnkgaXRlbShbSXNJbmRleF0gaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlBcnJheVN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtL0VudHJ5QXJyYXlTeW5jLmlkbAppbmRleCAyMjRhNjhhMjRlOTk2Zjk1
NDNhMTBiZTRkMmZiNDEwYmNmMzBiMTQwLi4zMzViYzY2MzczNjg3Y2ZmYjU1ZDQ2Y2FjYWZmNzU3
OGQxMjA2MzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RW50cnlBcnJheVN5bmMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9FbnRyeUFycmF5U3luYy5pZGwKQEAgLTI5LDEyICsyOSwxMiBAQAogICovCiAKIG1vZHVsZSBz
dG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklM
RV9TWVNURU0sCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJs
ZXMKLSAgICBdIEVudHJ5QXJyYXlTeW5jIHsKKyAgICBdIGludGVyZmFjZSBFbnRyeUFycmF5U3lu
YyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAg
ICAgICAgRW50cnlTeW5jIGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwor
ICAgICAgICBFbnRyeVN5bmMgaXRlbShbSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRW50cnlDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW0vRW50cnlDYWxsYmFjay5pZGwKaW5kZXggYmVhM2ZkMTQ3MGVkMGM3YzA0YjliMTFlMmM2MTA1
Y2RmZjlhNGE3OS4uODA0NThhYzIwNzNhNTEzNmFmZjEzMTFkZTNkYzMzMmUyNTZhMzRhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5Q2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUNhbGxiYWNr
LmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2UgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAgICAg
ICAgQ2FsbGJhY2sKLSAgICBdIEVudHJ5Q2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEVudHJ5
Q2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEVudHJ5IGVudHJ5KTsK
ICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9FbnRyeVN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Vu
dHJ5U3luYy5pZGwKaW5kZXggY2Q0YmFlN2RlNjljNGRmNzMyZTc2MzM1NTZjZjYwMWNlMTQ0YjY4
Ni4uNTI5ODI3M2MxMGMxMDE5NzgzMGU0YmE3YTA3NzM3MzM3MzI0MDI5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwKQEAgLTI5LDExICsy
OSwxMSBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIEVudHJ5U3luYyB7CisgICAgXSBp
bnRlcmZhY2UgRW50cnlTeW5jIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
aXNGaWxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RpcmVjdG9yeTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpAQCAtNDEsMTAgKzQx
LDEwIEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUZp
bGVTeXN0ZW1TeW5jIGZpbGVzeXN0ZW07CiAKICAgICAgICAgTWV0YWRhdGEgZ2V0TWV0YWRhdGEo
KSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwotICAgICAgICBFbnRyeVN5bmMgbW92ZVRvKGluIERp
cmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVh
dFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNl
cHRpb24pOwotICAgICAgICBFbnRyeVN5bmMgY29weVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBw
YXJlbnQsIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOworICAgICAgICBF
bnRyeVN5bmMgbW92ZVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBu
YW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOworICAgICAgICBFbnRyeVN5bmMgY29weVRvKGlu
IERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVh
dFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVF
eGNlcHRpb24pOwogICAgICAgICBET01TdHJpbmcgdG9VUkwoKTsKICAgICAgICAgdm9pZCByZW1v
dmUoKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogICAgICAgICBEaXJlY3RvcnlFbnRyeVN5bmMg
Z2V0UGFyZW50KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW0vRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggZmM3ZmE4NWM0MDU4MjhhZjcy
NzI5NWZlZDZmNjYwMDAyOTQ4Zjc4OC4uOTA1ODU1M2MyZjU5YTBkOWNmZGUwNTRiYjYzNzU3ZDlh
YWMzOGNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Vy
cm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9F
cnJvckNhbGxiYWNrLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3Jh
Z2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZ
U1RFTSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIEVycm9yQ2FsbGJhY2sgeworICAgIF0gaW50
ZXJmYWNlIEVycm9yQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEZp
bGVFcnJvciBlcnJvcik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbS9GaWxlQ2FsbGJhY2suaWRsCmluZGV4IDBhYjgxNGZlZDlmMDkzNDcy
OWE1MjNlY2JlOTUwNDIyMzU2M2QzN2UuLjAzNzQzMWZlYzNmNTBmNzU4MmE3NzVlZTQ2YTMyOGFi
OTU1ODM1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9G
aWxlQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9G
aWxlQ2FsbGJhY2suaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgZmlsZWFw
aSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lT
VEVNLAogICAgICAgICBDYWxsYmFjawotICAgIF0gRmlsZUNhbGxiYWNrIHsKKyAgICBdIGludGVy
ZmFjZSBGaWxlQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEZpbGUg
ZmlsZSk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW0vRmlsZUVudHJ5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9GaWxlRW50cnkuaWRsCmluZGV4IDYzYjAwNDA1MDNiNWQ0ZmNjMjc5ZjE0NGZjNTA4ODM1
ODM0MmFiYjguLmM0ZDk4YTY5NGI2NzkyNzlmNzA0NDZhYmYyZWIzNWQ4MDRmNGM2ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnkuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnkuaWRsCkBAIC0y
OSwxMyArMjksMTMgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgICAg
ICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlRW50cnkgOiBFbnRyeSB7Ci0gICAgICAgIHZv
aWQgY3JlYXRlV3JpdGVyKGluIFtDYWxsYmFja10gRmlsZVdyaXRlckNhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxi
YWNrKTsKLSAgICAgICAgdm9pZCBmaWxlKGluIFtDYWxsYmFja10gRmlsZUNhbGxiYWNrIHN1Y2Nl
c3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNh
bGxiYWNrKTsKKyAgICBdIGludGVyZmFjZSBGaWxlRW50cnkgOiBFbnRyeSB7CisgICAgICAgIHZv
aWQgY3JlYXRlV3JpdGVyKFtDYWxsYmFja10gaW4gRmlsZVdyaXRlckNhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxi
YWNrKTsKKyAgICAgICAgdm9pZCBmaWxlKFtDYWxsYmFja10gaW4gRmlsZUNhbGxiYWNrIHN1Y2Nl
c3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNh
bGxiYWNrKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbS9GaWxlRW50cnlTeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbS9GaWxlRW50cnlTeW5jLmlkbAppbmRleCA4YWM0MGJhYTJkOWRkYmJjZjEzYzUx
YjdiZmNiMzMzZjJlNTNjZGZmLi4yNWFlOWI5ZmIwY2UzYmJmOGMzMzE5NzliMjdhZTkzZWM2YTNk
YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZUVu
dHJ5U3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVF
bnRyeVN5bmMuaWRsCkBAIC0yOSwxMyArMjksMTMgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVN
LAogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVU
b0pTT2JqZWN0LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlRW50cnlTeW5j
IDogRW50cnlTeW5jIHsKKyAgICBdIGludGVyZmFjZSBGaWxlRW50cnlTeW5jIDogRW50cnlTeW5j
IHsKICAgICAgICAgRmlsZSBmaWxlKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICAgICAg
RmlsZVdyaXRlclN5bmMgY3JlYXRlV3JpdGVyKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0ZpbGVTeXN0ZW1DYWxsYmFjay5pZGwKaW5kZXggY2Y2ODZmZjFiZjVmZDA4ODNiYTY4MjQx
MjNlZDYzMDE4MGZkM2UyMC4uYWZkOTY0MDA2NTdhY2NiMWJkM2NkZTQyMmU5YzBiNGEzYWY0ZTc1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVTeXN0
ZW1DYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Zp
bGVTeXN0ZW1DYWxsYmFjay5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBz
dG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklM
RV9TWVNURU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBGaWxlU3lzdGVtQ2FsbGJhY2sgewor
ICAgIF0gaW50ZXJmYWNlIEZpbGVTeXN0ZW1DYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFu
ZGxlRXZlbnQoaW4gRE9NRmlsZVN5c3RlbSBmaWxlU3lzdGVtKTsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmlkbAppbmRl
eCA3NTRmYTBmMTRiMjI2ZjJkMWRkYTdlNDExZGM0YWU2ZjYyNzAyZGRiLi5jN2VjMjUzMjc3ZWQ3
ODY2MTZmZGFiOWUxN2ZmNGRjYmY3ZjU2NTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXIuaWRsCkBAIC0zMCwxMyArMzAsMTMgQEAKICAqLwog
CiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIENhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAg
ICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlV3JpdGVyIHsKKyAgICBdIGludGVyZmFjZSBG
aWxlV3JpdGVyIHsKICAgICAgICAgLy8gcmVhZHkgc3RhdGVzCiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IElOSVQgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBXUklUSU5H
ID0gMTsKQEAgLTY0LDExICs2NCwxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIC8vIEV2ZW50
VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3Ry
aW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBi
b29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlz
dGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAg
ICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFp
c2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKaW5kZXgg
ZGY4MmZlZDhkODRiZWMxNTQyZmE3N2Y2MTgwY2QxYjQ4ZDlkODYxZC4uOTk4MTI0Y2M0NDI5YmJm
YTIzY2FjZTMzYzI2MGJjNjgyYzZmY2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKQEAgLTI5LDEwICsy
OSwxMCBAQAogICovCiAKIG1vZHVsZSBmaWxlYXBpIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAg
XSBGaWxlV3JpdGVyQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEZpbGVXcml0ZXJDYWxsYmFj
ayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRmlsZVdyaXRlciBmaWxlV3JpdGVy
KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbS9GaWxlV3JpdGVyU3luYy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRmlsZVdyaXRlclN5bmMuaWRsCmluZGV4IDU3Y2QyNTY3Y2IxN2RkZTM4YzAzZGNhNjM3
NTAyOWRjYzM0MzEwNGMuLjhiYmFiMzAzMGVkZmQyYzJjMDkzMWY5ZjEzN2I4M2IxMTM5MDQyOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVy
U3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0
ZXJTeW5jLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAg
ICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZVdyaXRlclN5bmMgeworICAgIF0gaW50
ZXJmYWNlIEZpbGVXcml0ZXJTeW5jIHsKICAgICAgICAgLy8gc3luY2hyb25vdXMgd3JpdGUvbW9k
aWZ5IG1ldGhvZHMKICAgICAgICAgdm9pZCB3cml0ZShpbiBCbG9iIGRhdGEpIHJhaXNlcyAoRmls
ZUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2VlayhpbiBsb25nIGxvbmcgcG9zaXRpb24pIHJh
aXNlcyAoRmlsZUV4Y2VwdGlvbik7CkBAIC00MSw0ICs0MSw0IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbG9uZyBwb3NpdGlvbjsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgbG9uZyBsZW5ndGg7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vSFRNTElucHV0RWxlbWVudEZp
bGVTeXN0ZW0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0hUTUxJbnB1
dEVsZW1lbnRGaWxlU3lzdGVtLmlkbAppbmRleCBkMWMxMGE0ZmJmZDEwMTlhZjlkNWU0NWQxMGMw
NTMxYTFmZDQzYmY2Li41ZTc1MmMyNDQzYjA2ODFmZjg4N2NiNjM0NzJiNjM4ZjFhMWNiYWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vSFRNTElucHV0RWxl
bWVudEZpbGVTeXN0ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9IVE1MSW5wdXRFbGVtZW50RmlsZVN5c3RlbS5pZGwKQEAgLTMwLDEyICszMCwxMiBAQAogCiBt
b2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9RklMRV9TWVNURU0sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1IVE1MSW5wdXRFbGVtZW50Ci0g
ICAgXSBIVE1MSW5wdXRFbGVtZW50RmlsZVN5c3RlbSB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVTeXN0ZW0sQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gRW50cnlBcnJheSB3ZWJraXRFbnRyaWVzOworICAgIF0gaW50ZXJmYWNlIEhU
TUxJbnB1dEVsZW1lbnRGaWxlU3lzdGVtIHsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1G
aWxlU3lzdGVtLENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBFbnRyeUFycmF5IHdlYmtpdEVudHJpZXM7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL01ldGFkYXRhLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9NZXRhZGF0YS5pZGwKaW5kZXggY2VhZjIx
YjVhZTFmMWMxOGZlYzc1MDcxZTJkMTliYmJhYThjZGE4Zi4uMGM5MGViMDMxYTY3YWY2YzQ3NDJi
OTkzMjY0Y2Q1NDBmMGIwZTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL01ldGFkYXRhLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vTWV0YWRhdGEuaWRsCkBAIC0yOSwxMSArMjksMTEgQEAKICAqLwogCiBtb2R1bGUgc3Rv
cmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVf
U1lTVEVNLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBNZXRhZGF0YSB7CisgICAg
XSBpbnRlcmZhY2UgTWV0YWRhdGEgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0ZSBt
b2RpZmljYXRpb25UaW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nIHNpemU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGwKaW5kZXggNDRjYTE4MDU0MjBh
NmFlMDU0ZmI0MWQ4NjhkM2ZmMDE1NzRkZmMzMy4uZGE2ODQxYjg5M2VjZGFhZmEzNmFkMDEwMGE4
NmI3NDA0NmViYzViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL01ldGFkYXRhQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbS9NZXRhZGF0YUNhbGxiYWNrLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAog
bW9kdWxlIHN0b3JhZ2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1GSUxFX1NZU1RFTSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE1ldGFkYXRhQ2FsbGJh
Y2sgeworICAgIF0gaW50ZXJmYWNlIE1ldGFkYXRhQ2FsbGJhY2sgewogICAgICAgICBib29sZWFu
IGhhbmRsZUV2ZW50KGluIE1ldGFkYXRhIG1ldGFkYXRhKTsKICAgICB9OwotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0Rmls
ZVN5c3RlbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29u
dGV4dEZpbGVTeXN0ZW0uaWRsCmluZGV4IGNiOWMzMjg0OTcwZTZkMGM1YzllNWE0NmI1NDExMWM4
NzkwZjczMDUuLjJhZDIyODFjMzhlZDM5NjNiZDlmODU3MDVjZmQ3Yzg5NmQzYjY1N2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0Rmls
ZVN5c3RlbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtl
ckNvbnRleHRGaWxlU3lzdGVtLmlkbApAQCAtMjYsMjAgKzI2LDIwIEBACiAKIG1vZHVsZSB0aHJl
YWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxF
X1NZU1RFTSwKICAgICAgICAgU3VwcGxlbWVudGFsPVdvcmtlckNvbnRleHQKLSAgICBdIFdvcmtl
ckNvbnRleHRGaWxlU3lzdGVtIHsKKyAgICBdIGludGVyZmFjZSBXb3JrZXJDb250ZXh0RmlsZVN5
c3RlbSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOwogCi0gICAgICAgIFtWOEVu
YWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShp
biB1bnNpZ25lZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSwgaW4gW0NhbGxiYWNrLCBP
cHRpb25hbF0gRmlsZVN5c3RlbUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNr
LCBPcHRpb25hbF0gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgW1Y4RW5h
YmxlZEF0UnVudGltZT1GaWxlU3lzdGVtXSB2b2lkIHdlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKGlu
IHVuc2lnbmVkIHNob3J0IHR5cGUsIGluIGxvbmcgbG9uZyBzaXplLCBbQ2FsbGJhY2ssIE9wdGlv
bmFsXSBpbiBGaWxlU3lzdGVtQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbQ2FsbGJhY2ssIE9w
dGlvbmFsXSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBbVjhFbmFi
bGVkQXRSdW50aW1lPUZpbGVTeXN0ZW1dIERPTUZpbGVTeXN0ZW1TeW5jIHdlYmtpdFJlcXVlc3RG
aWxlU3lzdGVtU3luYyhpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSkg
cmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKLSAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxl
U3lzdGVtXSB2b2lkIHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoaW4gRE9NU3RyaW5n
IHVybCwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7
CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXNv
bHZlTG9jYWxGaWxlU3lzdGVtVVJMKGluIERPTVN0cmluZyB1cmwsIFtDYWxsYmFjaywgT3B0aW9u
YWxdIGluIEVudHJ5Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlvbmFs
XSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBbVjhFbmFibGVkQXRS
dW50aW1lPUZpbGVTeXN0ZW1dIEVudHJ5U3luYyB3ZWJraXRSZXNvbHZlTG9jYWxGaWxlU3lzdGVt
U3luY1VSTChpbiBET01TdHJpbmcgdXJsKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogCi0gICAg
ICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVTeXN0ZW1dIEZpbGVFcnJvckNv
bnN0cnVjdG9yIEZpbGVFcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRp
bWU9RmlsZVN5c3RlbV0gRmlsZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIEZpbGVFeGNlcHRpb247Cisg
ICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gYXR0cmlidXRlIEZpbGVFcnJv
ckNvbnN0cnVjdG9yIEZpbGVFcnJvcjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxl
U3lzdGVtXSBhdHRyaWJ1dGUgRmlsZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIEZpbGVFeGNlcHRpb247
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
LmlkbAppbmRleCBlMDBlMmRjM2Q4ODU1Y2Y4ZWYwNDU2NTMxN2YyYzc0NjAzN2IzYWEzLi5lOTA1
MTIyYzZjNDc2YmE0ZDQ5MGNlOTE2YzA0MDJkMmMyYzVkZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBk
b20gewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQ
QUQKLSAgICBdIEdhbWVwYWQgeworICAgIF0gaW50ZXJmYWNlIEdhbWVwYWQgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBpbmRleDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbG9uZyB0aW1lc3RhbXA7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBkb20gewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXRbXSBidXR0b25zOwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExp
c3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbApp
bmRleCA0ZjFlMWRmOWExOTc4Zjg5Y2M4NzNkM2FmNjI4ZmQxZGIwMzBmM2U2Li4yMDJjYzViYzE1
MDY5ZjEwMGU3ZGE0MGY2N2VhYjJiNWNiNzc0ODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2FtZXBhZC9HYW1lcGFkTGlzdC5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1
bGUgZG9tIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1H
QU1FUEFELAogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBHYW1lcGFkTGlzdCB7CisgICAg
XSBpbnRlcmZhY2UgR2FtZXBhZExpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIEdhbWVwYWQgaXRlbShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgR2FtZXBhZCBp
dGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dh
bWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVw
YWQvTmF2aWdhdG9yR2FtZXBhZC5pZGwKaW5kZXggZThhOTQ1ZGI2ZDhiNDZiOTQzNWRjNGI0OTEx
ZWVjOWM5ODJjZjc5OS4uM2E1NDM4ZjhkZmE3MTUwNTBiOTY2MTM3OTMyNjI4MWRiMzg4M2RkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVw
YWQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1l
cGFkLmlkbApAQCAtMTksMTEgKzE5LDExIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgICAgIFN1
cHBsZW1lbnRhbD1OYXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvckdhbWVwYWQgewotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2FtZXBhZExpc3Qgd2Via2l0
R2FtZXBhZHM7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yR2FtZXBhZCB7CisgICAgICAgIFtW
OEVuYWJsZWRBdFJ1bnRpbWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBHYW1lcGFkTGlzdCB3ZWJraXRH
YW1lcGFkczsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCA0ZjE1OWJjYjFlYzJmZDQ2OWI5MjNh
MTNhZDcyNzc5MDUwMWIzYjU1Li4zMDdkNjExZTcyN2RjODE0NGQ5ODZkMGM1ZDAwMzQxZjZkYjI4
OTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmlkbApAQCAtMjYsMjAgKzI2LDIwIEBACiBtb2R1bGUgY29yZSB7CiAKICAgICAvLyBo
dHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2NhdGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFj
ZQotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElP
TiwgCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgICAgIE9t
aXRDb25zdHJ1Y3RvcgotICAgIF0gR2VvbG9jYXRpb24geworICAgIF0gaW50ZXJmYWNlIEdlb2xv
Y2F0aW9uIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBnZXRDdXJyZW50UG9zaXRpb24oaW4gUG9z
aXRpb25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gUG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9y
Q2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbF0gUG9zaXRpb25PcHRpb25zIG9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWxdIGluIFBvc2l0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgICAgICBbQ3VzdG9t
XSBsb25nIHdhdGNoUG9zaXRpb24oaW4gUG9zaXRpb25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ss
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIFBvc2l0
aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBQb3NpdGlvbk9wdGlvbnMgb3B0aW9ucyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBQb3NpdGlvbk9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICAgICAg
dm9pZCBjbGVhcldhdGNoKGluIGxvbmcgd2F0Y2hJZCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKaW5k
ZXggY2JlNzI4YTgxZmRlYzkyYjA0ODg4ZjE2MTBmMGJmOWRlZDZlZGI0Yy4uNGU0ZDNkYzQyYjM1
NmQ3MjdhMjhkODIyNzc1YWVhNjY0ZDJiNzgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAog
CiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gR2VvcG9z
aXRpb24geworICAgIF0gaW50ZXJmYWNlIEdlb3Bvc2l0aW9uIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIENvb3JkaW5hdGVzIGNvb3JkczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24u
aWRsCmluZGV4IGUwYjhmMGVkMWRmYmMzZmI4ZjZiZWQ2ZTBmODY3OGZkODUxOTkwMGEuLjU2MmRh
ZjNlZGFlMjc3YzM3ZDA1N2QzMWVjMGZjNTBlZWNkNzlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24u
aWRsCkBAIC0xOSwxMSArMTksMTEgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgICAgIFN1
cHBsZW1lbnRhbD1OYXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9uIGdl
b2xvY2F0aW9uOworICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyAgICAg
ICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9ubHkgYXR0cmlidXRlIEdlb2xvY2F0aW9uIGdl
b2xvY2F0aW9uOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCAzOWNmYTM0ZWI1
NjljN2VjM2M5MjZiN2FiZDVlYmQ3ODE3MGZmY2E4Li42ODQ3MzM2MDllZTE0Nzk4NDQzODE3NzRh
ZWVlOGZmZjE4NzFkMjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICov
CiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBQb3NpdGlvbkNhbGxi
YWNrIHsKKyAgICBdIGludGVyZmFjZSBQb3NpdGlvbkNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVh
biBoYW5kbGVFdmVudChpbiBHZW9wb3NpdGlvbiBwb3NpdGlvbik7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJy
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9y
LmlkbAppbmRleCA5OGUwMzZmN2I1Yjg2ZDY5MjhhOWY4NGUxYzc4MjhjYTA0Mzk2NGFlLi45ZDlm
NjgxNTI4NzkyMmZkNjdkZDcwZGQwNGQzODI4NjE4OWNiNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKQEAgLTI1LDkg
KzI1LDkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OCi0gICAgXSBQb3NpdGlvbkVycm9yIHsKKyAgICBd
IGludGVyZmFjZSBQb3NpdGlvbkVycm9yIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0IGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bWVzc2FnZTsKIApAQCAtMzYsNCArMzYsNCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFRJTUVPVVQgPSAzOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFj
ay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5pZGwKaW5kZXggYTdkYzkzMmQ1ZTJlZDZiNjAxYTgxZjY1MTRiZWNmMTJhZmIyYmFh
MC4uNmMwYTk4ZjY4MjMzNzAxZGQ0M2U0YjQ0NmVlMWI1YjA2Y2MyYzM4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJv
ckNhbGxiYWNrLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwK
ICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIFBvc2l0aW9uRXJyb3JDYWxsYmFjayB7CisgICAgXSBp
bnRlcmZhY2UgUG9zaXRpb25FcnJvckNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVF
dmVudChpbiBQb3NpdGlvbkVycm9yIGVycm9yKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVk
RGF0YWJhc2UuaWRsCmluZGV4IGFkMzk5OGI0OWQ3NmI5YmQzZThmZWQ3NTZhYTg3ODY3MTE4YmU5
YmUuLmIzOGY1ZGNlZDlmMTkwMGQ2OWVjZjZkOTE3MzZlNjRmZDU4OWQwMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5k
ZXhlZERhdGFiYXNlLmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1vZHVsZSB3aW5kb3cgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFU
QUJBU0UsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd0lu
ZGV4ZWREYXRhYmFzZSB7CisgICAgXSBpbnRlcmZhY2UgRE9NV2luZG93SW5kZXhlZERhdGFiYXNl
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkZhY3Rvcnkgd2Via2l0SW5kZXhlZERC
OwogCiAgICAgICAgIGF0dHJpYnV0ZSBJREJDdXJzb3JDb25zdHJ1Y3RvciB3ZWJraXRJREJDdXJz
b3I7CkBAIC00Myw0ICs0Myw0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUg
SURCVHJhbnNhY3Rpb25Db25zdHJ1Y3RvciB3ZWJraXRJREJUcmFuc2FjdGlvbjsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
QW55LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5pZGwKaW5k
ZXggZGQ1MWM0ZGFhYzY2ZDY5OTAzNTU1ZGFmNzAwOTQ1MzdhZWY1MzU5Zi4uZGEwMWE0ZWE2NDBm
N2IwN2IxZDgzNWY5NTg3MmY5NjdmNTU4MzZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJBbnkuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN0b3Jh
Z2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIElEQkFueSB7Cisg
ICAgXSBpbnRlcmZhY2UgSURCQW55IHsKICAgICAgICAgLy8gVGhpcyBzcGFjZSBpcyBpbnRlbnRp
b25hbGx5IGxlZnQgYmxhbmsuCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAppbmRleCBkNzNkMTQ2Mjc0NDE4NDAyNzQyMzIw
ZjRmM2U2MDZhYjNkMjAyZTQ5Li5iYjU3Njg0MTk4ZGQwMDQwZmRlYWE4NDdkYzdjYjViZDJlYjI2
M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5p
ZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNl
IFsKLSAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKLSAgICBdIElEQkN1cnNv
ciB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBp
bnRlcmZhY2UgSURCQ3Vyc29yIHsKICAgICAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgcmVtb3Zl
IGxlZ2FjeSBlbnVtIGNvbnN0YW50cywgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTMxNQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVhUID0gMDsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVYVF9OT19EVVBMSUNBVEUgPSAxOwpAQCAt
NDMsOSArNDMsOSBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgICAgICByYWlzZXMgKElEQkRh
dGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBhZHZhbmNlKGluIHVuc2lnbmVkIGxvbmcg
Y291bnQpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAg
ICAgW0ltcGxlbWVudGVkQXM9Y29udGludWVGdW5jdGlvbl0gdm9pZCBjb250aW51ZShpbiBbT3B0
aW9uYWxdIElEQktleSBrZXkpCisgICAgICAgIFtJbXBsZW1lbnRlZEFzPWNvbnRpbnVlRnVuY3Rp
b25dIHZvaWQgY29udGludWUoW09wdGlvbmFsXSBpbiBJREJLZXkga2V5KQogICAgICAgICAgICAg
cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0
IGRlbGV0ZSgpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvcldpdGhWYWx1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JXaXRoVmFsdWUuaWRsCmluZGV4IDUxMmVhNDA1ZTQ0YTkxYzU3NjEzNjU0NGQ3
YjUzZWFmMTJmODAwNzUuLjQ1ZWUzM2Y0Njc2NzJhNmMwY2VhMDg0NGU5ZjdlZTc2YWE5NWYyYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldp
dGhWYWx1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yV2l0aFZhbHVlLmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRB
QkFTRQotICAgIF0gSURCQ3Vyc29yV2l0aFZhbHVlIDogSURCQ3Vyc29yIHsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtWOEN1c3RvbUdldHRlcl0gSURCQW55IHZhbHVlOworICAgIF0gaW50
ZXJmYWNlIElEQkN1cnNvcldpdGhWYWx1ZSA6IElEQkN1cnNvciB7CisgICAgICAgIFtWOEN1c3Rv
bUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIElEQkFueSB2YWx1ZTsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbApp
bmRleCAyNDBhZWU5MzJkNzdmMjc4N2ZhNzgzZGNhMjJkZjhjY2FhOThmZWVlLi43ODM3YTgyZmNm
N2RhMzM2MDRkOTBiNzMzODA1MjZjNWQxZDk4YWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAog
bW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAg
ICAgRXZlbnRUYXJnZXQKLSAgICBdIElEQkRhdGFiYXNlIHsKKyAgICBdIGludGVyZmFjZSBJREJE
YXRhYmFzZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwpAQCAtMzksMTcg
KzM5LDE3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb252ZXJzaW9uY2hh
bmdlOwogCi0gICAgICAgIElEQk9iamVjdFN0b3JlIGNyZWF0ZU9iamVjdFN0b3JlKGluIERPTVN0
cmluZyBuYW1lLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb3B0aW9ucykKKyAgICAgICAgSURC
T2JqZWN0U3RvcmUgY3JlYXRlT2JqZWN0U3RvcmUoaW4gRE9NU3RyaW5nIG5hbWUsIFtPcHRpb25h
bF0gaW4gRGljdGlvbmFyeSBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFz
ZUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW4gRE9NU3RyaW5n
IG5hbWUpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1
ZXN0IHNldFZlcnNpb24oaW4gRE9NU3RyaW5nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlzZXMg
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZ0xpc3Q/IHN0
b3JlTmFtZXMsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9k
ZSkKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0
aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZ0xpc3Q/IHN0b3JlTmFtZXMsIFtPcHRpb25hbD1E
ZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgbW9kZSkKICAgICAgICAgICAgIHJhaXNl
cyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oaW4gRE9NU3RyaW5nW10/IHN0
b3JlTmFtZXMsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9k
ZSkKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0
aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZ1tdPyBzdG9yZU5hbWVzLCBbT3B0aW9uYWw9RGVm
YXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIG1vZGUpCiAgICAgICAgICAgICByYWlzZXMg
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZyBzdG9yZU5h
bWUsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9kZSkKKyAg
ICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRy
YW5zYWN0aW9uKGluIERPTVN0cmluZyBzdG9yZU5hbWUsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxs
U3RyaW5nXSBpbiBET01TdHJpbmcgbW9kZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCkBAIC02
NSwxMiArNjUsMTIgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAvLyBFdmVudFRhcmdldCBp
bnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1
c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGlu
IERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZl
bnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9v
bGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVu
dEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAppbmRleCA5ODRj
YWI5MjJiZDY2Y2E3ZjRlMjc2ZjZiMjE0NDFjOWUyZTYzYWQzLi43NWVjZmJmN2MyNDczMWViZGVm
MTZiNmY0YjY0NjA5NjRlZGEyZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCkBAIC0yNSwxMCArMjUs
MTAgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgZXhjZXB0aW9uIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIERvTm90Q2hlY2tDb25z
dGFudHMKLSAgICBdIElEQkRhdGFiYXNlRXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBJREJE
YXRhYmFzZUV4Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0ICAgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICAgbmFtZTsKQEAgLTU5LDQgKzU5LDQgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBRVU9UQV9FUlIgPSAyMjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCAwMzg5
ZWIyYWFlN2UxMjk5NTRkOWFjZjAzYTU5ZmZiY2M3ZmJhYWNjLi4zYzNhM2YxNjE5ZDI4OWIwMGZl
ZTNmYTY5MThiNGNlMzE4N2QzZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFn
ZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhF
RF9EQVRBQkFTRQotICAgIF0gSURCRmFjdG9yeSB7CisgICAgXSBpbnRlcmZhY2UgSURCRmFjdG9y
eSB7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRl
ZEFzPWdldERhdGFiYXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1lcygp
OwogCiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0
IG9wZW4oaW4gRE9NU3RyaW5nIG5hbWUpCkBAIC0zOSw0ICszOSw0IEBAIG1vZHVsZSBzdG9yYWdl
IHsKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwK
aW5kZXggYTE3MDhjYTYyYzMwZDhhNzViNjgyMjY3MDdmZTJhYTIyYmY5YmNmYy4uMWUxY2Y3YjBm
ZmU3ZDA2YTg0Yjg2ZGNmNzdmNGRkOGRhNmFlZjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbApAQCAtMjUsMzQgKzI1LDM0IEBACiAKIG1vZHVs
ZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1JTkRFWEVEX0RBVEFCQVNFCi0gICAgXSBJREJJbmRleCB7CisgICAgXSBpbnRlcmZhY2UgSURC
SW5kZXggewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkFueSBrZXlQYXRoOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiB1bmlxdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIG11bHRpRW50cnk7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5n
ZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKFtPcHRpb25hbF0g
aW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBkaXJlY3Rpb24p
CiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBJ
REJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24pCisgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4g
SURCS2V5IGtleSwgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICAg
ICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIAotICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGlu
IFtPcHRpb25hbF0gSURCS2V5UmFuZ2U/IHJhbmdlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyAg
ZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURC
UmVxdWVzdCBvcGVuS2V5Q3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBb
T3B0aW9uYWxdIGluIERPTVN0cmluZyAgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlv
bmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIFtPcHRp
b25hbF0gaW4gRE9NU3RyaW5nIGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0
YWJhc2VFeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbgog
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYg
aXMgZml4ZWQuCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJS
ZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtP
cHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKFtPcHRpb25hbF0gaW4g
SURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
bikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGlu
IElEQktleSBrZXksIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vy
c29yKGluIElEQktleSBrZXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3Io
aW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJh
bmdlLCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAgICAg
IHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXks
IGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElE
QktleSBrZXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQogICAgICAg
ICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIAogICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5
UmFuZ2U/IGtleSkKQEAgLTYzLDEwICs2MywxMCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAg
ICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0S2V5KGluIElEQktleSBrZXkpCiAg
ICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFs
XSBJREJLZXlSYW5nZT8gcmFuZ2UpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdl
KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KGluIElEQktl
eSBrZXkpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwK
aW5kZXggMTQ2NGQ5ZjczZDEyMmI0MDBmMDJkOTUwOTFlYjc1MzFhNGM3MDU0My4uZGI0NDNiMTcw
M2E1YjA0ZjViMjNkZThmYjZmZmE4M2E2MDgzN2Q1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN0
b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlO
REVYRURfREFUQUJBU0UsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIElEQktleSB7
CisgICAgXSBpbnRlcmZhY2UgSURCS2V5IHsKICAgICAgICAgLy8gVGhpcyBzcGFjZSBpcyBpbnRl
bnRpb25hbGx5IGxlZnQgYmxhbmsuCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwKaW5kZXggMTYxY2I5YzQ3NzMzZmJh
YWFiZTRhMThmOTZkNTMxNTdkNjY1MTNlZi4uMDExNThiN2U3MzdmZTJkZGM2OGZmOTA1NjRjZWYz
NTMxNTMzYTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVJhbmdlLmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFT
RQotICAgIF0gSURCS2V5UmFuZ2UgeworICAgIF0gaW50ZXJmYWNlIElEQktleVJhbmdlIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktleSBsb3dlcjsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIElEQktleSB1cHBlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gbG93ZXJPcGVuOwpAQCAtMzUsMTIgKzM1LDEyIEBAIG1vZHVsZSBzdG9yYWdlIHsKIAogICAg
ICAgICBzdGF0aWMgSURCS2V5UmFuZ2Ugb25seShpbiBJREJLZXkgdmFsdWUpCiAgICAgICAgICAg
ICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgc3RhdGljIElEQktleVJh
bmdlIGxvd2VyQm91bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3Bl
bikKKyAgICAgICAgc3RhdGljIElEQktleVJhbmdlIGxvd2VyQm91bmQoaW4gSURCS2V5IGJvdW5k
LCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gb3BlbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0
YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBzdGF0aWMgSURCS2V5UmFuZ2UgdXBwZXJCb3VuZChp
biBJREJLZXkgYm91bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKQorICAgICAgICBzdGF0
aWMgSURCS2V5UmFuZ2UgdXBwZXJCb3VuZChpbiBJREJLZXkgYm91bmQsIFtPcHRpb25hbF0gaW4g
Ym9vbGVhbiBvcGVuKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
Ci0gICAgICAgIHN0YXRpYyBJREJLZXlSYW5nZSBib3VuZChpbiBJREJLZXkgbG93ZXIsIGluIElE
QktleSB1cHBlciwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxvd2VyT3BlbiwgaW4gW09wdGlvbmFs
XSBib29sZWFuIHVwcGVyT3BlbikKKyAgICAgICAgc3RhdGljIElEQktleVJhbmdlIGJvdW5kKGlu
IElEQktleSBsb3dlciwgaW4gSURCS2V5IHVwcGVyLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbG93
ZXJPcGVuLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXBwZXJPcGVuKQogICAgICAgICAgICAgcmFp
c2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAppbmRleCA2
NzNlMjRjOTA4ZDM3NzYyZjhkZWVkZGY3MzViNTE3OTc2MDU2Zjc1Li44YTA0ZDBmNzk3YWRjODQ5
NDhkYmExMWM5ODgwNTFjMDM1MTcxYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCkBAIC0yNSwxOCArMjUsMTggQEAKIAog
bW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPUlOREVYRURfREFUQUJBU0UKLSAgICBdIElEQk9iamVjdFN0b3JlIHsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0
cmluZyBuYW1lOworICAgIF0gaW50ZXJmYWNlIElEQk9iamVjdFN0b3JlIHsKKyAgICAgICAgW1Ry
ZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCQW55IGtleVBhdGg7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbjsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYXV0b0luY3JlbWVudDsKIAotICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBwdXQoaW4gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIElEQktleSBrZXkpCisgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHB1dChpbiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUgdmFsdWUsIFtPcHRpb25hbF0gaW4gSURCS2V5IGtleSkKICAgICAgICAg
ICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBhZGQoaW4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIElEQktleSBrZXkpCisgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGFkZChpbiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUgdmFsdWUsIFtPcHRpb25hbF0gaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNl
cyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgSW1wbGVtZW50ZWRBcz1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxl
dGUoaW4gSURCS2V5UmFuZ2U/IGtleVJhbmdlKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRh
YmFzZUV4Y2VwdGlvbik7CkBAIC00OCwyOCArNDgsMjggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAg
ICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXkga2V5KQog
ICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09w
dGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGRpcmVj
dGlvbikKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihbT3B0aW9uYWxdIGluIElEQktleVJhbmdlPyByYW5nZSwgW09wdGlvbmFs
XSBpbiBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFz
ZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJ
REJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSBET01TdHJp
bmcgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
SURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXksIFtPcHRpb25hbF0gaW4gRE9NU3Ry
aW5nIGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OwogCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCi0gICAgICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlv
bmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBvcGVuQ3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURC
RGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXksIGluIFtPcHRpb25hbF0g
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXksIFtPcHRpb25h
bF0gaW4gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7CiAKLSAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9N
U3RyaW5nIG5hbWUsIGluIERPTVN0cmluZ1tdPyBrZXlQYXRoLCBpbiBbT3B0aW9uYWxdIERpY3Rp
b25hcnkgb3B0aW9ucykKKyAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5n
IG5hbWUsIGluIERPTVN0cmluZ1tdPyBrZXlQYXRoLCBbT3B0aW9uYWxdIGluIERpY3Rpb25hcnkg
b3B0aW9ucykKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAg
ICAgICBJREJJbmRleCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5n
IGtleVBhdGgsIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvcHRpb25zKQorICAgICAgICBJREJJ
bmRleCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgs
IFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIElEQkluZGV4IGluZGV4KGluIERPTVN0cmlu
ZyBuYW1lKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAg
ICAgIHZvaWQgZGVsZXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUpCiAgICAgICAgICAgICByYWlz
ZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8g
cmFuZ2UpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1
ZXN0IGNvdW50KFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlKQogICAgICAgICAgICAg
cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KGluIElEQktleSBrZXkpCiAgICAgICAg
ICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwKaW5kZXggMWU0
OTQxNTQzNmFiNTk5OGM1Y2NkYjgzNjBjYTQzMWIxMjRjNDhhOC4uMjFmMmMwNGRiYjBlZTkyYzli
Zjc1MjE4ZDdlM2Q5Y2NlZTlmODMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5pZGwKQEAgLTI5LDE5ICsyOSwxOSBAQAogCiBtb2R1bGUgc3Rv
cmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5E
RVhFRF9EQVRBQkFTRSwKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBFdmVudFRh
cmdldAotICAgIF0gSURCUmVxdWVzdCB7CisgICAgXSBpbnRlcmZhY2UgSURCUmVxdWVzdCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkgcmVzdWx0Ci0gICAgICAgICAgICBnZXR0
ZXIgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMg
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IGVycm9yQ29kZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvcgotICAgICAgICAg
ICAgZ2V0dGVyIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBET01TdHJp
bmcgd2Via2l0RXJyb3JNZXNzYWdlCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChJREJEYXRh
YmFzZUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0
aW9uKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdEVycm9yTWVzc2FnZQorICAgICAgICAgICAg
Z2V0cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIElEQkFueSBzb3VyY2U7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFu
c2FjdGlvbiB0cmFuc2FjdGlvbjsKQEAgLTU2LDExICs1NiwxMSBAQCBtb2R1bGUgc3RvcmFnZSB7
CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2
b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFu
IHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0
KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlk
bAppbmRleCBhMGU1NGMwM2UwZjI2MjAyNWM4OGZjNDVmODI2NmJkYWY2ZGVhYmIwLi4zNzI5MmZi
ZjM3M2VkN2NhOTc2ODMwMTI5ZmQ5ZjQ2NGMyMDRmZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0yNiwxMSArMjYs
MTEgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIEFjdGl2ZURPTU9iamVj
dCwKICAgICAgICAgRXZlbnRUYXJnZXQKLSAgICBdIElEQlRyYW5zYWN0aW9uIHsKKyAgICBdIGlu
dGVyZmFjZSBJREJUcmFuc2FjdGlvbiB7CiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHJl
bW92ZSBsZWdhY3kgZW51bSBjb25zdGFudHMsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODUzMTUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9P
TkxZID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9XUklURSA9IDE7CkBA
IC00MCw3ICs0MCw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBtb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCRGF0YWJh
c2UgZGI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvciAKLSAgICAg
ICAgICAgIGdldHRlciByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
IGdldHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogCiAgICAgICAgIC8vIE1ldGhvZHMK
ICAgICAgICAgSURCT2JqZWN0U3RvcmUgb2JqZWN0U3RvcmUgKGluIERPTVN0cmluZyBuYW1lKQpA
QCAtNTMsMTEgKzUzLDExIEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgLy8gRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxd
IGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpIAogICAgICAgICAgICAgcmFpc2Vz
KEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCmluZGV4
IGM2YTQxNzE4ZjYyNWZjMjQyNDkxMmU5ZGNmYzA0ZGIwNGNlY2RhYzIuLjg0NjViNjM1ZWVjZTdi
YzlkMGIwYTQzZDA3NGMwNDI1MWIyODM0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbApAQCAtMjUs
OSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQotICAgIF0gSURCVmVyc2lvbkNo
YW5nZUV2ZW50IDogRXZlbnQgeworICAgIF0gaW50ZXJmYWNlIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCA6IEV2ZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9u
OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaWRsCmluZGV4IDJhYTIzOGE4YjQ5
YWVmM2IyNmMyMDNmODA0NjYzODQ2YTRjYzY4ODkuLmIxMzI4YmQzMzM3N2VkMTQ5ZmNiODNhYjU4
MmY2ODBhOWFjNjJjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwKQEAgLTI1LDExICsyNSwx
MSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0
LAogICAgICAgICBFdmVudFRhcmdldAotICAgIF0gSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgOiBJ
REJSZXF1ZXN0IHsKKyAgICBdIGludGVyZmFjZSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCA6IElE
QlJlcXVlc3QgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CiAg
ICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9Xb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsCmluZGV4IGMzMzZj
NTdlZTg0YmY3NjEwZTJhZWVjNGI1NDI5OWZkYTU2MTE1Y2UuLmI3NGIwYmEzNTBmMTc2YWJkYWMw
N2I4ZWZjZDRiMGFiOTQzODkwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRs
CkBAIC0yNiwyMSArMjYsMjEgQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAg
IFN1cHBsZW1lbnRhbD1Xb3JrZXJDb250ZXh0Ci0gICAgXSBXb3JrZXJDb250ZXh0SW5kZXhlZERh
dGFiYXNlIHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVd
IElEQkZhY3Rvcnkgd2Via2l0SW5kZXhlZERCOworICAgIF0gaW50ZXJmYWNlIFdvcmtlckNvbnRl
eHRJbmRleGVkRGF0YWJhc2UgeworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25s
eSBhdHRyaWJ1dGUgSURCRmFjdG9yeSB3ZWJraXRJbmRleGVkREI7CiAKLSAgICAgICAgYXR0cmli
dXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElEQkN1cnNvckNvbnN0cnVjdG9yIHdlYmtpdElEQkN1
cnNvcjsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElEQkRhdGFiYXNl
Q29uc3RydWN0b3Igd2Via2l0SURCRGF0YWJhc2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFi
bGVkQXRSdW50aW1lXSBJREJEYXRhYmFzZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQkRh
dGFiYXNlRXhjZXB0aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0g
SURCRmFjdG9yeUNvbnN0cnVjdG9yIHdlYmtpdElEQkZhY3Rvcnk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBJREJJbmRleENvbnN0cnVjdG9yIHdlYmtpdElEQkluZGV4
OwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2VDb25z
dHJ1Y3RvciB3ZWJraXRJREJLZXlSYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIElEQk9iamVjdFN0b3JlQ29uc3RydWN0b3Igd2Via2l0SURCT2JqZWN0U3RvcmU7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBJREJSZXF1ZXN0Q29uc3Ry
dWN0b3Igd2Via2l0SURCUmVxdWVzdDsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIElEQlRyYW5zYWN0aW9uQ29uc3RydWN0b3Igd2Via2l0SURCVHJhbnNhY3Rpb247Cisg
ICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBJREJDdXJzb3JDb25zdHJ1Y3Rv
ciB3ZWJraXRJREJDdXJzb3I7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0
ZSBJREJEYXRhYmFzZUNvbnN0cnVjdG9yIHdlYmtpdElEQkRhdGFiYXNlOworICAgICAgICBbVjhF
bmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSURCRGF0YWJhc2VFeGNlcHRpb25Db25zdHJ1Y3Rv
ciB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZV0gYXR0cmlidXRlIElEQkZhY3RvcnlDb25zdHJ1Y3RvciB3ZWJraXRJREJGYWN0b3J5OworICAg
ICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSURCSW5kZXhDb25zdHJ1Y3RvciB3
ZWJraXRJREJJbmRleDsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIElE
QktleVJhbmdlQ29uc3RydWN0b3Igd2Via2l0SURCS2V5UmFuZ2U7CisgICAgICAgIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZUNvbnN0cnVjdG9yIHdlYmtpdElE
Qk9iamVjdFN0b3JlOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSURC
UmVxdWVzdENvbnN0cnVjdG9yIHdlYmtpdElEQlJlcXVlc3Q7CisgICAgICAgIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQlRy
YW5zYWN0aW9uOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ludGVudHMvRE9NV2luZG93SW50ZW50cy5pZGwKaW5kZXggZDM0NTIwOTUxNzY1YmY4M2I5
MzkzNGJkM2UxMmVmNDRhNTczMDEzNC4uM2YwNmEyNDg0ZmVhNjkxNGYwNTA4ODdlOTk4OGY2YWFi
M2NlM2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0RPTVdp
bmRvd0ludGVudHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9ET01X
aW5kb3dJbnRlbnRzLmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSB3aW5kb3cgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9JTlRFTlRT
LAogICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dJbnRlbnRz
IHsKKyAgICBdIGludGVyZmFjZSBET01XaW5kb3dJbnRlbnRzIHsKICAgICAgICAgYXR0cmlidXRl
IEludGVudENvbnN0cnVjdG9yIFdlYktpdEludGVudDsKIAotICAgICAgICBhdHRyaWJ1dGUgW1Jl
cGxhY2VhYmxlXSBEZWxpdmVyZWRJbnRlbnQgd2Via2l0SW50ZW50OworICAgICAgICBbUmVwbGFj
ZWFibGVdIGF0dHJpYnV0ZSBEZWxpdmVyZWRJbnRlbnQgd2Via2l0SW50ZW50OwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvRGVsaXZl
cmVkSW50ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJ
bnRlbnQuaWRsCmluZGV4IDI1ZTk3OGRlYmU3ODUzZjQwMmM4ZjdhOTdmZGU4MDRlNjIwODlkNjEu
Ljc4NWFhOGNiZWVlOWYyZWE2ZGE3NGE5OWUxYmUyMjczZGJjOGY0NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJbnRlbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJbnRlbnQuaWRsCkBAIC0yNCwx
MyArMjQsMTMgQEAKICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWwotICAg
ICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UUywKLSAgICBdIERlbGl2ZXJlZEludGVudCA6IElu
dGVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UUworICAgIF0gaW50
ZXJmYWNlIERlbGl2ZXJlZEludGVudCA6IEludGVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNZXNzYWdlUG9ydEFycmF5IHBvcnRzOwogCiAgICAgICAgIFtUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBnZXRFeHRyYShpbiBET01TdHJpbmcga2V5KTsKICAg
ICAgICAgdm9pZCBwb3N0UmVzdWx0KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSByZXN1bHQpOwog
ICAgICAgICB2b2lkIHBvc3RGYWlsdXJlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSByZXN1bHQp
OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRl
bnRzL0ludGVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvSW50ZW50Lmlk
bAppbmRleCA5MjY1N2I0ZTZjZTYwZjA3OTk1MjQ2NDAxNjM2NWI4NzA5MTQ5NWU1Li43ZTRkYjIz
NjNmM2JhMjNhZmMyYWIxNzE5ZjY3ODA1OWJkY2MwNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ludGVudHMvSW50ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ludGVudHMvSW50ZW50LmlkbApAQCAtMjQsMTQgKzI0LDE0IEBACiAgKi8KIAogbW9kdWxl
IHdpbmRvdyB7Ci0gIGludGVyZmFjZSBbCisgIFsKICAgICAgIENvbmRpdGlvbmFsPVdFQl9JTlRF
TlRTLAogICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCi0gICAgICBDb25zdHJ1Y3RvcihpbiBET01T
dHJpbmcgYWN0aW9uLCBpbiBET01TdHJpbmcgdHlwZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051
bGxTdHJpbmcsIFRyYW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBkYXRhLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBcnJheSB0cmFuc2Zlckxp
c3QpLAorICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIGFjdGlvbiwgaW4gRE9NU3RyaW5n
IHR5cGUsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nLCBUcmFuc2Zlckxpc3Q9dHJhbnNm
ZXJMaXN0XSBpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgZGF0YSwgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gQXJyYXkgdHJhbnNmZXJMaXN0KSwKICAgICAgIENvbnN0cnVjdG9yUmFp
c2VzRXhjZXB0aW9uCi0gIF0gSW50ZW50IHsKKyAgXSBpbnRlcmZhY2UgSW50ZW50IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhY3Rpb247CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhOwogICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvSW50ZW50UmVzdWx0Q2FsbGJhY2suaWRsCmluZGV4
IDBhZmEyYWRkNjNmZDdkZTRkNzJmM2U0YTg4MGI0NDAwN2ExYzljNjQuLjlmNzFjNTMwNDY5Njlh
Y2NjNWJhYjgxZjg2ZGJlMWViNmU2NzhjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudFJlc3VsdENhbGxiYWNrLmlkbApAQCAtMjQsMTAgKzI0
LDEwIEBACiAgKi8KIAogbW9kdWxlIHdpbmRvdyB7Ci0gIGludGVyZmFjZSBbCisgIFsKICAgICAg
IENvbmRpdGlvbmFsPVdFQl9JTlRFTlRTLAogICAgICAgQ2FsbGJhY2sKLSAgXSBJbnRlbnRSZXN1
bHRDYWxsYmFjayB7CisgIF0gaW50ZXJmYWNlIEludGVudFJlc3VsdENhbGxiYWNrIHsKICAgICAg
IGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHJlc3VsdCk7CiAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05h
dmlnYXRvckludGVudHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmln
YXRvckludGVudHMuaWRsCmluZGV4IDIwNjMzN2ExYmUyNzVmYmZkYTY3ZTJhM2NkZjUxYmRmYWEz
ODNkYTMuLmQ4MjExZmI0MDIxYjI2MjVkMzlhODYyMDc0M2M2Y2U0OWMxOWQ0ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5pZGwK
QEAgLTE5LDE0ICsxOSwxNCBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UUywKICAgICAgICAgU3VwcGxl
bWVudGFsPU5hdmlnYXRvcgotICAgIF0gTmF2aWdhdG9ySW50ZW50cyB7CisgICAgXSBpbnRlcmZh
Y2UgTmF2aWdhdG9ySW50ZW50cyB7CiAgICAgICAgIHZvaWQgd2Via2l0U3RhcnRBY3Rpdml0eShp
biBJbnRlbnQgaW50ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0Nh
bGxiYWNrLCBPcHRpb25hbF0gSW50ZW50UmVzdWx0Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0g
SW50ZW50UmVzdWx0Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gSW50ZW50UmVzdWx0Q2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0Nh
bGxiYWNrLCBPcHRpb25hbF0gaW4gSW50ZW50UmVzdWx0Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNr
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVk
aWFTdHJlYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5k
b3dNZWRpYVN0cmVhbS5pZGwKaW5kZXggOTcwZDEwNjQ0MzE1YWMxNzEzZDY4MDA2MmY4YTkzMTE4
YWYxMzkxNy4uY2VjZThhNmYyYWU3YzgxZTE0ZjA4MjRiOGJmMmEwNDE1MGMyM2E5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0
cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5k
b3dNZWRpYVN0cmVhbS5pZGwKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiBtb2R1bGUgd2luZG93IHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJF
QU0sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd01lZGlh
U3RyZWFtIHsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIERlcHJlY2F0
ZWRQZWVyQ29ubmVjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdERlcHJlY2F0ZWRQZWVyQ29ubmVjdGlv
bjsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlhU3RyZWFtQ29u
c3RydWN0b3Igd2Via2l0TWVkaWFTdHJlYW07Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBQZWVyQ29ubmVjdGlvbjAwQ29uc3RydWN0b3Igd2Via2l0UGVlckNvbm5lY3Rp
b24wMDsKKyAgICBdIGludGVyZmFjZSBET01XaW5kb3dNZWRpYVN0cmVhbSB7CisgICAgICAgIFtW
OEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBEZXByZWNhdGVkUGVlckNvbm5lY3Rpb25Db25z
dHJ1Y3RvciB3ZWJraXREZXByZWNhdGVkUGVlckNvbm5lY3Rpb247CisgICAgICAgIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBNZWRpYVN0cmVhbUNvbnN0cnVjdG9yIHdlYmtpdE1lZGlh
U3RyZWFtOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgUGVlckNvbm5l
Y3Rpb24wMENvbnN0cnVjdG9yIHdlYmtpdFBlZXJDb25uZWN0aW9uMDA7CiAgICAgICAgIGF0dHJp
YnV0ZSBTZXNzaW9uRGVzY3JpcHRpb25Db25zdHJ1Y3RvciBTZXNzaW9uRGVzY3JpcHRpb247CiAg
ICAgICAgIGF0dHJpYnV0ZSBJY2VDYW5kaWRhdGVDb25zdHJ1Y3RvciBJY2VDYW5kaWRhdGU7CiAg
ICAgICAgIGF0dHJpYnV0ZSBNZWRpYVN0cmVhbUV2ZW50Q29uc3RydWN0b3IgTWVkaWFTdHJlYW1F
dmVudDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4
IDAxZDlkNTFmNTE3ZTJmZjc0OTdiNGRlMTZhZjM3NzMxY2JmYTk2MDIuLmJjYmE4MjE5Yjc2MDRk
MTNkYjE4MWNmN2QyOTE4MGMwMGI0MGQ1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbi5p
ZGwKQEAgLTI0LDE1ICsyNCwxNSBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEFjdGl2
ZURPTU9iamVjdCwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTIsCi0gICAgICAgIENv
bnN0cnVjdG9yKGluIERPTVN0cmluZyBzZXJ2ZXJDb25maWd1cmF0aW9uLCBpbiBbQ2FsbGJhY2td
IFNpZ25hbGluZ0NhbGxiYWNrIHNpZ25hbGluZ0NhbGxiYWNrKSwKKyAgICAgICAgQ29uc3RydWN0
b3IoaW4gRE9NU3RyaW5nIHNlcnZlckNvbmZpZ3VyYXRpb24sIFtDYWxsYmFja10gaW4gU2lnbmFs
aW5nQ2FsbGJhY2sgc2lnbmFsaW5nQ2FsbGJhY2spLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LAogICAgICAgICBKU0N1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBF
dmVudFRhcmdldAotICAgIF0gRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uIHsKKyAgICBdIGludGVy
ZmFjZSBEZXByZWNhdGVkUGVlckNvbm5lY3Rpb24gewogICAgICAgICB2b2lkIHByb2Nlc3NTaWdu
YWxpbmdNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlKQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKQEAgLTY1LDEyICs2NSwxMiBAQCBtb2R1bGUgcDJwIHsKICAgICAgICAg
Ly8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihp
biBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50
TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3Zl
RXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkKICAgICAg
ICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYWxsYmFjay5pZGwKaW5kZXgg
NjlkNjQ2ZjIwM2EyMmNmNGYyNzQ4ZjZhZGY5ZjFhNGYyN2MxNzA5Yi4uZGJlN2IyMWNmMWFjNWZk
YjQzNDAzMjhlN2VjYmM3ZTRkZjg5NWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9JY2VDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9JY2VDYWxsYmFjay5pZGwKQEAgLTMwLDExICszMCwxMSBAQAogCiBt
b2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBJY2VDYWxsYmFjayB7Cisg
ICAgXSBpbnRlcmZhY2UgSWNlQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50
KGluIEljZUNhbmRpZGF0ZSBjYW5kaWRhdGUsIGluIGJvb2xlYW4gbW9yZVRvRm9sbG93LCBpbiBQ
ZWVyQ29ubmVjdGlvbjAwIHNvdXJjZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbAppbmRleCBlMWM0
MmZhMjYzYzVmN2M5MWNkY2Y2MzBhMjkzNDUxMmQwNTc2N2VmLi5jZTJmZmRkZWRlMWRhNjdlMjMy
M2M3OTE1YzNkYTMyYjAxMzVhNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsCkBAIC0zMCwxMyArMzAsMTMgQEAKIAogbW9k
dWxlIHAycCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgbGFiZWwsIGlu
IERPTVN0cmluZyBjYW5kaWRhdGVMaW5lKQotICAgIF0gSWNlQ2FuZGlkYXRlIHsKKyAgICBdIGlu
dGVyZmFjZSBJY2VDYW5kaWRhdGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGxhYmVsOwogCiAgICAgICAgIERPTVN0cmluZyB0b1NkcCgpOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVk
aWFTdHJlYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Mb2NhbE1l
ZGlhU3RyZWFtLmlkbAppbmRleCA1ZTc2OWFmZjg4Y2NhOThiMDBhNzU4YTM5YjcyODAzOGQ1NWIw
YzkwLi5kYjUxYmEyYTQyZDJhZmVkNGJlODdkYmVjZGM2ZWMzMzY5ZDU4YTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBF
dmVudFRhcmdldCwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gTG9jYWxNZWRpYVN0cmVhbSA6IE1lZGlhU3RyZWFt
IHsKKyAgICBdIGludGVyZmFjZSBMb2NhbE1lZGlhU3RyZWFtIDogTWVkaWFTdHJlYW0gewogICAg
ICAgICB2b2lkIHN0b3AoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbAppbmRleCA2NWExODMzMTJhYjlk
NmFhZGQ1YzFjYmFkMTA5MzE4OWU3M2ExYzlkLi5kY2ExYTAzNWIyMWQ1MGUxY2RlNjRhMTQyZDhj
Y2ZmYzlmMDcxNmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbApAQCAtMjQsMTMgKzI0LDEzIEBACiAKIG1vZHVsZSBjb3JlIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJF
QU0sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBNZWRpYVN0
cmVhbVRyYWNrTGlzdCBhdWRpb1RyYWNrcywgaW4gTWVkaWFTdHJlYW1UcmFja0xpc3QgdmlkZW9U
cmFja3MpLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAg
ICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgotICAgXSBNZWRpYVN0cmVhbSB7CisgICBdIGlu
dGVyZmFjZSBNZWRpYVN0cmVhbSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbGFiZWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbVRyYWNrTGlz
dCBhdWRpb1RyYWNrczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtVHJh
Y2tMaXN0IHZpZGVvVHJhY2tzOwpAQCAtNDUsMTIgKzQ1LDEyIEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQg
cmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkK
ICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1F
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
RXZlbnQuaWRsCmluZGV4IGExOTMwYTRiNmMxMTk5ZDk4NmNkNmI3NTAxZTJlM2UwMGI5YTBlZDMu
LjE4MDc5MWUxNzc2MDk2ZDZjOTFlZGE2MDAyMDgyOTZjZjM3MjU4MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50Lmlk
bApAQCAtMjYsMTAgKzI2LDEwIEBAIG1vZHVsZSBldmVudHMgewogCiAgICAgLy8gQWNjb3JkaW5n
IHRvIHRoZSBXSEFUV0cgc3BlY2lmaWNhdGlvbjoKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS92aWRlby1jb25mZXJlbmNp
bmctYW5kLXBlZXItdG8tcGVlci1jb21tdW5pY2F0aW9uLmh0bWwjbWVkaWFzdHJlYW1ldmVudAot
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKLSAgICBd
IE1lZGlhU3RyZWFtRXZlbnQgOiBFdmVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KKyAgICBdIGludGVyZmFjZSBNZWRpYVN0cmVhbUV2ZW50IDogRXZlbnQgewog
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbSBzdHJlYW07CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1MaXN0LmlkbAppbmRleCBkMTgyZTZmODI2Zjc5NDNhOWFlODg2ZTZjNDFiNDg4YWI0
YzI4NzVkLi4zZDYxZDE0NjgyZDdhZDRlYjdkYjZkZmUwOTIyMjJhNTcyNGVhNjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxp
c3QuaWRsCkBAIC0yNCwxMyArMjQsMTMgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICAgICAg
SW5kZXhlZEdldHRlcgotICAgIF0gTWVkaWFTdHJlYW1MaXN0IHsKLSAgICAgICAgTWVkaWFTdHJl
YW0gaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgXSBpbnRlcmZh
Y2UgTWVkaWFTdHJlYW1MaXN0IHsKKyAgICAgICAgTWVkaWFTdHJlYW0gaXRlbShbSXNJbmRleF0g
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAppbmRleCA3
OTg3NTk3NWU5MTdjYmU2ZWY5OTMxODI4ZDU4YzFjOTY5ZjhlZGViLi5iOTNhOWJiMTJhMzU0MDMw
MzQ0N2EyNmY0YWFhZGNmM2YxOTE0ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKQEAgLTI0LDEyICsyNCwx
MiBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRp
b25hbD1NRURJQV9TVFJFQU0sCi0gICAgXSBNZWRpYVN0cmVhbVRyYWNrIHsKKyAgICBbCisgICAg
ICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQorICAgIF0gaW50ZXJmYWNlIE1lZGlhU3RyZWFt
VHJhY2sgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuIGVuYWJsZWQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a0V2ZW50LmlkbAppbmRleCAzMjBjNjAzMGViMzE3NjI2N2Q0YjVjMzllNzQ1OTliNjg1ZTA5Y2Iw
Li40YjhhYTUyYzdhYmRlZTI0MGNiNzE4MGM3ZjRmMzRjYWQzYmI0YzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrRXZlbnQuaWRsCkBAIC0yNCwxMCArMjQsMTAgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAg
ICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgXSBN
ZWRpYVN0cmVhbVRyYWNrRXZlbnQgOiBFdmVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25h
bD1NRURJQV9TVFJFQU0KKyAgICBdIGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgOiBF
dmVudCB7CiAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtVHJhY2sgdHJhY2s7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKaW5kZXggOTU3NjU1ZDA4MGQ4
YTJiZDdjYjFmOWJiNzEyODZhZGE3ZjRlZmU0MC4uODg0YTQwYmQ3OThkYmM1ZjJjODQ4YTg2MTY0
ODljMTAzNDFjZjQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKQEAgLTI0LDEzICsyNCwxMyBA
QAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBF
dmVudFRhcmdldAotICAgIF0gTWVkaWFTdHJlYW1UcmFja0xpc3QgeworICAgIF0gaW50ZXJmYWNl
IE1lZGlhU3RyZWFtVHJhY2tMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGl0ZW0oaW4gW0lzSW5k
ZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGl0ZW0o
W0lzSW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHZvaWQgYWRkKGlu
IE1lZGlhU3RyZWFtVHJhY2sgdHJhY2spCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKQEAgLTQzLDEyICs0MywxMiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEV2ZW50VGFy
Z2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5n
IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxp
c3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29s
ZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
XSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVu
ZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAgICAgICAgICByYWlz
ZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRs
CmluZGV4IDQwZjhmMGRiZGJmMGJiYWI3NTA5YmFmMjJhOGRjYjhhMmYwMDA0ZTkuLjczYjk1NDI3
MmUzZjU1NzQ3MzE3OTAyOGU4ZTU5YzdmZmNmY2ZiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRs
CkBAIC0xOSwxNCArMTksMTQgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBTdXBw
bGVtZW50YWw9TmF2aWdhdG9yCi0gICAgXSBOYXZpZ2F0b3JNZWRpYVN0cmVhbSB7CisgICAgXSBp
bnRlcmZhY2UgTmF2aWdhdG9yTWVkaWFTdHJlYW0gewogICAgICAgICBbVjhFbmFibGVkQXRSdW50
aW1lXSB2b2lkIHdlYmtpdEdldFVzZXJNZWRpYShpbiBEaWN0aW9uYXJ5IG9wdGlvbnMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDYWxs
YmFja10gTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W0NhbGxiYWNrLCBPcHRpb25hbF0gTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayBlcnJv
ckNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbQ2FsbGJhY2tdIGluIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayBz
dWNjZXNzQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIE5hdmlnYXRvclVzZXJNZWRpYUVy
cm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCmluZGV4IDI5
MzQ1MGIyMmJiYjhlOTk1ZmY1ZjMzZWE3NzA4NDFhZGViZWVmZjguLjk4N2NlMTYzMTI4MzlmNTBm
YjhlMGMyZGI4OTg4YTRiYzU2MDY3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCkBA
IC0yMywxMiArMjMsMTIgQEAKICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCi0gICAgXSBOYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvciB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3IgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJNSVNTSU9OX0RFTklFRCA9IDE7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwogICAgIH07
CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCmlu
ZGV4IDQ0OTI4ZjgxZjJjNDE3ZDVmODJiMDU2NGE3MDhjNDRhMWE0MjNiODAuLjNlMmIyZjllNzE0
ZmE2NWI0YzAyMWUzYTFiMzllMDA4NDIzYjY3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVk
aWFFcnJvckNhbGxiYWNrLmlkbApAQCAtMjMsMTEgKzIzLDExIEBACiAgKi8KIAogbW9kdWxlIHdp
bmRvdyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE5hdmlnYXRvclVzZXJNZWRpYUVycm9y
Q2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJh
Y2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIE5hdmlnYXRvclVzZXJNZWRpYUVy
cm9yIGVycm9yKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaWRsCmluZGV4IDBhNjYxODA3YjczMGJiYjQzYzAwYTFkODg5ZWI4YTk2
MGQ2MTA1MmEuLjQyMmYyNjI1ODAzNTBjNjkxYWNjMDhlZTI2Yjk1ODE1ZWZlMmIzYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwKQEAgLTIzLDExICsy
MywxMSBAQAogICovCiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAg
XSBOYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIE5h
dmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxl
RXZlbnQoaW4gTG9jYWxNZWRpYVN0cmVhbSBzdHJlYW0pOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
MDAuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bjAwLmlkbAppbmRleCBiZDU2Yzg3NzMyOWRmZWY4MjU0Y2RiZjk1OTRjNmNkMmNmMTMzZmQyLi40
MGZmZTcxNTc1YzNhYTliNjcwNzFhOGUyNWY5NzZmMTY5OGMzNWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwK
QEAgLTMwLDE3ICszMCwxNyBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEFjdGl2ZURP
TU9iamVjdCwKLSAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIHNlcnZlckNvbmZpZ3Vy
YXRpb24sIGluIFtDYWxsYmFja10gSWNlQ2FsbGJhY2sgaWNlQ2FsbGJhY2spLAorICAgICAgICBD
b25zdHJ1Y3RvcihpbiBET01TdHJpbmcgc2VydmVyQ29uZmlndXJhdGlvbiwgW0NhbGxiYWNrXSBp
biBJY2VDYWxsYmFjayBpY2VDYWxsYmFjayksCiAgICAgICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAogICAgICAg
ICBFdmVudFRhcmdldAotICAgIF0gUGVlckNvbm5lY3Rpb24wMCB7Ci0gICAgICAgIFNlc3Npb25E
ZXNjcmlwdGlvbiBjcmVhdGVPZmZlcihpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgbWVkaWFIaW50
cykKKyAgICBdIGludGVyZmFjZSBQZWVyQ29ubmVjdGlvbjAwIHsKKyAgICAgICAgU2Vzc2lvbkRl
c2NyaXB0aW9uIGNyZWF0ZU9mZmVyKFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBtZWRpYUhpbnRz
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFNlc3Npb25EZXNj
cmlwdGlvbiBjcmVhdGVBbnN3ZXIoaW4gRE9NU3RyaW5nIG9mZmVyLCBpbiBbT3B0aW9uYWxdIERp
Y3Rpb25hcnkgbWVkaWFIaW50cykKKyAgICAgICAgU2Vzc2lvbkRlc2NyaXB0aW9uIGNyZWF0ZUFu
c3dlcihpbiBET01TdHJpbmcgb2ZmZXIsIFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBtZWRpYUhp
bnRzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gQWN0
aW9ucywgZm9yIHNldExvY2FsRGVzY3JpcHRpb24vc2V0UmVtb3RlRGVzY3JpcHRpb24uCkBAIC02
Miw3ICs2Miw3IEBAIG1vZHVsZSBwMnAgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBD
TE9TRUQgPSAzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVh
ZHlTdGF0ZTsKIAotICAgICAgICB2b2lkIHN0YXJ0SWNlKGluIFtPcHRpb25hbF0gRGljdGlvbmFy
eSBpY2VPcHRpb25zKQorICAgICAgICB2b2lkIHN0YXJ0SWNlKFtPcHRpb25hbF0gaW4gRGljdGlv
bmFyeSBpY2VPcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAg
ICAgICAgdm9pZCBwcm9jZXNzSWNlTWVzc2FnZShpbiBJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKQpA
QCAtNzcsNyArNzcsNyBAQCBtb2R1bGUgcDJwIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgSUNFX0NMT1NFRCA9IDB4NzAwOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgc2hvcnQgaWNlU3RhdGU7CiAKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBh
ZGRTdHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkg
bWVkaWFTdHJlYW1IaW50cykKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBhZGRT
dHJlYW0oaW4gTWVkaWFTdHJlYW0gc3RyZWFtLCBbT3B0aW9uYWxdIGluIERpY3Rpb25hcnkgbWVk
aWFTdHJlYW1IaW50cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlbW92ZVN0cmVhbShpbiBNZWRpYVN0cmVhbSBz
dHJlYW0pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTk3LDEyICs5Nywx
MiBAQCBtb2R1bGUgcDJwIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAg
ICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hF
dmVudChpbiBFdmVudCBldmVudCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAppbmRleCBkNGFmZWRhZDlmN2M3NjA3
NTJkNDQzYmM3NDg0Yjc1NTU4NDA2MDA1Li41NzMxMGQ4OWU0ZDMyODQ1M2EwNzA0NTUyZGY0OWVm
NjI4MzI0OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogbW9k
dWxlIHAycCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgc2RwKQotICAg
IF0gU2Vzc2lvbkRlc2NyaXB0aW9uIHsKKyAgICBdIGludGVyZmFjZSBTZXNzaW9uRGVzY3JpcHRp
b24gewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGFkZENhbmRpZGF0ZShpbiBJ
Y2VDYW5kaWRhdGUgY2FuZGlkYXRlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKICAgICAgICAgRE9NU3RyaW5nIHRvU2RwKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2lnbmFsaW5nQ2FsbGJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFj
ay5pZGwKaW5kZXggNjllNGI5MmY0YTg4Nzc5MmM1ZjFlNTJjMTE2YTIxYzU1YTRmNmQ3Zi4uN2Q3
YjY2ZjRlOTllZDNkMTg2ODZlMjRlNmY4ZjMxNmI1NDQ2OTZlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5pZGwK
QEAgLTI0LDExICsyNCwxMSBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNr
Ci0gICAgXSBTaWduYWxpbmdDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgU2lnbmFsaW5nQ2Fs
bGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVN0cmluZyBtZXNzYWdl
LCBpbiBEZXByZWNhdGVkUGVlckNvbm5lY3Rpb24gc291cmNlKTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JO
ZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3Jr
aW5mby9OYXZpZ2F0b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsCmluZGV4IGY2MWQwZjNjYjUx
YmIyMzE4OWE4ZDExY2ExNGJmODllM2EyMmQyMDMuLmQxNmQ3Mzc5MjUyNGI5ZjEyNzNmODkxNzg4
MGU3MWQ2ZmQ5NTEzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29y
a2luZm8vTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5p
ZGwKQEAgLTE5LDExICsxOSwxMSBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1ORVRXT1JLX0lORk8sCiAgICAgICAgIFN1
cHBsZW1lbnRhbD1OYXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlv
biB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbiB3ZWJraXRDb25u
ZWN0aW9uOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwKaW5kZXggOGU1
NmVmYWYzNWI0ZDVlNjUwYmI4ZGViNTMzODBhY2MxODQ4ZTlmZC4uYWRjNDFkMzA1ZjQ0NjA3OWU2
ZWZlNjgyOWE3NzRjNmI1NjBjMTM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbApAQCAtMjIs
MTEgKzIyLDExIEBACiBtb2R1bGUgd2luZG93IHsKIAogICAgIC8vIGh0dHA6Ly9kdmNzLnczLm9y
Zy9oZy9kYXAvcmF3LWZpbGUvdGlwL25ldHdvcmstYXBpL2luZGV4Lmh0bWwKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TkVUV09SS19JTkZPLAogICAgICAgICBB
Y3RpdmVET01PYmplY3QsCiAgICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAgXSBOZXR3b3JrSW5mb0Nv
bm5lY3Rpb24geworICAgIF0gaW50ZXJmYWNlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbiB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgYmFuZHdpZHRoOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBtZXRlcmVkOwogCkBAIC0zNSwxMSArMzUsMTEgQEAgbW9kdWxl
IHdpbmRvdyB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lk
IGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7
CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVh
biB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50
KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL0RPTVdp
bmRvd1F1b3RhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVv
dGEuaWRsCmluZGV4IGQ0YzY1YzQzZjM0NDNlNmFiYjA1ZDFiZGNiNzFhNzg0YWQyNjg4ZTYuLjY0
YjRmMmFkZWY4ZDZhN2UxZGE1YmQyYjBjMGJkM2JhNjZkNTVmYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsCkBAIC0yNSwxMiArMjUsMTIg
QEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9UVVPVEEsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBd
IERPTVdpbmRvd1F1b3RhIHsKKyAgICBdIGludGVyZmFjZSBET01XaW5kb3dRdW90YSB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdG9yYWdlSW5mbyB3ZWJraXRTdG9yYWdlSW5mbzsKICAg
ICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3Rh
L1N0b3JhZ2VJbmZvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUlu
Zm8uaWRsCmluZGV4IDRjZDk3MWFlYmU2Yjc5MjkyOTM0ZGQ5OGY3ZGY5ZTZhMWI1NWJjMDguLjNj
ZmY2OTM3NjNkMDI1OThkMmE2OThhNzFkYWI5ZWNmMTcyNTg0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsCkBAIC0yNCwxNCArMjQsMTQgQEAKICAq
LwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVFVT1RBLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFN0b3JhZ2VJ
bmZvIHsKKyAgICBdIGludGVyZmFjZSBTdG9yYWdlSW5mbyB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBF
UlNJU1RFTlQgPSAxOwogCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSB2b2lkIHF1ZXJ5VXNhZ2VBbmRRdW90YShpbiB1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwg
aW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrIHVzYWdlQ2Fs
bGJhY2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IHZvaWQgcmVxdWVzdFF1b3RhKGluIHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCBpbiB1bnNp
Z25lZCBsb25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBT
dG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2sgcXVvdGFDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRp
b25hbF0gU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBxdWVyeVVzYWdlQW5kUXVvdGEo
aW4gdW5zaWduZWQgc2hvcnQgc3RvcmFnZVR5cGUsIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFN0
b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjayB1c2FnZUNhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlvbmFs
XSBpbiBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIHJlcXVlc3RRdW90YShpbiB1bnNp
Z25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgaW4gdW5zaWduZWQgbG9uZyBsb25nIG5ld1F1b3RhSW5C
eXRlcywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrIHF1
b3RhQ2FsbGJhY2ssIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFN0b3JhZ2VJbmZvRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNrLmlkbAppbmRl
eCA2NmMzMzE2YmM3MWI2OGI1ZWNjZDgwMmVmMTA4NmEzODBjMWY1YWU1Li4zN2U5ZDQyYzA0Mjli
MzNkYjcyMjhiOWQ0OTEwYWJlODdhM2IwMWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2suaWRsCkBAIC0yOSwx
MCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVFVT1RBLAogICAgICAgICBDYWxsYmFjawotICAgIF0g
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBTdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTUNvcmVFeGNl
cHRpb24gZXJyb3IpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaWRsCmluZGV4IDFjOGUx
MWM2NDAyZmIyOTBkNzllNjIzY2Y4NDE0MjMwYjU5ZmM2ZjEuLmUzMzg0OWQwZjUxZWIyMjQ1NDYy
OGU1NDdiMGFjOThkNWNiOThlY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cXVvdGEvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjay5pZGwKQEAgLTI5LDEwICsyOSwx
MCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBTdG9yYWdl
SW5mb1F1b3RhQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFN0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gdW5zaWduZWQgbG9uZyBsb25n
IGdyYW50ZWRRdW90YUluQnl0ZXMpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2suaWRsCmlu
ZGV4IGRmYTU4ZTYyZDIwMTQxY2VmNjQ4MTE5MjJjMTNmMjI3MDYxNzgzMWIuLjEwMDgyYjQ1YzQ5
ZmZjOTA2ZjY4ZTdmZTgwMDNjNTk4ZGM0OGQ2YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5pZGwKQEAgLTI5
LDExICsyOSwxMSBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCiAgICAgICAgIENhbGxiYWNrCi0gICAg
XSBTdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFN0b3JhZ2VJbmZv
VXNhZ2VDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gdW5zaWduZWQg
bG9uZyBsb25nIGN1cnJlbnRVc2FnZUluQnl0ZXMsIGluIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJy
ZW50UXVvdGFJbkJ5dGVzKTsKICAgICB9OwotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGwKaW5kZXggMGMyNmYwM2Q3MDk4YTNl
YWExNmUxYTcwOTIyOTQ5MmM0MDRmZTAzZC4uNGU5NzllNDMxMWE4OGNkMWMyODU2YWU2Y2E3MTc5
YWMyODY1MmU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9N
V2luZG93U3BlZWNoLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01X
aW5kb3dTcGVlY2guaWRsCkBAIC0yNCwxNCArMjQsMTQgQEAKICAqLwogCiBtb2R1bGUgd2luZG93
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURf
U1BFRUNILAogICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dT
cGVlY2ggewotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3BlZWNoUmVj
b2duaXRpb25Db25zdHJ1Y3RvciB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjsKLSAgICAgICAgYXR0
cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb25zdHJ1
Y3RvciB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4
RW5hYmxlZEF0UnVudGltZV0gU3BlZWNoUmVjb2duaXRpb25FdmVudENvbnN0cnVjdG9yIHdlYmtp
dFNwZWVjaFJlY29nbml0aW9uRXZlbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRS
dW50aW1lXSBTcGVlY2hHcmFtbWFyQ29uc3RydWN0b3Igd2Via2l0U3BlZWNoR3JhbW1hcjsKLSAg
ICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFNwZWVjaEdyYW1tYXJMaXN0Q29u
c3RydWN0b3Igd2Via2l0U3BlZWNoR3JhbW1hckxpc3Q7CisgICAgXSBpbnRlcmZhY2UgRE9NV2lu
ZG93U3BlZWNoIHsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIFNwZWVj
aFJlY29nbml0aW9uQ29uc3RydWN0b3Igd2Via2l0U3BlZWNoUmVjb2duaXRpb247CisgICAgICAg
IFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29u
c3RydWN0b3Igd2Via2l0U3BlZWNoUmVjb2duaXRpb25FcnJvcjsKKyAgICAgICAgW1Y4RW5hYmxl
ZEF0UnVudGltZV0gYXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uRXZlbnRDb25zdHJ1Y3RvciB3
ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkV2ZW50OworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1l
XSBhdHRyaWJ1dGUgU3BlZWNoR3JhbW1hckNvbnN0cnVjdG9yIHdlYmtpdFNwZWVjaEdyYW1tYXI7
CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBTcGVlY2hHcmFtbWFyTGlz
dENvbnN0cnVjdG9yIHdlYmtpdFNwZWVjaEdyYW1tYXJMaXN0OwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbAppbmRleCBi
NzkzYWMzYWJlZjkyZmU4NTdlNDU0OGY3MDg1NTRmZmNjYWU4M2M5Li40Y2IxNTI5OGVkYWUzYzIw
NGQ0NTFkNWQxMDU4NjY5NjZmNTJmZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hHcmFtbWFyLmlkbApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogbW9k
dWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
Q1JJUFRFRF9TUEVFQ0gsCiAgICAgICAgIENvbnN0cnVjdG9yCi0gICAgXSBTcGVlY2hHcmFtbWFy
IHsKLSAgICAgICAgYXR0cmlidXRlIFtVUkwsQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gRE9NU3RyaW5nIHNyYzsKKyAgICBdIGludGVyZmFjZSBTcGVlY2hHcmFtbWFyIHsKKyAgICAg
ICAgW1VSTCxDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHNyYzsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHdlaWdodDsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXJM
aXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXJMaXN0
LmlkbAppbmRleCBiZjRkN2M2OWZiNTExZDY2ZjUwN2YxNjQ0YTUyNzljYWM1MGUyNWY4Li5kMmFj
NTAwN2UwNTBlZjQ2MDE3YjY4ZWNkMmZjNWFiNzgzMmY5N2JlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFyTGlzdC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsCkBAIC0yNCwxNCAr
MjQsMTQgQEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwKICAgICAgICAgSW5kZXhlZEdldHRl
ciwKLSAgICAgICAgQ29uc3RydWN0b3IsCi0gICAgXSBTcGVlY2hHcmFtbWFyTGlzdCB7CisgICAg
ICAgIENvbnN0cnVjdG9yCisgICAgXSBpbnRlcmZhY2UgU3BlZWNoR3JhbW1hckxpc3QgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIFNw
ZWVjaEdyYW1tYXIgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGFkZEZyb21VcmkoaW4g
RE9NU3RyaW5nIHNyYywgaW4gW09wdGlvbmFsXSBmbG9hdCB3ZWlnaHQpOwotICAgICAgICB2b2lk
IGFkZEZyb21TdHJpbmcoaW4gRE9NU3RyaW5nIHN0cmluZywgaW4gW09wdGlvbmFsXSBmbG9hdCB3
ZWlnaHQpOworICAgICAgICBTcGVlY2hHcmFtbWFyIGl0ZW0oW0lzSW5kZXhdIGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
dm9pZCBhZGRGcm9tVXJpKGluIERPTVN0cmluZyBzcmMsIFtPcHRpb25hbF0gaW4gZmxvYXQgd2Vp
Z2h0KTsKKyAgICAgICAgdm9pZCBhZGRGcm9tU3RyaW5nKGluIERPTVN0cmluZyBzdHJpbmcsIFtP
cHRpb25hbF0gaW4gZmxvYXQgd2VpZ2h0KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAppbmRleCBmNmUy
ODQ0ZDUwMjA0ZDMyOWI4NDA3NGFhMjQwN2RiYjcwMjFhZjc3Li4wOWE2ZjEwMWRjN2UyYWY0NGU4
MzgxNjc4OTU3ZDA3ODY5ZWFkNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaWRsCkBAIC0yNCwxMyArMjQsMTMgQEAKICAqLwog
CiBtb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNDUklQVEVEX1NQRUVDSCwKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBD
b25zdHJ1Y3RvciwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAg
ICAgICAgRXZlbnRUYXJnZXQsCi0gICAgXSBTcGVlY2hSZWNvZ25pdGlvbiB7CisgICAgICAgIEV2
ZW50VGFyZ2V0CisgICAgXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb24gewogICAgICAgICBh
dHRyaWJ1dGUgU3BlZWNoR3JhbW1hckxpc3QgZ3JhbW1hcnM7CiAgICAgICAgIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFuZzsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY29udGludW91czsKQEAg
LTU2LDExICs1NiwxMSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGlu
dGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBi
b29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4g
RE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVu
dExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29s
ZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50
RXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKaW5k
ZXggYTlkNGRlYzNkZGU5MjViMjY0Mjk4ODQzMzE0NmMxNGU4ODVjNmI2ZS4uZWVlNDZmMzgzY2Fk
OTllMmE1MzNjNmYwYmMzMzkzYTc4MjczMDg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5p
ZGwKQEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNICi0gICAgXSBT
cGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlIHsKKyAgICBdIGludGVyZmFjZSBTcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0cmFuc2NyaXB0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5j
ZTsKICAgICB9OwotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmlkbAppbmRleCBmMzdjZDEzMzg1Yzk2N2E5
N2JmYTk2NzBkNGE4NmFhZDU2ZDliYWE4Li4yZjI5ZWNmYTBkNjc4ZDhkMWVkNmY1ZWRhMjEwODBh
ZjM2MGI2MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAog
bW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TQ1JJUFRFRF9TUEVFQ0gsCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAg
ICBdIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgOiBFdmVudCB7CisgICAgXSBpbnRlcmZhY2UgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciA6IEV2ZW50IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgT1RIRVIgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT19TUEVFQ0ggPSAx
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBQk9SVEVEID0gMjsKQEAgLTM4LDcgKzM4
LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBCQURfR1JB
TU1BUiA9IDc7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExBTkdVQUdFX05PVF9TVVBQ
T1JURUQgPSA4OwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBtZXNzYWdl
OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKICAgICB9Owot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FdmVudC5pZGwKaW5kZXggZjBhOTgxODUxMmU3ZjVjMDE5MmM3ZDgyYTdiNzkx
M2Y5OTEzMzFhZS4uOGQ3MDQyNWE2ZTM3MWJhMjVjNWRkZGU0MDc5MThhYmE0ZjY5ZjJkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25F
dmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25FdmVudC5pZGwKQEAgLTI0LDEyICsyNCwxMiBAQAogICovCiAKIG1vZHVsZSBldmVudHMg
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TQ1JJUFRFRF9T
UEVFQ0gsCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHJlc3Vs
dDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gc2hvcnQgcmVzdWx0SW5kZXg7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCBy
ZXN1bHRIaXN0b3J5OworICAgIF0gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uRXZlbnQgOiBF
dmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkg
YXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgc2hvcnQgcmVzdWx0
SW5kZXg7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkg
YXR0cmlidXRlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCByZXN1bHRIaXN0b3J5OwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCmluZGV4IDNmOTEyNjIxYzBkNzEzNGM2Yjk0ZmVl
ODg0MWE4YzFlNTk2MGZlNGMuLjhjYmQ3NmFmN2EwZjc4YjFkNWM0MDVjMWY5Yzg3ZWNiZThlZDkz
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uUmVzdWx0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAKIG1vZHVs
ZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NS
SVBURURfU1BFRUNILAogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBTcGVlY2hSZWNvZ25p
dGlvblJlc3VsdCB7CisgICAgXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAg
IFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQg
bG9uZyBpbmRleCk7CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgaXRlbShb
SXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGZpbmFsOwogICAgIH07Ci19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
LmlkbAppbmRleCBmZDdiZTRmMWNhZTAyN2Q0NmY5NzY4NmI0MjgxNjQ5OWNjYmVjMDgzLi5jN2I5
YjFiOTBiOGI4NmI5ZTVlOWU1ZmQ5N2NhODgxZmFlOGJkZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0
TGlzdC5pZGwKQEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNILAog
ICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdExpc3Qg
eworICAgIF0gaW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0TGlzdCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgU3BlZWNo
UmVjb2duaXRpb25SZXN1bHQgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7
CisgICAgICAgIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IGl0ZW0oW0lzSW5kZXhdIGluIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy92aWJyYXRpb24vTmF2aWdhdG9yVmlicmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvdmlicmF0aW9uL05hdmlnYXRvclZpYnJhdGlvbi5pZGwKaW5kZXggMTY0ODQ5
YmFiYTBmNzYwZDhkMTdkY2E5YjcxMjk2NjY1Y2E3OGNlMS4uMDZlMGVmOWVjODgwMTFiZmZlNzQ3
MTEzNGI5YjliYzNmZGFhZDY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92
aWJyYXRpb24vTmF2aWdhdG9yVmlicmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3ZpYnJhdGlvbi9OYXZpZ2F0b3JWaWJyYXRpb24uaWRsCkBAIC0xOSwxMiArMTksMTIgQEAK
IAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9VklCUkFUSU9OLAogICAgICAgICBTdXBwbGVtZW50YWw9TmF2aWdhdG9yCi0gICAg
XSBOYXZpZ2F0b3JWaWJyYXRpb24geworICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvclZpYnJhdGlv
biB7CiAgICAgICAgIHZvaWQgd2Via2l0VmlicmF0ZShpbiB1bnNpZ25lZCBsb25nW10/IHBhdHRl
cm4pIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHdlYmtpdFZpYnJhdGUoaW4g
dW5zaWduZWQgbG9uZyB0aW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbApp
bmRleCA4YTczNGUyOGYxYTY5NGNkOTNmNmNhMDRlY2ViODNlY2MzNjhlMWFmLi4xMTBkYjRjNTFm
MzdjMzJlNmJjMDA2MDY1OTY4MzFiMWMyNThmMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbApAQCAtMjcsOSArMjcsOSBAQAogICovCiAK
IG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVdFQl9BVURJTwotICAgIF0gQXVkaW9CdWZmZXIgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlv
QnVmZmVyIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOyAvLyBpbiBz
YW1wbGUtZnJhbWVzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsg
Ly8gaW4gc2Vjb25kcwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgc2FtcGxlUmF0
ZTsgLy8gaW4gc2FtcGxlLWZyYW1lcyBwZXIgc2Vjb25kCkBAIC00MCw0ICs0MCw0IEBAIG1vZHVs
ZSBhdWRpbyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJl
ck9mQ2hhbm5lbHM7CiAgICAgICAgIEZsb2F0MzJBcnJheSBnZXRDaGFubmVsRGF0YShpbiB1bnNp
Z25lZCBsb25nIGNoYW5uZWxJbmRleCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2suaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlckNhbGxiYWNrLmlkbAppbmRl
eCA5YjM1NDc3YzY0ZWQ0ZGY2NTUwMjUwOTQ0NzNmNmRhY2I0NzNjNjlmLi42ODIzOGE2Y2FkMzA0
OTJmZmEzNmE3MzNkZmM4NWU3M2U2NDg4YjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwKQEAgLTIzLDExICsy
MywxMSBAQAogICovCiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QsCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBBdWRpb0J1ZmZlckNhbGxiYWNrIHsKKyAgICBd
IGludGVyZmFjZSBBdWRpb0J1ZmZlckNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVF
dmVudChpbiBBdWRpb0J1ZmZlciBhdWRpb0J1ZmZlcik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNl
Tm9kZS5pZGwKaW5kZXggYWU2YWY5M2U4YThmODNlYzQ0NTJkN2FhZGUxNmU0MDg2NzZlYzk5Ny4u
ZjAwOGI3NWI1MTEzMGM5MDk5MGZlMWY5ZWNjY2ZjNzk4NzY1M2NlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAKIG1vZHVsZSBhdWRpbyB7CiAgICAgLy8gQSBjYWNo
ZWQgKG5vbi1zdHJlYW1lZCksIG1lbW9yeS1yZXNpZGVudCBhdWRpbyBzb3VyY2UKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gQXVkaW9CdWZmZXJTb3VyY2VOb2RlIDogQXVkaW9T
b3VyY2VOb2RlIHsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIEF1ZGlvQnVmZmVy
IGJ1ZmZlcgotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICBd
IGludGVyZmFjZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGUgOiBBdWRpb1NvdXJjZU5vZGUgeworICAg
ICAgICBbQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgQXVkaW9CdWZmZXIgYnVmZmVyCisgICAgICAg
ICAgICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVU5TQ0hFRFVMRURfU1RBVEUgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBTQ0hFRFVMRURfU1RBVEUgPSAxOwpAQCAtNDgsNCArNDgsNCBAQCBtb2R1bGUgYXVkaW8gewog
ICAgICAgICB2b2lkIG5vdGVHcmFpbk9uKGluIGRvdWJsZSB3aGVuLCBpbiBkb3VibGUgZ3JhaW5P
ZmZzZXQsIGluIGRvdWJsZSBncmFpbkR1cmF0aW9uKTsKICAgICAgICAgdm9pZCBub3RlT2ZmKGlu
IGRvdWJsZSB3aGVuKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbAppbmRleCAzODYyYWY5ZDFm
NDc0MDRkZmRkYjBlYWVkOGMxNTk1MjA1MzU4YzU3Li5kMDJhOGE2NGQ5MTE4YjE2NmE0NTg1NTc3
MTI5MmRmZmY4ZjUyYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ2hhbm5lbE1lcmdlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NoYW5uZWxNZXJnZXIuaWRsCkBAIC0yNyw4ICsyNyw4IEBACiAgKi8KIAog
bW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9V0VCX0FVRElPCi0gICAgXSBBdWRpb0NoYW5uZWxNZXJnZXIgOiBBdWRpb05vZGUgeworICAg
IF0gaW50ZXJmYWNlIEF1ZGlvQ2hhbm5lbE1lcmdlciA6IEF1ZGlvTm9kZSB7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ2hh
bm5lbFNwbGl0dGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
aGFubmVsU3BsaXR0ZXIuaWRsCmluZGV4IDA3NmMwNTEwZWMxZjJmNTNkMzQ2N2NkNTA0MWUwMTUx
NzgxMjI4N2YuLmY1MTU5OWRjMjUyZGNhNTRmNDk0Y2MyYmU3OGQwN2RhZjI4NWY1YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsU3BsaXR0
ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVs
U3BsaXR0ZXIuaWRsCkBAIC0yMyw4ICsyMyw4IEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPCi0gICAg
XSBBdWRpb0NoYW5uZWxTcGxpdHRlciA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQXVk
aW9DaGFubmVsU3BsaXR0ZXIgOiBBdWRpb05vZGUgewogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCmluZGV4IDIwNGIw
YzdkNTRlYmFiNTU3Yjg1MmYwMDExZTg2ZjQwMWE0NmI2ODkuLmJkNzdhNmIzZmUxNWRiMWMzMTRk
NWRmNzc5NDg1YjRmN2M1NGEwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKQEAgLTI0LDE0ICsyNCwxNCBAQAogICovCiAKIG1vZHVs
ZSB3ZWJhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PVdFQl9BVURJTywKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBDdXN0b21Db25z
dHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTAsCiAgICAgICAgIEpTQ3Vz
dG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBFdmVudFRhcmdldAotICAgIF0gQXVkaW9Db250ZXh0
IHsKKyAgICBdIGludGVyZmFjZSBBdWRpb0NvbnRleHQgewogICAgICAgICAvLyBBbGwgcmVuZGVy
ZWQgYXVkaW8gdWx0aW1hdGVseSBjb25uZWN0cyB0byBkZXN0aW5hdGlvbiwgd2hpY2ggcmVwcmVz
ZW50cyB0aGUgYXVkaW8gaGFyZHdhcmUuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRp
b0Rlc3RpbmF0aW9uTm9kZSBkZXN0aW5hdGlvbjsKIApAQCAtNTMsNyArNTMsNyBAQCBtb2R1bGUg
d2ViYXVkaW8gewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
Ly8gQXN5bmNocm9ub3VzIGF1ZGlvIGZpbGUgZGF0YSBkZWNvZGluZy4KLSAgICAgICAgdm9pZCBk
ZWNvZGVBdWRpb0RhdGEoaW4gQXJyYXlCdWZmZXIgYXVkaW9EYXRhLCBpbiBbQ2FsbGJhY2tdIEF1
ZGlvQnVmZmVyQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNr
XSBBdWRpb0J1ZmZlckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spCisgICAgICAgIHZvaWQgZGVjb2Rl
QXVkaW9EYXRhKGluIEFycmF5QnVmZmVyIGF1ZGlvRGF0YSwgW0NhbGxiYWNrXSBpbiBBdWRpb0J1
ZmZlckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gQXVk
aW9CdWZmZXJDYWxsYmFjayBlcnJvckNhbGxiYWNrKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgLy8gU291cmNlcwpAQCAtNjQsMjMgKzY0LDIzIEBAIG1vZHVs
ZSB3ZWJhdWRpbyB7CiAjZW5kaWYKICAgICAgICAgLy8gUHJvY2Vzc2luZyBub2RlcwogICAgICAg
ICBBdWRpb0dhaW5Ob2RlIGNyZWF0ZUdhaW5Ob2RlKCk7Ci0gICAgICAgIERlbGF5Tm9kZSBjcmVh
dGVEZWxheU5vZGUoaW4gW09wdGlvbmFsXSBkb3VibGUgbWF4RGVsYXlUaW1lKTsKKyAgICAgICAg
RGVsYXlOb2RlIGNyZWF0ZURlbGF5Tm9kZShbT3B0aW9uYWxdIGluIGRvdWJsZSBtYXhEZWxheVRp
bWUpOwogICAgICAgICBCaXF1YWRGaWx0ZXJOb2RlIGNyZWF0ZUJpcXVhZEZpbHRlcigpOwogICAg
ICAgICBXYXZlU2hhcGVyTm9kZSBjcmVhdGVXYXZlU2hhcGVyKCk7CiAgICAgICAgIEF1ZGlvUGFu
bmVyTm9kZSBjcmVhdGVQYW5uZXIoKTsKICAgICAgICAgQ29udm9sdmVyTm9kZSBjcmVhdGVDb252
b2x2ZXIoKTsKICAgICAgICAgRHluYW1pY3NDb21wcmVzc29yTm9kZSBjcmVhdGVEeW5hbWljc0Nv
bXByZXNzb3IoKTsKICAgICAgICAgUmVhbHRpbWVBbmFseXNlck5vZGUgY3JlYXRlQW5hbHlzZXIo
KTsKLSAgICAgICAgSmF2YVNjcmlwdEF1ZGlvTm9kZSBjcmVhdGVKYXZhU2NyaXB0Tm9kZShpbiB1
bnNpZ25lZCBsb25nIGJ1ZmZlclNpemUsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBudW1i
ZXJPZklucHV0Q2hhbm5lbHMsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBudW1iZXJPZk91
dHB1dENoYW5uZWxzKQorICAgICAgICBKYXZhU2NyaXB0QXVkaW9Ob2RlIGNyZWF0ZUphdmFTY3Jp
cHROb2RlKGluIHVuc2lnbmVkIGxvbmcgYnVmZmVyU2l6ZSwgW09wdGlvbmFsXSBpbiB1bnNpZ25l
ZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscywgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25n
IG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgT3NjaWxsYXRvciBjcmVhdGVPc2NpbGxhdG9yKCk7CiAgICAgICAgIFdhdmVU
YWJsZSBjcmVhdGVXYXZlVGFibGUoaW4gRmxvYXQzMkFycmF5IHJlYWwsIGluIEZsb2F0MzJBcnJh
eSBpbWFnKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8g
Q2hhbm5lbCBzcGxpdHRpbmcgYW5kIG1lcmdpbmcKLSAgICAgICAgQXVkaW9DaGFubmVsU3BsaXR0
ZXIgY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBudW1i
ZXJPZk91dHB1dHMpCisgICAgICAgIEF1ZGlvQ2hhbm5lbFNwbGl0dGVyIGNyZWF0ZUNoYW5uZWxT
cGxpdHRlcihbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRzKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIEF1ZGlvQ2hhbm5lbE1lcmdl
ciBjcmVhdGVDaGFubmVsTWVyZ2VyKGluIFtPcHRpb25hbF0gdW5zaWduZWQgbG9uZyBudW1iZXJP
ZklucHV0cykKKyAgICAgICAgQXVkaW9DaGFubmVsTWVyZ2VyIGNyZWF0ZUNoYW5uZWxNZXJnZXIo
W09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRzKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gT2ZmbGluZSByZW5kZXJpbmcKQEAg
LTg4LDQgKzg4LDQgQEAgbW9kdWxlIHdlYmF1ZGlvIHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25jb21wbGV0ZTsKICAgICAgICAgdm9pZCBzdGFydFJlbmRlcmluZygpOwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvRGVzdGluYXRpb25Ob2RlLmlkbAppbmRleCA3Y2U0MDQzYjllZjIyOTU5MGFiNTM3YThm
ZjhlOGRhOGQzNmUzMjcyLi40YTk2ZTI4YWIzN2I1MWUwNjZhYWU3NTdhM2U4NTQyZGU3NGIzN2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGlu
YXRpb25Ob2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8KIAogbW9kdWxlIGF1
ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FV
RElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gQXVkaW9EZXN0aW5hdGlv
bk5vZGUgOiBBdWRpb05vZGUgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvRGVzdGluYXRpb25Ob2Rl
IDogQXVkaW9Ob2RlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbnVtYmVyT2ZD
aGFubmVsczsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9HYWluLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9HYWluLmlkbAppbmRleCA3NTk3NDI3N2QzMjRjYTdhOGNmZjYxODhjZDRhYTdjMGRi
NzYxMTI1Li45NTdiYjA3OWRlYTQ3YjE4N2E1MGUxMDlhNzcwMjE2M2JjMDk5MmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvR2Fpbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0dhaW4uaWRsCkBAIC0yNyw5ICsy
Nyw5IEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVj
dAotICAgIF0gQXVkaW9HYWluIDogQXVkaW9QYXJhbSB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9H
YWluIDogQXVkaW9QYXJhbSB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmlkbAppbmRleCBiYTMxNjNmOTQ0YTZiNjYw
NjdkYjUwYzBmMDU2N2YwMGUxOWU3ZTI0Li4zNzlhOTBmYjA4NmMzYjExY2QzMjA0NDliOWNmYjc2
MGU0NjU2NDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvR2Fpbk5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9HYWluTm9kZS5pZGwKQEAgLTIzLDExICsyMywxMSBAQAogICovCiAKIG1vZHVsZSBhdWRpbyB7
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywK
ICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIEF1ZGlvR2Fpbk5vZGUgOiBBdWRp
b05vZGUgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvR2Fpbk5vZGUgOiBBdWRpb05vZGUgewogICAg
ICAgICAvLyBGSVhNRTogZXZlbnR1YWxseSBpdCB3aWxsIGJlIGludGVyZXN0aW5nIHRvIHJlbW92
ZSB0aGUgcmVhZG9ubHkgcmVzdHJpY3Rpb24sIGJ1dCBuZWVkIHRvIHByb3Blcmx5IGRlYWwgd2l0
aCB0aHJlYWQgc2FmZXR5IGhlcmUuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0dh
aW4gZ2FpbjsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaWRsCmluZGV4IGNmNmQ4Y2ZjZTc3NTZhODM5MmQ5OTJhM2U2
ODhhMmE4ZjE3NWNlNDcuLjQyOGJjNTQ3NjA5Y2MyODM0YmI0YjA1NTcwMjk2Y2MxYWZjZTA3N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVy
LmlkbApAQCAtMjcsOSArMjcsOSBAQAogICovCiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTwotICAgIF0gQXVkaW9M
aXN0ZW5lciB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9MaXN0ZW5lciB7CiAgICAgICAgIGF0dHJp
YnV0ZSBmbG9hdCBkb3BwbGVyRmFjdG9yOyAgLy8gc2FtZSBhcyBPcGVuQUwgKGRlZmF1bHQgMS4w
KQogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgc3BlZWRPZlNvdW5kOyAgIC8vIGluIG1ldGVycyAv
IHNlY29uZCAoZGVmYXVsdCAzNDMuMykKIApAQCAtMzcsNCArMzcsNCBAQCBtb2R1bGUgYXVkaW8g
ewogICAgICAgICB2b2lkIHNldE9yaWVudGF0aW9uKGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGlu
IGZsb2F0IHosIGluIGZsb2F0IHhVcCwgaW4gZmxvYXQgeVVwLCBpbiBmbG9hdCB6VXApOwogICAg
ICAgICB2b2lkIHNldFZlbG9jaXR5KGluIGZsb2F0IHgsIGluIGZsb2F0IHksIGluIGZsb2F0IHop
OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b05vZGUuaWRsCmluZGV4IGU4NWM3NDdjNDE2OWY4NTQ3YjM1YWYwYWVhNDQxMDllYmJlZDFkZWMu
LjY4OTc2MzVmMDNhMjc2ZGQ4ZDBhOTEzY2JkNTVhZGRmZTk2NzI1YjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKQEAgLTIzLDIwICsyMywyMCBA
QAogICovCiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTwotICAgIF0gQXVkaW9Ob2RlIHsKKyAgICBdIGludGVyZmFj
ZSBBdWRpb05vZGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0IGNv
bnRleHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9m
SW5wdXRzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJP
Zk91dHB1dHM7CiAKLSAgICAgICAgdm9pZCBjb25uZWN0KGluIEF1ZGlvTm9kZT8gZGVzdGluYXRp
b24sIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgb3V0cHV0
LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGlucHV0KQor
ICAgICAgICB2b2lkIGNvbm5lY3QoaW4gQXVkaW9Ob2RlPyBkZXN0aW5hdGlvbiwgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBvdXRwdXQsIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5wdXQpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGNvbm5lY3QoaW4gQXVkaW9QYXJh
bT8gZGVzdGluYXRpb24sIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVk
IGxvbmcgb3V0cHV0KQorICAgICAgICB2b2lkIGNvbm5lY3QoaW4gQXVkaW9QYXJhbT8gZGVzdGlu
YXRpb24sIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgb3V0
cHV0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBk
aXNjb25uZWN0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcg
b3V0cHV0KQorICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gdW5zaWduZWQgbG9uZyBvdXRwdXQpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmlkbAppbmRleCA1MDYxZTc4MjUwNDJhOTg1MjE1OTVi
ZmU3MjNmODg0NTg1NTM3MjVkLi5mOWJmNTZmZGRhNzBiNjg4YzgyY2QwZmQ5ZTUyZWYzMDRjMDlj
NjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFu
bmVyTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
bm5lck5vZGUuaWRsCkBAIC0yMywxMCArMjMsMTAgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAg
ICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBBdWRpb1Bhbm5lck5vZGUgOiBBdWRp
b05vZGUgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvUGFubmVyTm9kZSA6IEF1ZGlvTm9kZSB7CiAg
ICAgICAgIC8vIFBhbm5pbmcgbW9kZWwKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRVFV
QUxQT1dFUiA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEhSVEYgPSAxOwpAQCAt
NDAsNyArNDAsNyBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICAvLyBEZWZhdWx0IG1vZGVsIGZv
ciBzdGVyZW8gaXMgSFJURiAKICAgICAgICAgLy8gRklYTUU6IHVzZSB1bnNpZ25lZCBzaG9ydCB3
aGVuIGdsdWUgZ2VuZXJhdGlvbiBzdXBwb3J0cyBpdAogICAgICAgICBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBwYW5uaW5nTW9kZWwKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8v
IFVzZXMgYSAzRCBjYXJ0ZXNpYW4gY29vcmRpbmF0ZSBzeXN0ZW0gCiAgICAgICAgIHZvaWQgc2V0
UG9zaXRpb24oaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeik7CkBAIC02Miw0ICs2
Miw0IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0dh
aW4gY29uZUdhaW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0dhaW4gZGlzdGFu
Y2VHYWluOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5pZGwKaW5kZXggZDk5NDZmODM5YWFjZTUzZjQ4NzljOGU1MzI4NTNkYmMx
YjY4MDIxMC4uMWMxOWFkMzJmYzdhYTRiM2ExOGM4YTg2OWRhYTFlMWRmOGZmYTE1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsCkBAIC0yNyw5
ICsyNyw5IEBACiAgKi8KIAogbW9kdWxlIHdlYmF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPCi0gICAgXSBBdWRpb1BhcmFtIHsKKyAg
ICBdIGludGVyZmFjZSBBdWRpb1BhcmFtIHsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVl
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgbWluVmFsdWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBtYXhWYWx1ZTsKQEAgLTU1LDQgKzU1LDQgQEAgbW9kdWxl
IHdlYmF1ZGlvIHsKICAgICAgICAgLy8gQ2FuY2VscyBhbGwgc2NoZWR1bGVkIHBhcmFtZXRlciBj
aGFuZ2VzIHdpdGggdGltZXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHN0YXJ0VGltZS4KICAg
ICAgICAgdm9pZCBjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoaW4gZmxvYXQgc3RhcnRUaW1lKTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Qcm9jZXNzaW5nRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwKaW5kZXggYjY5OTVmN2Q3YTQ5ZmViMzRkYTM1ODJl
MmY0ODZlZDk2Mzc0MWU0MC4uZTZiYzZmMDk5NzU4NzRhOGVmNjdmNjJhNDhlZjJiNzFmZTgzY2E1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nl
c3NpbmdFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1Byb2Nlc3NpbmdFdmVudC5pZGwKQEAgLTIzLDExICsyMywxMSBAQAogICovCiAKIG1vZHVsZSBh
dWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9B
VURJTywKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIEF1ZGlvUHJvY2Vzc2lu
Z0V2ZW50IDogRXZlbnQgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50IDog
RXZlbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9CdWZmZXIgaW5wdXRCdWZm
ZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb0J1ZmZlciBvdXRwdXRCdWZmZXI7
IAogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NvdXJjZU5vZGUuaWRsCmluZGV4IGVjM2MzNTY4MWU4ZTEwMjMwZDUzMzMzNWJjNmMx
MGIxYTA0ODYwMWYuLjUzOGYzYzc5ZWQyZGE5YjMzOTY5NGQ5NmNmYjJiY2ViYjk3NjYxMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Tb3VyY2VOb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU291cmNlTm9k
ZS5pZGwKQEAgLTI3LDggKzI3LDggQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8KLSAgICBdIEF1ZGlv
U291cmNlTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9Tb3VyY2VOb2Rl
IDogQXVkaW9Ob2RlIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCmluZGV4IGQxNDMwNjVkZjQxZmIy
ZmU2OTg2MDRhZmE2YTg3YmI5YjQ2YTZkNDcuLmM4MjFlN2JhYjI2MWVhNDUwODk1YjMyYjM5MjY2
ZTYzNzY5MDliMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRGaWx0ZXJOb2RlLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8KIAogbW9kdWxl
IGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VC
X0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gQmlxdWFkRmlsdGVy
Tm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQmlxdWFkRmlsdGVyTm9kZSA6IEF1
ZGlvTm9kZSB7CiAgICAgICAgIC8vIEZpbHRlciB0eXBlLgogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBMT1dQQVNTID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSElHSFBB
U1MgPSAxOwpAQCAtMzgsNyArMzgsNyBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBBTExQQVNTID0gNzsKIAogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQg
c2hvcnQgdHlwZQotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBmcmVxdWVuY3k7IC8vIGluIEhlcnR6CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIFE7IC8vIFF1YWxpdHkgZmFjdG9yCkBAIC00
OCw0ICs0OCw0IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gRmxvYXQzMkFycmF5IG1hZ1Jlc3BvbnNlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIEZsb2F0MzJBcnJheSBwaGFzZVJlc3BvbnNlKTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVy
Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
aWRsCmluZGV4IDBmNTYxZjBmZjUzZDE3Y2IwMDBhMWE4YzJjODFhMGEzNzJiZjM2OWYuLmQ4Mzg3
ZWU5NmNhYzRlZmNkYmE4MDk0MTQxZmI2ZTI5OTA4Y2IyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbApAQCAtMjQsMTEgKzI0LDEx
IEBACiAKIG1vZHVsZSBhdWRpbyB7CiAgICAgLy8gQSBsaW5lYXIgY29udm9sdXRpb24gZWZmZWN0
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywK
ICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIENvbnZvbHZlck5vZGUgOiBBdWRp
b05vZGUgewotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tU2V0dGVyXSBBdWRpb0J1ZmZlciBi
dWZmZXI7CisgICAgXSBpbnRlcmZhY2UgQ29udm9sdmVyTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAg
ICAgIFtKU0N1c3RvbVNldHRlcl0gYXR0cmlidXRlIEF1ZGlvQnVmZmVyIGJ1ZmZlcjsKICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gbm9ybWFsaXplOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbApp
bmRleCBjYThlNTBlNWY5MDFjMzYwMjhjYjM2ODA4NGZhODlkZjBjMGFlOTQ2Li4wYTAyNGUzNmIz
ZjM0Mzg4ZjdlYTNmNzQyMTcxZWU4ZTJhMDlkNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbApAQCAtMjYsMTYgKzI2
LDE2IEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKICAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRv
dwotICAgIF0gRE9NV2luZG93V2ViQXVkaW8geworICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvd1dl
YkF1ZGlvIHsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKLSAg
ICAgICAgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRlciwgVjhFbmFibGVkQXRSdW50aW1lXSBBdWRp
b0NvbnRleHRDb25zdHJ1Y3RvciB3ZWJraXRBdWRpb0NvbnRleHQ7CisgICAgICAgIFtKU0N1c3Rv
bUdldHRlciwgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgQXVkaW9Db250ZXh0Q29uc3Ry
dWN0b3Igd2Via2l0QXVkaW9Db250ZXh0OwogICAgICAgICBhdHRyaWJ1dGUgQXVkaW9QYW5uZXJO
b2RlQ29uc3RydWN0b3Igd2Via2l0QXVkaW9QYW5uZXJOb2RlOwogICAgICAgICBhdHRyaWJ1dGUg
QXVkaW9Qcm9jZXNzaW5nRXZlbnRDb25zdHJ1Y3RvciBBdWRpb1Byb2Nlc3NpbmdFdmVudDsKICAg
ICAgICAgYXR0cmlidXRlIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudENvbnN0cnVjdG9yIE9m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudDsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5pZGwKaW5kZXggYTIxYWMz
MDk1OWVlMGUzZWY2MzZlNmM3ZDRiNDljNGEyYzhlZTgzMy4uZjg2OTg3ZmIzYTM0ZGY4OTZkZDRl
NzVmMTkwYTA3YWFhODA5YThiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVsYXlOb2RlLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8KIAogbW9kdWxlIGF1ZGlv
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElP
LAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gRGVsYXlOb2RlIDogQXVkaW9O
b2RlIHsKKyAgICBdIGludGVyZmFjZSBEZWxheU5vZGUgOiBBdWRpb05vZGUgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBkZWxheVRpbWU7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJl
c3Nvck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0Nv
bXByZXNzb3JOb2RlLmlkbAppbmRleCBhMmUzNTY1NmJlZDNlYzYzMmJkODk4NzcwMWM1YTViNTIx
M2IwOWRlLi42Mzk3MTg3YTBjNWFjYWNjNTcyZTA1MGI5MjhmODQ1MTk3NzQ1ZjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5v
ZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21w
cmVzc29yTm9kZS5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICovCiAKIG1vZHVsZSBhdWRpbyB7
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywK
ICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIER5bmFtaWNzQ29tcHJlc3Nvck5v
ZGUgOiBBdWRpb05vZGUgeworICAgIF0gaW50ZXJmYWNlIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUg
OiBBdWRpb05vZGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSB0aHJl
c2hvbGQ7IC8vIGluIERlY2liZWxzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1Bh
cmFtIGtuZWU7IC8vIGluIERlY2liZWxzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRp
b1BhcmFtIHJhdGlvOyAvLyB1bml0LWxlc3MKQEAgLTM0LDQgKzM0LDQgQEAgbW9kdWxlIGF1ZGlv
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gYXR0YWNrOyAvLyBpbiBT
ZWNvbmRzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIHJlbGVhc2U7IC8v
IGluIFNlY29uZHMKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vSmF2YVNjcmlwdEF1ZGlvTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0phdmFTY3JpcHRBdWRpb05vZGUuaWRsCmluZGV4IDk3ZGEwYzE2ZDMz
Y2FjODJjOWJhNzIzZjA1NTUzMTI0MjZlZTdhNjguLjAyM2ZhMjY2YWYwOTY5MjBkNjNiMzhmNzMy
MmQyZTAzNjlkNGNhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vSmF2YVNjcmlwdEF1ZGlvTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmlkbApAQCAtMjQsMTUgKzI0LDE1IEBACiAKIG1v
ZHVsZSBhdWRpbyB7CiAgICAgLy8gRm9yIHJlYWwtdGltZSBhdWRpbyBzdHJlYW0gc3ludGhlc2lz
L3Byb2Nlc3NpbmcgaW4gSmF2YVNjcmlwdCAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwK
ICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAg
XSBKYXZhU2NyaXB0QXVkaW9Ob2RlIDogQXVkaW9Ob2RlIHsKKyAgICBdIGludGVyZmFjZSBKYXZh
U2NyaXB0QXVkaW9Ob2RlIDogQXVkaW9Ob2RlIHsKICAgICAgICAgLy8gUmVuZGVyaW5nIGNhbGxi
YWNrCiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYXVkaW9wcm9jZXNzOwogICAg
ICAgICAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYnVmZmVyU2l6ZTsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbAppbmRleCBmMDllOThmZWFiMDYy
NjIxNWUxYjJhYTQ1ZGEyZmJmNWM4OTAxMzk1Li44Y2M4OTc1ZTY0YTczOTlmMTcxMmFiMWFlZDhk
MDE1OWZmNGIyODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsCkBAIC0yMywxMCAr
MjMsMTAgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8mVklERU8sCiAgICAgICAgIEpTR2VuZXJhdGVU
b0pTT2JqZWN0Ci0gICAgXSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUgOiBBdWRpb1NvdXJj
ZU5vZGUgeworICAgIF0gaW50ZXJmYWNlIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZSA6IEF1
ZGlvU291cmNlTm9kZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MTWVkaWFFbGVt
ZW50IG1lZGlhRWxlbWVudDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50
LmlkbAppbmRleCA0ZWY2OTM5MTc5MzIzMmM0MTI4Mzg4NmY3MjExZDE2ZmJlMjhiNmRkLi40NDJk
N2ExYTEwM2U4N2Q0ZTY2NjJiMjM0MmQ4ZGJjZDg4OWU5NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuaWRsCkBAIC0yMywxMCArMjMsMTAgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAg
ICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQgOiBFdmVudCB7CisgICAgXSBpbnRlcmZhY2UgT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2
ZW50IDogRXZlbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9CdWZmZXIgcmVu
ZGVyZWRCdWZmZXI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9Pc2NpbGxhdG9yLmlkbAppbmRleCBmYjY4ZTQwMWMxMzQxZTQ2OWE2YTI2ODJjOTY3
NjdjMWM5MjRjM2Q4Li5jMGRhZjU3NGEwNWQ0NGI0MTE1NmVhOTEyMjdiYjQ4MmNjZWM0N2I4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3IuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvci5pZGwKQEAg
LTI0LDEwICsyNCwxMCBAQAogCiBtb2R1bGUgYXVkaW8gewogICAgIC8vIE9zY2lsbGF0b3IgaXMg
YW4gYXVkaW8gZ2VuZXJhdG9yIG9mIHBlcmlvZGljIHdhdmVmb3Jtcy4KLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVy
YXRlVG9KU09iamVjdAotICAgIF0gT3NjaWxsYXRvciA6IEF1ZGlvU291cmNlTm9kZSB7CisgICAg
XSBpbnRlcmZhY2UgT3NjaWxsYXRvciA6IEF1ZGlvU291cmNlTm9kZSB7CiAKICAgICAgICAgLy8g
VHlwZSBjb25zdGFudHMuCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNJTkUgPSAwOwpA
QCAtNTQsNCArNTQsNCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICB2b2lkIHNldFdhdmVUYWJs
ZShpbiBXYXZlVGFibGUgd2F2ZVRhYmxlKTsKIAogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyTm9kZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlk
bAppbmRleCBkYzJkYjgwNGZmNTBiMTE3MDFlNTQ3OThkNDZhMGYwZjdiMTY0YzJjLi41YzI5ZmFl
NTRkOWI2NTM4MTRjNTRkMDA1ODllYzMyMmEwNzAxM2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXJOb2RlLmlkbApAQCAt
MjMsMTIgKzIzLDEyIEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRl
VG9KU09iamVjdAotICAgIF0gUmVhbHRpbWVBbmFseXNlck5vZGUgOiBBdWRpb05vZGUgeworICAg
IF0gaW50ZXJmYWNlIFJlYWx0aW1lQW5hbHlzZXJOb2RlIDogQXVkaW9Ob2RlIHsKICAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgZmZ0U2l6ZQotICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGZyZXF1ZW5jeUJpbkNvdW50
OwogCiAgICAgICAgIC8vIG1pbkRlY2liZWxzIC8gbWF4RGVjaWJlbHMgcmVwcmVzZW50IHRoZSBy
YW5nZSB0byBzY2FsZSB0aGUgRkZUIGFuYWx5c2lzIGRhdGEgZm9yIGNvbnZlcnNpb24gdG8gdW5z
aWduZWQgYnl0ZSB2YWx1ZXMuCkBAIC00Niw0ICs0Niw0IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAg
ICAgIC8vIFJlYWwtdGltZSB3YXZlZm9ybSBkYXRhCiAgICAgICAgIHZvaWQgZ2V0Qnl0ZVRpbWVE
b21haW5EYXRhKGluIFVpbnQ4QXJyYXkgYXJyYXkpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbAppbmRleCAx
NmE0YWNmN2MxNWUzZDg2MWQwNWM5NzlmOTY2ZTY1ZWQ0MTQyNDZmLi4xZjY0NWZiNjc1ZjMwZmRl
ZjIyMmMzMDUyZDM3MTgxMjNmMjU3NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8K
IAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gV2F2
ZVNoYXBlck5vZGUgOiBBdWRpb05vZGUgewotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tU2V0
dGVyXSBGbG9hdDMyQXJyYXkgY3VydmU7CisgICAgXSBpbnRlcmZhY2UgV2F2ZVNoYXBlck5vZGUg
OiBBdWRpb05vZGUgeworICAgICAgICBbSlNDdXN0b21TZXR0ZXJdIGF0dHJpYnV0ZSBGbG9hdDMy
QXJyYXkgY3VydmU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1dhdmVUYWJsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVUYWJsZS5pZGwKaW5kZXggMjI0MDNjMzAwMjY1ZDY1NDAzZTQ5MDZlNTAzMmQ2
YjczZGQ2NmMwOC4uZGEzY2JiNTE3ZTM2NjAyODU5YzdiNzcyZTRlMDllMGI5OWYyMmJiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlVGFibGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmlkbApAQCAtMjQs
OSArMjQsOSBAQAogCiBtb2R1bGUgYXVkaW8gewogICAgIC8vIFdhdmVUYWJsZSByZXByZXNlbnRz
IGEgcGVyaW9kaWMgYXVkaW8gd2F2ZWZvcm0gZ2l2ZW4gYnkgaXRzIEZvdXJpZXIgY29lZmZpY2ll
bnRzLgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVE
SU8KLSAgICBdIFdhdmVUYWJsZSB7CisgICAgXSBpbnRlcmZhY2UgV2F2ZVRhYmxlIHsKIAogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbAppbmRleCBkODVhYWQ3Mjg4OTRkYWM1ZTYy
YzI0YWViNTU0Mjc4ZGFkNDFlOTY1Li4yY2ViOTNkM2NjOGVkNTM5Zjc0NTNiNDhlY2ZmOTgwZDUx
ZGVkNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbApAQCAtMjYsMTUgKzI2LDE1IEBACiAKIG1v
ZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdwotICAgIF0g
RE9NV2luZG93V2ViRGF0YWJhc2UgewotICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRh
YmFzZSBvcGVuRGF0YWJhc2UoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyB2ZXJzaW9u
LCBpbiBET01TdHJpbmcgZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6
ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxi
YWNrKQorICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvd1dlYkRhdGFiYXNlIHsKKyAgICAgICAgW1Y4
RW5hYmxlZEF0UnVudGltZV0gRGF0YWJhc2Ugb3BlbkRhdGFiYXNlKGluIERPTVN0cmluZyBuYW1l
LCBpbiBET01TdHJpbmcgdmVyc2lvbiwgaW4gRE9NU3RyaW5nIGRpc3BsYXlOYW1lLCBpbiB1bnNp
Z25lZCBsb25nIGVzdGltYXRlZFNpemUsIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIERhdGFiYXNl
Q2FsbGJhY2sgY3JlYXRpb25DYWxsYmFjaykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAogICAgICAg
ICBhdHRyaWJ1dGUgU1FMRXhjZXB0aW9uQ29uc3RydWN0b3IgU1FMRXhjZXB0aW9uOwogI2VuZGlm
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZS5pZGwKaW5kZXggZGRjNTQ0YTg2ODlhYmNjYmE5MDA0YzQ4MWY4MDg0NTcyZGJj
YzNhYy4uYTkyYmU4YjczZjU0MWJjMzczMWM0YjlmODQzNTU5ODAxMzY4YmRlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwKQEAgLTI4LDE1
ICsyOCwxNSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBPbWl0Q29uc3RydWN0
b3IsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERhdGFiYXNlIHsKKyAgICBdIGlu
dGVyZmFjZSBEYXRhYmFzZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dmVyc2lvbjsKLSAgICAgICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJz
aW9uLCBpbiBET01TdHJpbmcgbmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FM
VHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FM
VHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssIGluIFtDYWxsYmFjaywgT3B0
aW9uYWxdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2spOwotICAgICAgICB2b2lkIHRyYW5z
YWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgaW4g
W0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2Fs
bGJhY2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2spOwotICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFNRTFRyYW5z
YWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFs
XSBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBjaGFuZ2VWZXJz
aW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01TdHJpbmcgbmV3VmVyc2lvbiwgW0Nh
bGxiYWNrLCBPcHRpb25hbF0gaW4gU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgW0Nh
bGxiYWNrLCBPcHRpb25hbF0gaW4gU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2Fs
bGJhY2ssIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2spOworICAgICAgICB2b2lkIHRyYW5zYWN0aW9uKFtDYWxsYmFja10gaW4gU1FMVHJhbnNhY3Rp
b25DYWxsYmFjayBjYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gU1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFZv
aWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2spOworICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlv
bihbQ2FsbGJhY2tdIGluIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgY2FsbGJhY2ssIFtDYWxsYmFj
aywgT3B0aW9uYWxdIGluIFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
LCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrKTsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VDYWxsYmFjay5pZGwKaW5kZXggOGQzMTY0ODRiNzUzNjZmYjVkYjAw
NjJkMjJmZThmNzhmNDA4MGFmYS4uY2Y3ODA4ZDgxMWMzZDk0MmNkYWU5M2Y1ZGVhYjljYTg1Yzcx
NDIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZUNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ2FsbGJhY2suaWRsCkBAIC0yNywxMSArMjcsMTEgQEAKICAqLwogCiBtb2R1bGUg
c3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNR
TF9EQVRBQkFTRSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIERhdGFiYXNlQ2FsbGJhY2sgewor
ICAgIF0gaW50ZXJmYWNlIERhdGFiYXNlQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRs
ZUV2ZW50KGluIERhdGFiYXNlIGRhdGFiYXNlKTsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChpbiBEYXRhYmFzZVN5bmMgZGF0YWJhc2UpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVN5bmMuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVN5bmMuaWRsCmluZGV4IGNm
YjBiNTkwYzVhMTVjYTUzMGMwN2NhNmFjMjEyZWVhMTdhNzJkYTUuLjExYmY4ZDcwOGNlNThiN2Ri
MjBiYmU1ZWE4OGMyNTMwNDEyY2EzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlU3luYy5pZGwKQEAgLTMwLDE2ICszMCwxNiBAQAogCiBt
b2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEpT
Tm9TdGF0aWNUYWJsZXMKLSAgICBdIERhdGFiYXNlU3luYyB7CisgICAgXSBpbnRlcmZhY2UgRGF0
YWJhc2VTeW5jIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9u
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RFcnJvck1lc3NhZ2U7
Ci0gICAgICAgIHZvaWQgY2hhbmdlVmVyc2lvbihpbiBET01TdHJpbmcgb2xkVmVyc2lvbiwgaW4g
RE9NU3RyaW5nIG5ld1ZlcnNpb24sIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIFNRTFRyYW5zYWN0
aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dm9pZCB0cmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNr
IGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCByZWFkVHJhbnNh
Y3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFjaykg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgY2hhbmdlVmVyc2lvbihpbiBET01T
dHJpbmcgb2xkVmVyc2lvbiwgaW4gRE9NU3RyaW5nIG5ld1ZlcnNpb24sIFtDYWxsYmFjaywgT3B0
aW9uYWxdIGluIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCB0cmFuc2FjdGlvbihbQ2FsbGJhY2tdIGluIFNRTFRy
YW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oW0NhbGxiYWNrXSBpbiBTUUxUcmFuc2FjdGlvblN5
bmNDYWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJy
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5pZGwK
aW5kZXggYWQ4NDc1OThhZWFhM2ZlMWYyMTM0MDI1ZGZmNGNkMWM5NDdkZTRlNC4uNTExMzNiODQ4
Yzg1NDgzZjg5N2IzODI2NzZlODFiNGJhOWVkYzkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5pZGwKQEAgLTI4LDExICsyOCwxMSBAQAogCiBt
b2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEpT
Tm9TdGF0aWNUYWJsZXMKLSAgICBdIFNRTEVycm9yIHsKKyAgICBdIGludGVyZmFjZSBTUUxFcnJv
ciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNvZGU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKIApAQCAtNDYsNCArNDYs
NCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNU
UkFJTlRfRVJSID0gNjsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIg
PSA3OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxFeGNlcHRpb24uaWRsCmluZGV4IDg1NmU1Y2Q0NzU3MGEzYzY5Y2MzYWIzMzZj
NjgwOTkzM2I1ZDdhMGIuLmM4NmMxZDg2NDdhOWZhNTJlNjZmNzc5OTMxMzIyN2QyNDk2NTRkYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXhjZXB0
aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2Vw
dGlvbi5pZGwKQEAgLTMwLDExICszMCwxMSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBl
eGNlcHRpb24gWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAg
ICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAg
XSBTUUxFeGNlcHRpb24geworICAgIF0gZXhjZXB0aW9uIFNRTEV4Y2VwdGlvbiB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKIApAQCAtNDgsNCArNDgsNCBAQCBtb2R1bGUg
c3RvcmFnZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0g
NjsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIgPSA3OwogICAgIH07
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxSZXN1bHRTZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxS
ZXN1bHRTZXQuaWRsCmluZGV4IDYwNjkyY2JlYWMxZDRiN2RiYWM3YTA3MGRlZTFjZGFkOWVmN2Ji
YzYuLjJmNjU2OWYzZmU4ZjBkN2ExOTY2NTNjM2I3Y2E4ZWUzNmIzMzUxNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldC5pZGwKQEAg
LTI4LDIxICsyOCwyMSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBPbWl0Q29u
c3RydWN0b3IsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFNRTFJlc3VsdFNldCB7
CisgICAgXSBpbnRlcmZhY2UgU1FMUmVzdWx0U2V0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNRTFJlc3VsdFNldFJvd0xpc3Qgcm93czsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQ
UCkgfHwgIUxBTkdVQUdFX0NQUAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBpbnNl
cnRJZAotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAg
ICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICAvLyBFeHBsaWNpdGVs
eSBjaG9vc2UgJ2xvbmcgbG9uZycgaGVyZSB0byBhdm9pZCBhIDY0Yml0LT4zMmJpdCBzaG9ydGVu
aW5nIHdhcm5pbmcgZm9yIHVzLgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsb25n
IGluc2VydElkCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyByb3dzQWZmZWN0ZWQ7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxSZXN1bHRTZXRSb3dM
aXN0LmlkbAppbmRleCBiYTBjYjRjZjc2N2VlOGZhNjYyYmI1ZGM0N2I2MjhiYzczNGEzN2ExLi45
NzIwMjZmZTJmMmJiOTE2OTU4MzY2NjRjNmExMDA1MTk4ZmJhYmE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0Um93TGlz
dC5pZGwKQEAgLTI4LDEyICsyOCwxMiBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAg
ICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFNRTFJl
c3VsdFNldFJvd0xpc3QgeworICAgIF0gaW50ZXJmYWNlIFNRTFJlc3VsdFNldFJvd0xpc3Qgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAg
IFtDdXN0b21dIERPTU9iamVjdCBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxTdGF0ZW1lbnRDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbAppbmRleCBjMzA1M2MwZWUzM2M3MGRkOWY4MTA0
Mzk0NGRiMDJkYTQ3YzBjMTcyLi4yMDdkMWFjZGU1MmM0ZDhmMzg2MGZkMDdjOTYwYzYyYmYxNDM4
YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudENhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbApAQCAtMjcsMTAgKzI3LDEwIEBACiAgKi8KIAog
bW9kdWxlIHN0b3JhZ2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBTUUxTdGF0ZW1lbnRD
YWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgU1FMU3RhdGVtZW50Q2FsbGJhY2sgewogICAgICAg
ICBib29sZWFuIGhhbmRsZUV2ZW50KGluIFNRTFRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uLCBpbiBT
UUxSZXN1bHRTZXQgcmVzdWx0U2V0KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEVycm9y
Q2FsbGJhY2suaWRsCmluZGV4IDFmYzk2Y2IwYTVjY2VkNDkwYWU5ZGJhMDdhZWJiYjhkZjZmMDAx
ZjUuLjNlNDdiMzJlMDhiNDRlZWQ4OTFiODY4ZjI5ZmYwY2I4YTVlYzRjOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50RXJyb3JDYWxs
YmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrLmlkbApAQCAtMjcsMTAgKzI3LDEwIEBACiAgKi8KIAogbW9kdWxl
IHN0b3JhZ2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
UUxfREFUQUJBU0UsCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBTUUxTdGF0ZW1lbnRFcnJvckNh
bGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrIHsKICAg
ICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChpbiBTUUxUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbiwgaW4gU1FMRXJyb3IgZXJyb3IpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbAppbmRl
eCBmMDk5NGExZjgxYjQ0NDQzYTkwN2MxMzBhZTliMjJlZTk4OThlNTE5Li5kZWQzMmM2NTlmNzk0
NmVhOTdiOTRiNTI2ZTczZWYwMmI1YTViM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmlkbApAQCAtMjgsMTQgKzI4LDE0
IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAg
ICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gU1FMVHJhbnNhY3Rpb24geworICAgIF0gaW50
ZXJmYWNlIFNRTFRyYW5zYWN0aW9uIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBleGVjdXRlU3Fs
KGluIERPTVN0cmluZyBzcWxTdGF0ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBPYmplY3RBcnJheSBhcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBTUUxTdGF0ZW1lbnRDYWxsYmFjayBjYWxs
YmFjaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbCwgQ2Fs
bGJhY2tdIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBTUUxTdGF0
ZW1lbnRDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbCwgQ2FsbGJhY2tdIGluIFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgZXJyb3JD
YWxsYmFjayk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbAppbmRleCAx
YjUwYmVlMmZmNTQ0NGFlYjQzM2QyZGY1YzM3YjY5MDMyYzUwNTY3Li5mMDU5Nzg2YzQ0ZWY3MWYz
OTBmNGNjMzk5Yjk0NWMwYTZhYWU4YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFjay5pZGwKQEAg
LTI3LDEwICsyNywxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBDYWxs
YmFjawotICAgIF0gU1FMVHJhbnNhY3Rpb25DYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgU1FM
VHJhbnNhY3Rpb25DYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU1FM
VHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJh
Y2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2suaWRsCmluZGV4IGY2ZWMxNTY0MTkxODM4ODRkYTBlMDg1YzM2MGMwNTc0
MDQ0ZTAzM2YuLmQ4ZTk3YzY0YmUwMDc1NDMxYmYyNDQwNDZmZGNhODBkNmI1MzIwZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25F
cnJvckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwKQEAgLTI3LDEwICsyNywxMCBAQAogICov
CiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBDYWxsYmFjawotICAgIF0gU1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIFNRTEVycm9yIGVycm9y
KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jLmlkbAppbmRleCBlNWJkZWRmMDFlYzExNzJl
MDAzY2M5NTc5OTMwYWYyMGMxMDU3MDAzLi5mNTNlMjM2MWI5MzljOTc0NDMyOTViYWQyZTMyNTZh
ZWIyMWIzYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uU3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmMuaWRsCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogbW9k
dWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAgT21pdENvbnN0cnVjdG9yLAogICAgICAgICBKU05v
U3RhdGljVGFibGVzCi0gICAgXSBTUUxUcmFuc2FjdGlvblN5bmMgeworICAgIF0gaW50ZXJmYWNl
IFNRTFRyYW5zYWN0aW9uU3luYyB7CiAgICAgICAgIFtDdXN0b21dIFNRTFJlc3VsdFNldCBleGVj
dXRlU3FsKGluIERPTVN0cmluZyBzcWxTdGF0ZW1lbnQsIGluIE9iamVjdEFycmF5IGFyZ3VtZW50
cyk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaWRsCmluZGV4
IGVhMjJlNWYyOTA4NGM4YjY2ODM2Yzg1ZWVlNDkyMjk2ZTA2MTI3ZjcuLmIzODc4OWFmZWM2N2Uw
NzA5MTgyYzQ1YmJiMWU4ZWY3YWI2ZDFmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJh
Y2suaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNRTF9EQVRBQkFTRSwKICAg
ICAgICAgQ2FsbGJhY2sKLSAgICBdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIHsKKyAgICBd
IGludGVyZmFjZSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4g
aGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rpb25TeW5jIHRyYW5zYWN0aW9uKTsKICAgICB9Owot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvV29y
a2VyQ29udGV4dFdlYkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvV29ya2VyQ29udGV4dFdlYkRhdGFiYXNlLmlkbAppbmRleCA4MGViOTQyY2IxOTI3OThm
ZmU2YWJlZjkxNGU0Nzk4YmJmYTQ5NmExLi5kNDNlMmVkYWI2OGExYjc1NTc5MjY3ZDgwNzUyOWM2
ZDQ3YTg4OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1dvcmtlckNvbnRleHRXZWJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9Xb3JrZXJDb250ZXh0V2ViRGF0YWJhc2UuaWRsCkBAIC0yNiwxNSArMjYs
MTUgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBTdXBwbGVtZW50YWw9V29ya2Vy
Q29udGV4dAotICAgIF0gV29ya2VyQ29udGV4dFdlYkRhdGFiYXNlIHsKLSAgICAgICAgW1Y4RW5h
YmxlZEF0UnVudGltZV0gRGF0YWJhc2Ugb3BlbkRhdGFiYXNlKGluIERPTVN0cmluZyBuYW1lLCBp
biBET01TdHJpbmcgdmVyc2lvbiwgaW4gRE9NU3RyaW5nIGRpc3BsYXlOYW1lLCBpbiB1bnNpZ25l
ZCBsb25nIGVzdGltYXRlZFNpemUsIGluIFtDYWxsYmFjaywgT3B0aW9uYWxdIERhdGFiYXNlQ2Fs
bGJhY2sgY3JlYXRpb25DYWxsYmFjaykKKyAgICBdIGludGVyZmFjZSBXb3JrZXJDb250ZXh0V2Vi
RGF0YWJhc2UgeworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRhYmFzZSBvcGVuRGF0
YWJhc2UoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJp
bmcgZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgW0NhbGxiYWNr
LCBPcHRpb25hbF0gaW4gRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNrKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZV0gRGF0YWJhc2VTeW5jIG9wZW5EYXRhYmFzZVN5bmMoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERP
TVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJpbmcgZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxv
bmcgZXN0aW1hdGVkU2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRGF0YWJhc2VDYWxsYmFj
ayBjcmVhdGlvbkNhbGxiYWNrKQorICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRhYmFz
ZVN5bmMgb3BlbkRhdGFiYXNlU3luYyhpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIHZl
cnNpb24sIGluIERPTVN0cmluZyBkaXNwbGF5TmFtZSwgaW4gdW5zaWduZWQgbG9uZyBlc3RpbWF0
ZWRTaXplLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBEYXRhYmFzZUNhbGxiYWNrIGNyZWF0aW9u
Q2FsbGJhY2spCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3Nl
RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsCmluZGV4IGVhNzUxMTFhYzM2MjIwYzFjZGVlY2Y0ZWU1OTEyYjgyZTE3ZDVlMjIuLjkwYTZl
YjdhNzQ4NTdjMzJjOGJiNjI4YmU5ODBjZmFkMGQxN2RkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKQEAgLTMwLDEzICszMCwxMyBA
QAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBK
U05vU3RhdGljVGFibGVzLAogICAgICAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50Ci0gICAg
XSBDbG9zZUV2ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBib29sZWFuIHdhc0NsZWFuOwotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSB1bnNpZ25lZCBz
aG9ydCBjb2RlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yXSBET01TdHJpbmcgcmVhc29uOworICAgIF0gaW50ZXJmYWNlIENsb3NlRXZl
bnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2FzQ2xlYW47CisgICAgICAgIFtJbml0aWFsaXplZEJ5
RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7
CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyByZWFzb247CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9ET01XaW5kb3dXZWJTb2NrZXQuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGwKaW5k
ZXggMmI1ZmNhOGJiYzE1Y2MwMWJjZGFiYjc5NjY2YTlmNjcyZTk3ZjE0Yi4uMjdiYzcwZWFlNTll
YTU1M2Y3MDM3MDIzNjI4Zjc0NDBkMDk0Yzg3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGwKQEAgLTI2LDE0
ICsyNiwxNCBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1XRUJfU09DS0VUUywKICAgICAgICAgU3VwcGxlbWVudGFsPURP
TVdpbmRvdwotICAgIF0gRE9NV2luZG93V2ViU29ja2V0IHsKKyAgICBdIGludGVyZmFjZSBET01X
aW5kb3dXZWJTb2NrZXQgewogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdF
X0NQUAogICAgICAgICBhdHRyaWJ1dGUgQ2xvc2VFdmVudENvbnN0cnVjdG9yIENsb3NlRXZlbnQ7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbSlNDdXN0b21HZXR0ZXIsIFY4RW5hYmxlZEF0UnVudGltZV0g
V2ViU29ja2V0Q29uc3RydWN0b3IgV2ViU29ja2V0OyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9w
ZXJhdG9yCisgICAgICAgIFtKU0N1c3RvbUdldHRlciwgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRy
aWJ1dGUgV2ViU29ja2V0Q29uc3RydWN0b3IgV2ViU29ja2V0OyAvLyBVc2FibGUgd2l0aCB0aGUg
bmV3IG9wZXJhdG9yCiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAppbmRleCA5MjgzNWFlNDM1YjU1ODc5
MjM5YmYzYzQxYzM5NzI4MzAzZjJkZTcxLi5iYTU1YjgxZjYwZDFiOGQ4YTNhZTMyY2RlODUzMmJm
YTVmM2M2YjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmlkbApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG1vZHVsZSB3ZWJzb2NrZXRzIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfU09DS0VUUywK
ICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAg
ICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAg
ICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBXZWJTb2NrZXQgeworICAgIF0gaW50ZXJmYWNl
IFdlYlNvY2tldCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOyAv
LyBMb3dlcmNhc2VkIC51cmwgaXMgdGhlIG9uZSBpbiB0aGUgc3BlYywgYnV0IGxlYXZpbmcgLlVS
TCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHVybDsKIApAQCAtNTcsMTEgKzU3LDExIEBAIG1vZHVsZSB3ZWJzb2NrZXRzIHsK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25jbG9zZTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBET01TdHJpbmcgcHJvdG9jb2w7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1V
bmRlZmluZWRdIERPTVN0cmluZyBleHRlbnNpb25zOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51
bGxTdHJpbmdBcz1VbmRlZmluZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvdG9j
b2w7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBleHRlbnNpb25zOwogCi0gICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIERPTVN0cmluZyBiaW5hcnlUeXBl
Ci0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gYXR0cmlidXRlIERPTVN0cmluZyBiaW5h
cnlUeXBlCisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyBGSVhNRTogVXNlIG92ZXJsb2FkaW5nIHByb3ZpZGVkIGJ5IG91ciBJREwgY29kZSBnZW5lcmF0
b3IuCiAgICAgICAgIC8vIEFjY29yZGluZyB0byBXZWIgSURMIHNwZWNpZmljYXRpb24sIG92ZXJs
b2FkZWQgZnVuY3Rpb24gd2l0aCBET01TdHJpbmcgYXJndW1lbnQKQEAgLTc0LDE2ICs3NCwxNiBA
QCBtb2R1bGUgd2Vic29ja2V0cyB7CiAgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gc2VuZChpbiBE
T01TdHJpbmcgZGF0YSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRklYTUU6
IEltcGxlbWVudCBhbmQgYXBwbHkgW0NsYW1wXSBhdHRyaWJ1dGUgaW5zdGVhZCBvZiBbQ3VzdG9t
XS4KLSAgICAgICAgW0N1c3RvbV0gdm9pZCBjbG9zZShpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIHNo
b3J0IGNvZGUsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHJlYXNvbikgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIFtDdXN0b21dIHZvaWQgY2xvc2UoW09wdGlvbmFsXSBpbiB1bnNpZ25l
ZCBzaG9ydCBjb2RlLCBbT3B0aW9uYWxdIGluIERPTVN0cmluZyByZWFzb24pIHJhaXNlcyhET01F
eGNlcHRpb24pOwogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2
b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUp
OwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFu
IHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
XSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQo
aW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbAppbmRleCA5Y2QyNTI0NTU3OWUxMDFmYWIx
ODk0NWUyYmM2MWRhZWJjY2Q5OGUyLi5mODcxMmQ2YTY3YThmMWY4YWI0NzAyOGY1MmE0MzAxZDUy
YzNkOTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyQ29udGV4dFdlYlNvY2tldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAog
bW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9V0VCX1NPQ0tFVFMsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1Xb3JrZXJDb250ZXh0Ci0g
ICAgXSBXb3JrZXJDb250ZXh0V2ViU29ja2V0IHsKLSAgICAgICAgYXR0cmlidXRlIFtKU0N1c3Rv
bUdldHRlcixWOEVuYWJsZWRBdFJ1bnRpbWVdIFdlYlNvY2tldENvbnN0cnVjdG9yIFdlYlNvY2tl
dDsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgorICAgIF0gaW50ZXJmYWNlIFdvcmtl
ckNvbnRleHRXZWJTb2NrZXQgeworICAgICAgICBbSlNDdXN0b21HZXR0ZXIsVjhFbmFibGVkQXRS
dW50aW1lXSBhdHRyaWJ1dGUgV2ViU29ja2V0Q29uc3RydWN0b3IgV2ViU29ja2V0OyAvLyBVc2Fi
bGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9yCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KaW5kZXggYWYwMmM2NGJiNDEzZjQ5NDFi
NzE5N2RlMzYzNTg0YzRmMGE2NTY1Ni4uOGQ3MTQ5N2UyMTc3MzM0YmEyNGY2MDFhMGYzY2FhM2Ew
ZDdiZjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIu
cG0KQEAgLTIxLDQ0OSArMjEsMTcyMiBAQAogCiBwYWNrYWdlIElETFBhcnNlcjsKIAordXNlIENs
YXNzOjpTdHJ1Y3Q7CisKIHVzZSBzdHJpY3Q7Ci11c2UgcmUgJ2V2YWwnOwogCiB1c2UgSVBDOjpP
cGVuMjsKIHVzZSBJRExTdHJ1Y3R1cmU7CiB1c2UgcHJlcHJvY2Vzc29yOwogCi11c2UgY29uc3Rh
bnQgTU9ERV9VTkRFRiAgICA9PiAwOyAjIERlZmF1bHQgbW9kZS4KLQotdXNlIGNvbnN0YW50IE1P
REVfTU9EVUxFICA9PiAxMDsgIyAnbW9kdWxlJyBzZWN0aW9uCi11c2UgY29uc3RhbnQgTU9ERV9J
TlRFUkZBQ0UgID0+IDExOyAjICdpbnRlcmZhY2UnIHNlY3Rpb24KLXVzZSBjb25zdGFudCBNT0RF
X0VYQ0VQVElPTiAgPT4gMTI7ICMgJ2V4Y2VwdGlvbicgc2VjdGlvbgotCi0jIEhlbHBlciB2YXJp
YWJsZXMKLW15IEB0ZW1wb3JhcnlDb250ZW50OwotCi1teSAkcGFyc2VNb2RlOwotbXkgJHByZXNl
cnZlZFBhcnNlTW9kZTsKLQotbXkgJGJlUXVpZXQ7ICMgU2hvdWxkIG5vdCBkaXNwbGF5IGFueXRo
aW5nIG9uIFNURE9VVD8KLW15ICRkb2N1bWVudDsgIyBXaWxsIGhvbGQgdGhlIHJlc3VsdGluZyAn
aWRsRG9jdW1lbnQnCi1teSAkcGFyZW50c09ubHk7ICMgSWYgMSwgcGFyc2Ugb25seSBlbm91Z2gg
dG8gcG9wdWxhdGUgcGFyZW50cyBsaXN0Cit1c2UgY29uc3RhbnQgU3RyaW5nVG9rZW4gPT4gMDsK
K3VzZSBjb25zdGFudCBJbnRlZ2VyVG9rZW4gPT4gMTsKK3VzZSBjb25zdGFudCBGbG9hdFRva2Vu
ID0+IDI7Cit1c2UgY29uc3RhbnQgSWRlbnRpZmllclRva2VuID0+IDM7Cit1c2UgY29uc3RhbnQg
T3RoZXJUb2tlbiA9PiA0OwordXNlIGNvbnN0YW50IEVtcHR5VG9rZW4gPT4gNTsKIAotc3ViIElu
aXRpYWxpemVHbG9iYWxEYXRhCi17Ci0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKK3VzZSBj
b25zdGFudCBUcnVlID0+IDE7Cit1c2UgY29uc3RhbnQgRmFsc2UgPT4gMDsKIAotICAgICRwYXJz
ZU1vZGUgPSBNT0RFX1VOREVGOwotICAgICRwcmVzZXJ2ZWRQYXJzZU1vZGUgPSBNT0RFX1VOREVG
OworIyBVc2VkIHRvIHJlcHJlc2VudCAndG9rZW4nLgorc3RydWN0KCBUb2tlbiA9PiB7CisgICAg
dHlwZSA9PiAnJCcsICMgU3RyaW5nLCBJbnRlZ2VyLCBGbG9hdCwgSWRlbnRpZmllciwgT3RoZXIg
b3IgRW1wdHkuCisgICAgdmFsdWUgPT4gJyQnICMgVmFsdWUuCit9KTsKIAotICAgICRkb2N1bWVu
dCA9IDA7Ci0gICAgJHBhcmVudHNPbmx5ID0gMDsKLX0KKyMgSGVscGVyIHZhcmlhYmxlcworbXkg
JGV4Y2VwdGlvbklzVGhlU2FtZUFzSW50ZXJmYWNlID0gMTsgIyBBY2NvcmRpbmcgdG8gdGhlIHNw
ZWMsIGV4Y2VwdGlvbiBpcyBub3QgdGhlIHNhbWUgYXMgaW50ZXJmYWNlLgorbXkgJGJlUXVpZXQg
PSAxOyAjIFNob3VsZCBub3QgZGlzcGxheSBhbnl0aGluZyBvbiBTVERPVVQ/CiAKICMgRGVmYXVs
dCBDb25zdHJ1Y3Rvcgotc3ViIG5ldwotewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBt
eSAkcmVmZXJlbmNlID0geyB9Oworc3ViIG5ldyB7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7CiAK
LSAgICBJbml0aWFsaXplR2xvYmFsRGF0YSgpOworICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4t
Pm5ldygpOworICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRlbXB0eVRv
a2VuLT52YWx1ZSgiZW1wdHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBEb2N1bWVu
dENvbnRlbnQgPT4gW10sCisgICAgICAgIFJlYWRCdWZmZXIgPT4gW10sCisgICAgICAgIEVtcHR5
VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIE5leHRUb2tlbiA9PiAkZW1wdHlUb2tlbiwK
KyAgICAgICAgVG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgfTsKIAogICAgICRiZVF1aWV0ID0g
c2hpZnQ7CiAKLSAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJl
ZmVyZW5jZTsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKIH0KIAogIyBSZXR1cm5z
IHRoZSBwYXJzZWQgJ2lkbERvY3VtZW50Jwogc3ViIFBhcnNlCiB7Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJGZpbGVOYW1lID0gc2hpZnQ7
CiAgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKICAgICBteSAkcHJlcHJvY2Vzc29yID0gc2hpZnQ7
Ci0gICAgJHBhcmVudHNPbmx5ID0gc2hpZnQ7CisKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsK
IAogICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcgdG8gcGFyc2UgJGZpbGVOYW1lLi4uXG4gfFxu
IiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkgQGRvY3VtZW50Q29udGVudCA9IGFwcGx5UHJlcHJv
Y2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCi0gICAgbXkgJGRh
dGFBdmFpbGFibGUgPSAwOworICAgIHB1c2goQHskc2VsZi0+e0RvY3VtZW50Q29udGVudH19LCBh
cHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKSk7CiAK
LSAgICAjIFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3JlYWNoIChAZG9jdW1lbnRDb250
ZW50KSB7Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2JqZWN0LT5EZXRlcm1pbmVQYXJz
ZU1vZGUoJF8pOworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIGV2YWwgeworICAgICAgICBw
dXNoKEBkZWZpbml0aW9ucywgQHskc2VsZi0+cGFyc2VEZWZpbml0aW9ucygpfSk7CisgICAgfTsK
KyAgICBkaWUgJEAgLiAiIGluICRmaWxlTmFtZSIgaWYgJEA7CiAKLSAgICAgICAgaWYgKCRuZXdQ
YXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgaWYgKCRkYXRhQXZhaWxhYmxl
IGVxIDApIHsKLSAgICAgICAgICAgICAgICAkZGF0YUF2YWlsYWJsZSA9IDE7ICMgU3RhcnQgbm9k
ZSBidWlsZGluZy4uLgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkb2Jq
ZWN0LT5Qcm9jZXNzU2VjdGlvbigpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgZGll
ICJObyBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIGxlbmd0aChAZGVmaW5pdGlvbnMpID4gMDsKKwor
ICAgIG15ICRkb2N1bWVudCA9ICRkZWZpbml0aW9uc1swXTsKKyAgICBkaWUgIk5vIGRvY3VtZW50
IGZvdW5kIiB1bmxlc3MgcmVmKCRkb2N1bWVudCkgZXEgImlkbERvY3VtZW50IjsKKworICAgIHBy
aW50ICIgfCAqKiogRmluaXNoZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1aWV0OworCisgICAg
JGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworICAgIHJldHVybiAkZG9jdW1lbnQ7Cit9
CisKK3N1YiB0b2tlblNob3VsZEJlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bWF0Y2hUeXBlID0gc2hpZnQ7CisgICAgbXkgJG1hdGNoVmFsdWUgPSBzaGlmdDsKKyAgICBteSAk
cG9zdGZpeCA9IHNoaWZ0OworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgbXkgQHZhbHVlcyA9ICgiIGV4cGVjdGVkIFwiIiwgJG1hdGNoVmFsdWUsICJcIiwgYnV0IGZv
dW5kIFwiIiwgJHRva2VuLT52YWx1ZSgpLCAiXCIiKTsKKyAgICBpZiAoZGVmaW5lZCAkcG9zdGZp
eCkgeworICAgICAgICBwdXNoKEB2YWx1ZXMsICRwb3N0Zml4KTsKKyAgICB9CisgICAgZGllIGpv
aW4oJycsIEB2YWx1ZXMpIHVubGVzcyAkdG9rZW4tPnR5cGUoKSA9PSAkbWF0Y2hUeXBlICYmICR0
b2tlbi0+dmFsdWUoKSBlcSAkbWF0Y2hWYWx1ZTsKKyAgICByZXR1cm47Cit9CisKK3N1YiB0b2tl
blNob3VsZEJlSWRlbnRpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRv
a2VuID0gc2hpZnQ7CisgICAgbXkgJHBvc3RmaXggPSBzaGlmdDsKKworICAgIG15IEB2YWx1ZXMg
PSAoIiBleHBlY3RlZCBcImlkZW50aWZpZXJcIiwgYnV0IGZvdW5kIFwiIiwgJHRva2VuLT52YWx1
ZSgpLCAiXCIiKTsKKyAgICBpZiAoZGVmaW5lZCAkcG9zdGZpeCkgeworICAgICAgICBwdXNoKEB2
YWx1ZXMsICRwb3N0Zml4KTsKKyAgICB9CisgICAgZGllIGpvaW4oJycsIEB2YWx1ZXMpIHVubGVz
cyAkdG9rZW4tPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW47CisgICAgcmV0dXJuOworfQogCi0g
ICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRhdGEgc3RyZWFtIG1vZGUuLi4KLSAgICAgICAgaWYg
KCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgJHBhcnNlTW9kZSA9
ICRuZXdQYXJzZU1vZGU7CisjIERlZmluaXRpb25zIDo9IERlZmluaXRpb24gRGVmaW5pdGlvbnMg
fCBlcHNpbG9uCitzdWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgp
ID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgPX4gL14oXFt8OjopJC8pIHx8CisgICAg
ICAgICAgICAkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAgICAg
cHVzaChAZGVmaW5pdGlvbnMsICRzZWxmLT5wYXJzZURlZmluaXRpb24oKSk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBc
QGRlZmluaXRpb25zOworfQorCisjIERlZmluaXRpb24gOj0gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
IE5vcm1hbERlZmluaXRpb24gfCBQYXJ0aWFsSW50ZXJmYWNlCitzdWIgcGFyc2VEZWZpbml0aW9u
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKIAotICAgICAgICBwdXNoKEB0ZW1wb3JhcnlDb250ZW50LCAkXyk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0
aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbEludGVyZmFjZSgpOwog
ICAgIH0KKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5vcm1hbERlZmluaXRp
b24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CiAKLSAgICAjIENoZWNrIGlmIHRoZXJlIGlz
IGFueXRoaW5nIHJlbWFpbmluZyB0byBwYXJzZS4uLgotICAgIGlmICgoJHBhcnNlTW9kZSBuZSBN
T0RFX1VOREVGKSBhbmQgKCQjdGVtcG9yYXJ5Q29udGVudCA+IDApKSB7Ci0gICAgICAgICRvYmpl
Y3QtPlByb2Nlc3NTZWN0aW9uKCk7CisjIE5vcm1hbERlZmluaXRpb24gOj0gTW9kdWxlIHwgSW50
ZXJmYWNlIHwgRGljdGlvbmFyeSB8IEV4Y2VwdGlvbiB8IFR5cGVkZWYKKyMgICAgIHwgSW1wbGVt
ZW50c1N0YXRlbWVudAorc3ViIHBhcnNlTm9ybWFsRGVmaW5pdGlvbgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtb2R1
bGUiKSB7CisgICAgICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJm
YWNlIikgeworICAgICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRp
Y3Rpb25hcnkiKSB7CisgICAgICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRp
b24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVk
ZWYoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSAhPSBPdGhl
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIG5lICI6OiIpIHsKKyAgICAgICAgZGllICJVbmV4cGVj
dGVkICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgcGFyc2luZyBOb3JtYWxEZWZpbml0aW9u
LiI7CiAgICAgfQorICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQogCi0gICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBw
YXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gCi0gICAgJGRvY3VtZW50LT5maWxlTmFtZSgk
ZmlsZU5hbWUpOworIyBNb2R1bGUgOj0gIm1vZHVsZSIgaWRlbnRpZmllciAieyIgRGVmaW5pdGlv
bnMgIn0iICI7Igorc3ViIHBhcnNlTW9kdWxlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisgICAgbXkgJGRvY3VtZW50ID0g
bmV3IGlkbERvY3VtZW50KCk7CisKKyAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJzZSBtb2R1
bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0OworCisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoSWRl
bnRpZmllclRva2VuLCAibW9kdWxlIik7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4g
X19MSU5FX18pOworICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisKKyAg
ICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAieyIpOworICAgIG15ICRkZWZpbml0
aW9ucyA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgcHVzaChAeyRkb2N1bWVudC0+
Y2xhc3Nlc30sIEB7JGRlZmluaXRpb25zfSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3Ro
ZXJUb2tlbiwgIn0iKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiOyIs
ICIgaW4gIiAuIF9fTElORV9fKTsKKworICAgIHByaW50ICIgIHwtLS0tPiBNb2R1bGU7IE5BTUUg
XCIiIC4gJHRva2VuLT52YWx1ZSgpIC4gIlwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsK
IAogICAgIHJldHVybiAkZG9jdW1lbnQ7CiB9CiAKLXN1YiBQYXJzZU1vZHVsZQorIyBJbnRlcmZh
Y2UgOj0gImludGVyZmFjZSIgaWRlbnRpZmllciBJbmhlcml0YW5jZSAieyIgSW50ZXJmYWNlTWVt
YmVycyAifSIgIjsiCitzdWIgcGFyc2VJbnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkZGF0YU5vZGUg
PSBuZXcgZG9tQ2xhc3MoKTsKKworICAgICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJU
b2tlbiwgImludGVyZmFjZSIpOworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwor
ICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4gIiAuIF9fTElO
RV9fKTsKKyAgICAkZGF0YU5vZGUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAkZGF0YU5v
ZGUtPmlzRXhjZXB0aW9uKDApOworICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRz
ZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90
aGVyVG9rZW4sICJ7Iik7CisgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJ
bnRlcmZhY2VNZW1iZXJzKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwg
In0iKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiOyIsICIgaW4gIiAu
IF9fTElORV9fKTsKKworICAgIGZvciBteSAkaXRlbSAoQHskaW50ZXJmYWNlTWVtYmVyc30pIHsK
KyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUF0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAg
IHB1c2goQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0
OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21Db25zdGFudCIpIHsK
KyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmNvbnN0YW50c30sICRpdGVtKTsKKyAgICAg
ICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUZ1
bmN0aW9uIikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSwgJGl0
ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgIH0KIAotICAgIHByaW50ICIg
fC0gVHJ5aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgYXBw
bHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICByZXR1cm4gJGRhdGFOb2RlOworfQogCi0gICAgbXkgJGRhdGEgPSBqb2luKCIiLCBA
dGVtcG9yYXJ5Q29udGVudCk7Ci0gICAgJGRhdGEgPX4gLyRJRExTdHJ1Y3R1cmU6Om1vZHVsZVNl
bGVjdG9yLzsKKyMgUGFydGlhbEludGVyZmFjZSA6PSAicGFydGlhbCIgImludGVyZmFjZSIgaWRl
bnRpZmllciAieyIgSW50ZXJmYWNlTWVtYmVycyAifSIgIjsiCitzdWIgcGFyc2VQYXJ0aWFsSW50
ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRC
ZShJZGVudGlmaWVyVG9rZW4sICJwYXJ0aWFsIik7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUo
SWRlbnRpZmllclRva2VuLCAiaW50ZXJmYWNlIik7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBp
biAiIC4gX19MSU5FX18pOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICJ7
Iik7CisgICAgJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICRzZWxmLT50b2tl
blNob3VsZEJlKE90aGVyVG9rZW4sICJ9Iik7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3Ro
ZXJUb2tlbiwgIjsiLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJuOworfQogCi0gICAg
bXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6IGRpZSgiUGFyc2luZyBlcnJvciFc
blNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICRkYXRhTm9kZS0+bW9kdWxlKCRtb2R1bGVOYW1l
KTsKKyMgSW5oZXJpdGFuY2UgOj0gIjoiIFNjb3BlZE5hbWVMaXN0IHwgZXBzaWxvbgorIyAoc3Bl
YzogSW5oZXJpdGFuY2UgOj0gIjoiIFNjb3BlZE5hbWUgfCBlcHNpbG9uKQorc3ViIHBhcnNlSW5o
ZXJpdGFuY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAgcHJpbnQgIiAgfC0tLS0+
IE1vZHVsZTsgTkFNRSBcIiRtb2R1bGVOYW1lXCJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgInsiKSB7CisgICAgICAgIHJl
dHVybiBbXTsKKyAgICB9CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjoi
KTsKKyAgICAjIFRoZSBsYXRlc3Qgc3BlYywgJyI6IiBTY29wZWROYW1lJywgYnV0IHJlcXVpcmVk
ICciOiIgU2NvcGVkTmFtZUxpc3QnLgorICAgIHJldHVybiAkc2VsZi0+cGFyc2VTY29wZWROYW1l
TGlzdCgpOwogfQogCi1zdWIgZHVtcEV4dGVuZGVkQXR0cmlidXRlcworIyBJbnRlcmFjZU1lbWJl
cnMgOj0gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IEludGVyZmFjZU1lbWJlciBJbnRlcmZhY2VNZW1i
ZXJzIHwgZXBzaWxvbgorc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVycwogewotICAgIG15ICRwYWRT
dHIgPSBzaGlmdDsKLSAgICBteSAkYXR0cnMgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBpbnRlcmZhY2VNZW1iZXJzID0gKCk7CiAKLSAgICBpZiAoISV7JGF0dHJzfSkg
eworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1
ZSgpIGVxICJ9IikgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KCk7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VN
ZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkICRpbnRl
cmZhY2VNZW1iZXIpIHsKKyAgICAgICAgICAgIHB1c2goQGludGVyZmFjZU1lbWJlcnMsICRpbnRl
cmZhY2VNZW1iZXIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGludGVyZmFjZU1l
bWJlcnM7Cit9CisKKyMgSW50ZXJmYWNlTWVtYmVyIDo9IENvbnN0IHwgQXR0cmlidXRlT3JPcGVy
YXRpb24KK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgKCRuZXh0LT50eXBlKCkgPT0gT3Ro
ZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSkgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIHBh
cnNpbmcgSW50ZXJmYWNlTWVtYmVyIjsKK30KKworIyBEaWN0aW9uYXJ5IDo9ICJkaWN0aW9uYXJ5
IiBpZGVudGlmaWVyIEluaGVyaXRhbmNlICJ7IiBEaWN0aW9uYXJ5TWVtYmVycyAifSIgIjsiCitz
dWIgcGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJ
ZGVudGlmaWVyVG9rZW4sICJkaWN0aW9uYXJ5Iik7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBp
biAiIC4gX19MSU5FX18pOworICAgICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgJHNl
bGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgInsiKTsKKyAgICAkc2VsZi0+cGFyc2VEaWN0
aW9uYXJ5TWVtYmVycygpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICJ9
Iik7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAiIGluICIgLiBf
X0xJTkVfXyk7CisgICAgcmV0dXJuOworfQorCisjIERpY3Rpb25hcnlNZW1iZXJzIDo9IEV4dGVu
ZGVkQXR0cmlidXRlTGlzdCBEaWN0aW9uYXJ5TWVtYmVyIERpY3Rpb25hcnlNZW1iZXJzIHwgZXBz
aWxvbgorc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBtZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBP
dGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJ9IikgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgIHB1c2goQG1lbWJlcnMsICRzZWxm
LT5wYXJzZURpY3Rpb25hcnlNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCkpOworICAgIH0K
KyAgICByZXR1cm4gXEBtZW1iZXJzOworfQorCisjIERpY3Rpb25hcnlNZW1iZXIgOj0gVHlwZSBp
ZGVudGlmaWVyIERlZmF1bHRWYWx1ZSAiOyIKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXIKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICBteSAk
dG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50
aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJHNlbGYtPnBhcnNlRGVmYXVs
dFZhbHVlKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAiIGlu
ICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJuIDA7Cit9CisKKyMgRGVmYXVsdFZhbHVlIDo9ICI9
IiBDb25zdEV4cHIgfCBlcHNpbG9uCitzdWIgcGFyc2VEZWZhdWx0VmFsdWUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiPSIp
IHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5wYXJzZUNvbnN0
RXhwcigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRpZSAiTmV4dCB0b2tlbiBzaG91
bGQgYmUgJzsnLCBidXQgIiAuICRuZXh0LT52YWx1ZSgpIHVubGVzcyAkbmV4dC0+dHlwZSgpID09
IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIjsiOworICAgIHJldHVybjsKK30KKwor
IyBFeGNlcHRpb24gOj0gImV4Y2VwdGlvbiIgaWRlbnRpZmllciBJbmhlcml0YW5jZSAieyIgRXhj
ZXB0aW9uTWVtYmVycyAifSIgIjsiCitzdWIgcGFyc2VFeGNlcHRpb24KK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAg
IG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworCisgICAgJHNlbGYtPnRva2VuU2hvdWxk
QmUoSWRlbnRpZmllclRva2VuLCAiZXhjZXB0aW9uIik7CisgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwg
IiBpbiAiIC4gX19MSU5FX18pOworICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkp
OworICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgcHVzaChAeyRkYXRhTm9kZS0+
cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworCisgICAgJHNlbGYtPnRv
a2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgInsiKTsKKyAgICBteSAkZXhjZXB0aW9uTWVtYmVyczsK
KyAgICBpZiAoJGV4Y2VwdGlvbklzVGhlU2FtZUFzSW50ZXJmYWNlKSB7CisgICAgICAgICRleGNl
cHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVt
YmVycygpOworICAgIH0KKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAifSIp
OworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICI7IiwgIiBpbiAiIC4gX19M
SU5FX18pOworCisgICAgZm9yIG15ICRpdGVtIChAeyRleGNlcHRpb25NZW1iZXJzfSkgeworICAg
ICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikgeworICAgICAgICAgICAgcHVz
aChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUNvbnN0YW50IikgeworICAg
ICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwgJGl0ZW0pOworICAgICAgICAg
ICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tRnVuY3Rp
b24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9LCAkaXRlbSk7
CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorCisgICAgYXBwbHlFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICBy
ZXR1cm4gJGRhdGFOb2RlOworfQorCisjIEV4Y2VwdGlvbk1lbWJlcnMgOj0gRXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0IEV4Y2VwdGlvbk1lbWJlciBFeGNlcHRpb25NZW1iZXJzIHwgZXBzaWxvbgorc3Vi
IHBhcnNlRXhjZXB0aW9uTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
QGV4Y2VwdGlvbk1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBP
dGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJ9IikgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgIHB1c2goQGV4Y2VwdGlvbk1lbWJl
cnMsICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KSk7
CisgICAgfQorICAgIHJldHVybiBcQGV4Y2VwdGlvbk1lbWJlcnM7Cit9CisKKyMgVHlwZWRlZiA6
PSAidHlwZWRlZiIgVHlwZSBpZGVudGlmaWVyICI7Igorc3ViIHBhcnNlVHlwZWRlZgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoSWRlbnRpZmllclRva2VuLCAidHlwZWRlZiIp
OworICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIg
LiBfX0xJTkVfXyk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAi
IGluICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJuOworfQorCisjIEltcGxlbWVudHNTdGF0ZW1l
bnQgOj0gU2NvcGVkTmFtZSAiaW1wbGVtZW50cyIgU2NvcGVkTmFtZSAiOyIKK3N1YiBwYXJzZUlt
cGxlbWVudHNTdGF0ZW1lbnQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUo
KTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJpbXBsZW1lbnRz
Iik7CisgICAgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICI7IiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgIHJldHVybjsKK30K
KworIyBDb25zdCA6PSAiY29uc3QiIENvbnN0VHlwZSBpZGVudGlmaWVyICI9IiBDb25zdEV4cHIg
IjsiCitzdWIgcGFyc2VDb25zdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3
IGRvbUNvbnN0YW50KCk7CisKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9r
ZW4sICJjb25zdCIpOworICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5
cGUoKSk7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRv
a2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgICRu
ZXdEYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICI9Iik7CisgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkc2VsZi0+cGFy
c2VDb25zdEV4cHIoKSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsi
LCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKK30K
KworIyBDb25zdEV4cHIgOj0gQm9vbGVhbkxpdGVyYWwgfCBpbnRlZ2VyIHwgZmxvYXQgfCBzdHJp
bmcgfCAibnVsbCIKK3N1YiBwYXJzZUNvbnN0RXhwcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgIHJldHVybiAiXCIiIC4gJHRva2VuLT52YWx1ZSgpIC4gIlwiIjsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuIHx8ICRuZXh0LT50eXBlKCkg
PT0gRmxvYXRUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJudWxsIikgewor
ICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICB9
CisgICAgcmV0dXJuICRzZWxmLT5wYXJzZUJvb2xlYW5MaXRlcmFsKCk7Cit9CisKKyMgQm9vbGVh
bkxpdGVyYWwgOj0gInRydWUiIHwgImZhbHNlIgorc3ViIHBhcnNlQm9vbGVhbkxpdGVyYWwKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgZGllICR0b2tlbi0+dmFsdWUoKSAuICIgaXMgbm90IGFuIGlkZW50aWZpZXIuIiB1
bmxlc3MgJHRva2VuLT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuOworICAgIGlmICgkdG9rZW4t
PnZhbHVlKCkgZXEgInRydWUiKSB7CisgICAgICAgIHJldHVybiAidHJ1ZSI7CisgICAgfSBlbHNp
ZiAoJHRva2VuLT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAgcmV0dXJuICJmYWxzZSI7
CisgICAgfQorICAgIGRpZSAkdG9rZW4tPnZhbHVlKCkgLiAiIGlzIG5vdCBhIGJvb2xlYW4gbGl0
ZXJhbC4iOworfQorCisjIEF0dHJpYnV0ZU9yT3BlcmF0aW9uIDo9ICJzdHJpbmdpZmllciIgU3Ry
aW5naWZpZXJBdHRyaWJ1dGVPck9wZXJhdGlvbiB8IEF0dHJpYnV0ZSB8IE9wZXJhdGlvbgorc3Vi
IHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biAmJiAkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU3RyaW5naWZpZXJBdHRyaWJ1
dGVPck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpID1+IC9eKHJl
YWRvbmx5fGF0dHJpYnV0ZSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmli
dXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm4gJHNlbGYtPnBh
cnNlT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisjIFN0cmluZ2lmaWVy
QXR0cmlidXRlT3JPcGVyYXRpb24gOj0gQXR0cmlidXRlIHwgT3BlcmF0aW9uUmVzdCB8ICI7Igor
c3ViIHBhcnNlU3RyaW5naWZpZXJBdHRyaWJ1dGVPck9wZXJhdGlvbgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
T3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpID1+IC9eKHJlYWRvbmx5fGF0dHJp
YnV0ZSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9u
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisjIEF0dHJpYnV0ZSA6PSBSZWFkT25seSAi
YXR0cmlidXRlIiBBdHRyaWJ1dGVUeXBlIGlkZW50aWZpZXIgR2V0IFNldFJhaXNlcyAiOyIKK3N1
YiBwYXJzZUF0dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUF0dHJpYnV0ZSgpOworCisgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOworICAgIH0KKyAgICAk
c2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJhdHRyaWJ1dGUiKTsKKyAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKSk7CisgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJ
ZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgbXkgJGdldFJlZiA9ICRzZWxm
LT5wYXJzZUdldCgpOworICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAgbXkgJWdl
dFJlc3VsdCA9ICV7JGdldFJlZn07CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRl
ckV4Y2VwdGlvbnN9LCBAeyRnZXRSZXN1bHR7ImdldHJhaXNlcyJ9fSk7CisgICAgfQorICAgIHB1
c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZVNldFJh
aXNlcygpfSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAiIGlu
ICIgLiBfX0xJTkVfXyk7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICByZXR1cm4gJG5ld0RhdGFOb2Rl
OworfQorCisjIFJlYWRPbmx5IDo9ICJyZWFkb25seSIgfCBlcHNpbG9uCitzdWIgcGFyc2VSZWFk
T25seQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJG5leHQsICIg
aW4gIiAuIF9fTElORV9fKTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmVhZG9ubHki
KSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gVHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIEZhbHNlOworfQorCisjIEdldCA6PSBJbmhlcml0c0dldHRlciB8IEdl
dFJhaXNlcyB8IGVwc2lsb24KK3N1YiBwYXJzZUdldAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiaW5oZXJpdHMi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbmhlcml0c0dldHRlcigpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVl
KCkgZXEgImdldHJhaXNlcyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUdldFJhaXNl
cygpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYm
ICRuZXh0LT52YWx1ZSgpIGVxICJzZXRyYWlzZXMiKSB8fAorICAgICAgICAoJG5leHQtPnR5cGUo
KSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI7IikpIHsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52YWx1ZSgpIC4gIndo
aWxlIHBhcnNpbmcgR2V0LiI7Cit9CisKKyMgSW5oZXJpdHNHZXR0ZXIgOj0gImluaGVyaXRzIiAi
Z2V0dGVyIgorc3ViIHBhcnNlSW5oZXJpdHNHZXR0ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJUb2tlbiwgImluaGVyaXRzIik7
CisgICAgbXkgJWF0dHIgPSAoKTsKKyAgICAkYXR0cnsiaW5oZXJpdHMifSA9IDE7CisgICAgJGF0
dHJ7ImdldHJhaXNlcyJ9ID0gW107CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoSWRlbnRpZmll
clRva2VuLCAiZ2V0dGVyIik7CisgICAgcmV0dXJuIFwlYXR0cjsKK30KKworIyBHZXRSYWlzZXMg
Oj0gImdldHJhaXNlcyIgRXhjZXB0aW9uTGlzdAorc3ViIHBhcnNlR2V0UmFpc2VzCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9r
ZW4sICJnZXRyYWlzZXMiKTsKKyAgICBteSAlYXR0ciA9ICgpOworICAgICRhdHRyeyJpbmhlcml0
cyJ9ID0gMDsKKyAgICAkYXR0cnsiZ2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VFeGNlcHRpb25M
aXN0KCk7CisgICAgcmV0dXJuIFwlYXR0cjsKK30KKworIyBTZXRSYWlzZXMgOj0gInNldHJhaXNl
cyIgRXhjZXB0aW9uTGlzdCB8IGVwc2lsb24KK3N1YiBwYXJzZVNldFJhaXNlcworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkg
ZXEgInNldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsK
K30KKworIyBPcGVyYXRpb24gOj0gUXVhbGlmaWVycyBPcGVyYXRpb25SZXN0CitzdWIgcGFyc2VP
cGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlv
bigpOworICAgICRzZWxmLT5wYXJzZVF1YWxpZmllcnMoJG5ld0RhdGFOb2RlKTsKKyAgICAkc2Vs
Zi0+cGFyc2VPcGVyYXRpb25SZXN0KCRuZXdEYXRhTm9kZSk7CisgICAgZGllICJGb3VuZCB1bmRl
ZmluZWQgc2lnbmF0dXJlIHdoaWxlIHBhcnNpbmcgT3BlcmF0aW9uLiIgdW5sZXNzIGRlZmluZWQo
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUpOworICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0dXJuICRu
ZXdEYXRhTm9kZTsKK30KKworIyBRdWFsaWZpZXJzIDo9ICJzdGF0aWMiIHwgIm9taXR0YWJsZSIg
U3BlY2lhbHMgfCBTcGVjaWFscworc3ViIHBhcnNlUXVhbGlmaWVycworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoMSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYm
ICRuZXh0LT52YWx1ZSgpIGVxICJvbWl0dGFibGUiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5wYXJzZVNwZWNpYWxzKCk7CisgICAgcmV0dXJuOworfQorCisjIFNw
ZWNpYWxzIDo9IFNwZWNpYWwgU3BlY2lhbHMgfCBlcHNpbG9uCitzdWIgcGFyc2VTcGVjaWFscwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgdW5sZXNzICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUgPX4gL14oZ2V0dGVyfHNldHRlcnxj
cmVhdG9yfGRlbGV0ZXJ8Y2FsbGVyKSQvKSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9
CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQor
CisjIFNwZWNpYWwgOj0gImdldHRlciIgfCAic2V0dGVyIiB8ICJjcmVhdG9yIiB8ICJkZWxldGVy
IiB8ICJjYWxsZXIiCitzdWIgcGFyc2VTcGVjaWFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIGRpZSAiVW5leHBlY3Rl
ZCAiIC4gJHRva2VuLT52YWx1ZSgpIC4gIiB3aGlsZSBwYXJzaW5nIFNwZWNpYWwuIiB1bmxlc3Mg
KCR0b2tlbi0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkdG9rZW4tPnZhbHVlID1+IC9e
KGdldHRlcnxzZXR0ZXJ8Y3JlYXRvcnxkZWxldGVyfGNhbGxlcikkLyk7CisgICAgcmV0dXJuOwor
fQorCisjIE9wZXJhdGlvblJlc3QgOj0gUmV0dXJuVHlwZSBPcHRpb25hbElkZW50aWZpZXIgIigi
IEFyZ3VtZW50TGlzdCAiKSIgUmFpc2VzICI7Igorc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVJldHVyblR5cGUoKSk7CisgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHNlbGYtPnBhcnNlT3B0aW9uYWxJZGVudGlm
aWVyKCkpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICIoIik7CisgICAg
cHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRM
aXN0KCl9KTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiKSIpOworICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZVJh
aXNlcygpfSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAiIGlu
ICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJuOworfQorCisjIE9wdGlvbmFsSWRlbnRpZmllciA6
PSBpZGVudGlmaWVyIHwgZXBzaWxvbgorc3ViIHBhcnNlT3B0aW9uYWxJZGVudGlmaWVyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkg
ZXEgIigiKSB7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CisgICAgbXkgJHRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tl
biwgIiBpbiAiIC4gX19MSU5FX18pOworICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7Cit9CiAK
LSAgICBteSBAdGVtcDsKLSAgICB3aGlsZSAoKG15ICRuYW1lLCBteSAkdmFsdWUpID0gZWFjaCgl
eyRhdHRyc30pKSB7Ci0gICAgICAgIHB1c2goQHRlbXAsICIkbmFtZT0kdmFsdWUiKTsKKyMgUmFp
c2VzIDo9ICJyYWlzZXMiIEV4Y2VwdGlvbkxpc3QgfCBlcHNpbG9uCitzdWIgcGFyc2VSYWlzZXMK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0
LT52YWx1ZSgpIGVxICJyYWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwogICAgIH0KKyAgICBkaWUg
IlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBwYXJzaW5nIFJhaXNlcyIg
dW5sZXNzICRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAi
OyI7CisgICAgcmV0dXJuIFtdOworfQogCi0gICAgcmV0dXJuICRwYWRTdHIgLiAiWyIgLiBqb2lu
KCIsICIsIEB0ZW1wKSAuICJdIjsKKyMgRXhjZXB0aW9uTGlzdCA6PSAiKCIgU2NvcGVkTmFtZUxp
c3QgIikiCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiKCIpOworICAgIG15ICRyZXN1
bHQgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lTGlzdCgpOworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICIpIik7CisgICAgcmV0dXJuICRyZXN1bHQ7CiB9CiAKLXN1YiBwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlcworIyBBcmd1bWVudExpc3QgOj0gQXJndW1lbnQgQXJndW1lbnRz
IHwgZXBzaWxvbgorc3ViIHBhcnNlQXJndW1lbnRMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52
YWx1ZSgpIGVxICIpIikgeworICAgICAgICByZXR1cm4gXEBhcmd1bWVudHM7CisgICAgfQorICAg
IHB1c2goQGFyZ3VtZW50cywgJHNlbGYtPnBhcnNlQXJndW1lbnQoKSk7CisgICAgcHVzaChAYXJn
dW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgcmV0dXJuIFxAYXJndW1l
bnRzOworfQorCisjIEFyZ3VtZW50cyA6PSAiLCIgQXJndW1lbnQgQXJndW1lbnRzIHwgZXBzaWxv
bgorc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBA
YXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgdW5sZXNzICgkbmV4dC0+dHlwZSgpID09IE90aGVy
VG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICAgICBsYXN0OworICAg
ICAgICB9CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBwdXNoKEBhcmd1bWVu
dHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVu
dHM7Cit9CisKKyMgQXJndW1lbnQgOj0gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IEluIE9wdGlvbmFs
IFR5cGUgRWxsaXBzaXMgaWRlbnRpZmllcgorc3ViIHBhcnNlQXJndW1lbnQKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgp
OworICAgIAorICAgICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCkpOworICAgICRwYXJhbURhdGFOb2RlLT5kaXJlY3Rp
b24oJHNlbGYtPnBhcnNlSW4oKSk7CisgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWwoKTsKKyAgICBt
eSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5
IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAg
ICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDEpOworICAgIH0gZWxzZSB7CisgICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgIH0KKyAgICAjIFJlbW92ZSBhbGwg
Ij8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAgICAkdHlw
ZSA9fiBzL1w/Ly87CisgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOworICAgICRzZWxm
LT5wYXJzZUVsbGlwc2lzKCk7CisKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICBkaWUgIk1pc3NpbmcgQXJndW1lbnQncyBpZGVudGlmaWVyIiB1bmxlc3MgJHRva2VuLT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuOworICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCR0b2tl
bi0+dmFsdWUoKSk7CisgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOworfQorCisjIEluIDo9ICJp
biIgfCBlcHNpbG9uCitzdWIgcGFyc2VJbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAgICAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJpbiI7CisgICAgfQorICAgIHJldHVy
biAiIjsKK30KKworIyBPcHRpb25hbCA6PSAib3B0aW9uYWwiIHwgZXBzaWxvbgorc3ViIHBhcnNl
T3B0aW9uYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
ICYmICRuZXh0LT52YWx1ZSgpIGVxICJvcHRpb25hbCIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworIyBF
bGxpcHNpcyA6PSAiLi4uIiB8IGVwc2lsb24KK3N1YiBwYXJzZUVsbGlwc2lzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIi4u
LiIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKyAgICByZXR1cm4gMDsKK30KKworIyBFeGNlcHRpb25NZW1iZXIgOj0gQ29uc3QgfCBFeGNl
cHRpb25GaWVsZAorc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVyCiB7Ci0gICAgbXkgJHN0ciA9IHNo
aWZ0OwotICAgICRzdHIgPX4gcy9cW1xzKiguKilccypcXS8kMS9nOworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uRmllbGQoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7Cit9CisKKyMgRXhjZXB0aW9uRmllbGQgOj0gQXR0cmlidXRlVHlwZSBpZGVudGlmaWVyICI7
Igorc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKyAgICBteSAkbmV3RGF0YU5vZGUg
PSBuZXcgZG9tQXR0cmlidXRlKCk7CisKKyAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5
IGF0dHJpYnV0ZSIpOworICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1
cmUpOworICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZUF0dHJp
YnV0ZVR5cGUoKSk7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNl
bGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOwor
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAg
JHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiKTsKKyAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIHJldHVybiAkbmV3RGF0YU5vZGU7Cit9CisKKyMgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IDo9
ICJbIiBFeHRlbmRlZEF0dHJpYnV0ZXMgIl0iIHwgZXBzaWxvbgorc3ViIHBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAlYXR0cnMgPSAo
KTsKIAotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQYXJzZSBuYW1l
Ci0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgZGll
KCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgfQotICAg
ICAgICBteSAkbmFtZSA9ICQxOwotICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwot
Ci0gICAgICAgIGlmICgkc3RyID1+IC9eXHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4gcy9e
XHMqPS8vOwotICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikgewot
ICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywnPwot
ICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAgaWYg
KCRzdHIgPX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25zdHJ1
Y3Rvck5hbWUgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRd
KykvLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUo
IkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAg
ICAgICAgICAjIFBhcnNlICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICAg
ICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAv
XihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVyZSA9
ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxzKiQv
JDEvOwotICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0
b3JOYW1lIiA9PiAkY29uc3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJlfTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52
YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0
cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAkc3Ry
ID1+IHMvXlxzKiw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgUGFy
c2UgJz0nIHZhbHVlICcsJz8KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXixd
KiksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAg
ICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAg
ICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJp
YnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJygn
IGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAg
ICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAk
YXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14o
Lio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNp
ZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwotICAg
ICAgICAgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAk
YXR0cnN7JG5hbWV9ID0gIiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICRhdHRyc3skbmFtZX0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgIT0gT3RoZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSBuZSAiWyIpIHsKKyAgICAgICAgcmV0dXJuIFwlYXR0cnM7CisgICAgfQorICAgICRzZWxm
LT5nZXRUb2tlbigpOworCisgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZSgpOworICAgIEBhdHRyc3trZXlzICV7JGF0dHJ9fSA9IHZhbHVlcyAleyRhdHRyfTsKKyAg
ICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAgIEBhdHRyc3tr
ZXlzICV7JGF0dHJ9fSA9IHZhbHVlcyAleyRhdHRyfTsKKworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICJdIik7CisgICAgcmV0dXJuIFwlYXR0cnM7Cit9CisKKyMgRXh0ZW5k
ZWRBdHRyaWJ1dGVzIDo9ICIsIiBFeHRlbmRlZEF0dHJpYnV0ZSBFeHRlbmRlZEF0dHJpYnV0ZXMg
fCBlcHNpbG9uCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICVhdHRycyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgp
ICE9IE90aGVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgbmUgIiwiKSB7CisgICAgICAgICAgICBs
YXN0OworICAgICAgICB9CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAk
YXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7CisgICAgICAgIEBhdHRyc3tr
ZXlzICV7JGF0dHJ9fSA9IHZhbHVlcyAleyRhdHRyfTsKKyAgICB9CisgICAgcmV0dXJuIFwlYXR0
cnM7Cit9CisKKyMgRXh0ZW5kZWRBdHRyaWJ1dGUgOj0gaWRlbnRpZmllciBFeHRlbmRlZEF0dHJp
YnV0ZTEKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIGRpZSAiRXh0ZW5k
ZWRBdHRyaWJ1dGUgc2hvdWxkIHN0YXJ0IHdpdGggaWRlbnRpZmllciwgYnV0ICIgLiAkdG9rZW4t
PnZhbHVlKCkgdW5sZXNzICR0b2tlbi0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbjsKKyAgICBt
eSAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlMSgkdG9rZW4tPnZhbHVlKCkp
OworICAgIHJldHVybiAkYXR0cjsKK30KKworIyBUeXBlIDo9IEF0dHJpYnV0ZVR5cGUgfCAic2Vx
dWVuY2UiICI8IiBUeXBlICI+IiBOdWxsCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgbmUgInNl
cXVlbmNlIikgfHwKKyAgICAgICAgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4
dC0+dmFsdWUoKSBlcSAiOjoiKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmli
dXRlVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9r
ZW4sICJzZXF1ZW5jZSIpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICI8
Iik7CisgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgJHNlbGYtPnRva2Vu
U2hvdWxkQmUoT3RoZXJUb2tlbiwgIj4iKTsKKyAgICBpZiAoJHNlbGYtPnBhcnNlTnVsbCgpKSB7
CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4/IjsKKyAgICB9IGVsc2Ug
eworICAgICAgICByZXR1cm4gInNlcXVlbmNlPCIgLiAkdHlwZSAuICI+IjsKKyAgICB9Cit9CisK
KyMgQXR0cmlidXRlVHlwZSA6PSBQcmltaXRpdmVPclN0cmluZ1R5cGUgVHlwZVN1ZmZpeAorIyAg
ICAgfCBTY29wZWROYW1lIFR5cGVTdWZmaXgKKyMgICAgIHwgIm9iamVjdCIgVHlwZVN1ZmZpeAor
IyAgICAgfCAiRGF0ZSIgVHlwZVN1ZmZpeAorIyAgICAgfCAiYW55IiBUeXBlU3VmZml4U3RhcnRp
bmdXaXRoQXJyYXkKK3N1YiBwYXJzZUF0dHJpYnV0ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgbXkgQHR5cGVz
ID0gKCk7CisKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAg
ICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAgIHB1c2goQHR5cGVzLCAib2JqZWN0Iik7CisgICAg
ICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICAg
ICAgICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOworICAgICAgICB9CisgICAgICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiRGF0ZSIpIHsKKyAgICAgICAgICAgICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICAgICAgcHVzaChAdHlwZXMsICJEYXRlIik7CisgICAgICAgICAgICBwdXNoKEB0
eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICAgICAgICAgIHJldHVybiBq
b2luKCcnLCBAdHlwZXMpOworICAgICAgICB9CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiYW55IikgeworICAgICAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICBw
dXNoKEB0eXBlcywgImFueSIpOworICAgICAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCl9KTsKKyAgICAgICAgICAgIHJldHVybiBq
b2luKCcnLCBAdHlwZXMpOworICAgICAgICB9CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXih1bnNpZ25lZHxzaG9ydHxsb25nfGJvb2xlYW58Ynl0ZXxvY3RldHxmbG9hdHxkb3VibGV8
RE9NU3RyaW5nKSQvKSB7CisgICAgICAgICAgICBwdXNoKEB0eXBlcywgJHNlbGYtPnBhcnNlUHJp
bWl0aXZlT3JTdHJpbmdUeXBlKCkpOworICAgICAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgICAgICByZXR1cm4gam9pbignJywgQHR5cGVz
KTsKKyAgICAgICAgfQorICAgICAgICBwdXNoKEB0eXBlcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFt
ZSgpKTsKKyAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7
CisgICAgICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAg
ICAgcHVzaChAdHlwZXMsICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKSk7CisgICAgICAgIHB1c2go
QHR5cGVzLCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAgICAgICByZXR1cm4gam9p
bignJywgQHR5cGVzKTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkICIgLiAkbmV4dC0+dmFs
dWUoKSAuICIgd2hpbGUgcGFyc2luZyBBdHRyaWJ1dGVUeXBlLiI7Cit9CisKKyMgQ29uc3RUeXBl
IDo9IFByaW1pdGl2ZU9yU3RyaW5nVHlwZSBOdWxsCitzdWIgcGFyc2VDb25zdFR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlUHJpbWl0aXZl
T3JTdHJpbmdUeXBlKCk7CisgICAgaWYgKCRzZWxmLT5wYXJzZU51bGwoKSkgeworICAgICAgICBy
ZXR1cm4gJHR5cGUgLiAiPyI7CisgICAgfQorICAgIHJldHVybiAkdHlwZTsKK30KKworIyBQcmlt
aXRpdmVPclN0cmluZ1R5cGUgOj0gVW5zaWduZWRJbnRlZ2VyVHlwZQorIyAgICAgfCAiYm9vbGVh
biIgfCAiYnl0ZSIgfCAib2N0ZXQiIHwgImZsb2F0IiB8ICJkb3VibGUiIHwgIkRPTVN0cmluZyIK
K3N1YiBwYXJzZVByaW1pdGl2ZU9yU3RyaW5nVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5T
aG91bGRCZUlkZW50aWZpZXIoJG5leHQsICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gL14odW5zaWduZWR8c2hvcnR8bG9uZykkLykgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICBpZiAoJHRva2VuLT52YWx1ZSgpID1+IC9eKGJv
b2xlYW58Ynl0ZXxvY3RldHxmbG9hdHxkb3VibGV8RE9NU3RyaW5nKSQvKSB7CisgICAgICAgIHJl
dHVybiAkMTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkICIgLiAkdG9rZW4tPnZhbHVlKCkg
LiAid2hpbGUgcGFyc2luZyBQcmltaXRpdmVPclN0cmluZ1R5cGUuIjsKK30KKworIyBVbnNpZ25l
ZEludGVnZXJUeXBlIDo9ICJ1bnNpZ25lZCIgSW50ZWdlclR5cGUgfCBJbnRlZ2VyVHlwZQorc3Vi
IHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRC
ZUlkZW50aWZpZXIoJG5leHQsICIgaW4gIiAuIF9fTElORV9fKTsKKworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gInVuc2lnbmVkICIgLiAkc2VsZi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworICAg
IH0KKyAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZWdlclR5cGUoKTsKK30KKworIyBJbnRlZ2Vy
VHlwZSA6PSAic2hvcnQiIHwgImludCIgfCAibG9uZyIgT3B0aW9uYWxMb25nCisjIChTcGVjOiBJ
bnRlZ2VyVHlwZSA6PSAic2hvcnQiIHwgImxvbmciIE9wdGlvbmFsTG9uZykKK3N1YiBwYXJzZUlu
dGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9r
ZW4sICIgaW4gIiAuIF9fTElORV9fKTsKKworICAgIGlmICgkdG9rZW4tPnZhbHVlKCkgZXEgImxv
bmciKSB7CisgICAgICAgIGlmICgkc2VsZi0+cGFyc2VPcHRpb25hbExvbmcoKSkgeworICAgICAg
ICAgICAgcmV0dXJuICJsb25nIGxvbmciOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAgICAgICAgICAg
IHJldHVybiAibG9uZyI7CiAgICAgICAgIH0KICAgICB9CisgICAgZGllICJJbnRlZ2VyVHlwZSBz
aG91bGQgYmUgaW50LCBzaG9ydCBvciBsb25nLCBidXQgIiAuICR0b2tlbi0+dmFsdWUoKSB1bmxl
c3MgJHRva2VuLT52YWx1ZSgpID1+IC9eKHNob3J0fGludCkkLzsKKyAgICByZXR1cm4gJHRva2Vu
LT52YWx1ZSgpOworfQogCi0gICAgcmV0dXJuIFwlYXR0cnM7CisjIE9wdGlvbmFsTG9uZyA6PSAi
bG9uZyIgfCBlcHNpbG9uCitzdWIgcGFyc2VPcHRpb25hbExvbmcKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJsb25n
IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorICAgIHJldHVybiAwOwogfQogCi1zdWIgcGFyc2VQYXJhbWV0ZXJzCisjIFR5cGVTdWZmaXgg
Oj0gIlsiICJdIiBUeXBlU3VmZml4IHwgIj8iIFR5cGVTdWZmaXhTdGFyaW5nV2l0aEFycmF5IHwg
ZXBzaWxvbgorc3ViIHBhcnNlVHlwZVN1ZmZpeAogewotICAgIG15ICRuZXdEYXRhTm9kZSA9IHNo
aWZ0OwotICAgIG15ICRtZXRob2RTaWduYXR1cmUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15IEBzdWZmaXggPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZh
bHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiXSIpOworICAgICAgICBwdXNoKEBzdWZmaXgs
ICJbXSIpOworICAgICAgICBwdXNoKEBzdWZmaXgsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgp
fSk7CisgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52
YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcHVz
aChAc3VmZml4LCAiPyIpOworICAgICAgICBwdXNoKEBzdWZmaXgsIEB7JHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAc3VmZml4
OworfQogCi0gICAgIyBTcGxpdCBhcmd1bWVudHMgYXQgY29tbWFzIGJ1dCBvbmx5IGlmIHRoZSBj
b21tYQotICAgICMgaXMgbm90IHdpdGhpbiBhdHRyaWJ1dGUgYnJhY2tldHMsIGV4cHJlc3NlZCBo
ZXJlCi0gICAgIyBhcyBiZWluZyBmb2xsb3dlZCBieSBhICddJyB3aXRob3V0IGEgcHJlY2VkaW5n
ICdbJy4KLSAgICAjIE5vdGUgdGhhdCB0aGlzIGFzc3VtZXMgdGhhdCBhdHRyaWJ1dGVzIGRvbid0
IG5lc3QuCi0gICAgbXkgQHBhcmFtcyA9IHNwbGl0KC8sKD8hW15bXSpcXSkvLCAkbWV0aG9kU2ln
bmF0dXJlKTsKLSAgICBmb3JlYWNoIChAcGFyYW1zKSB7Ci0gICAgICAgIG15ICRsaW5lID0gJF87
CisjIFR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSA6PSAiWyIgIl0iIFR5cGVTdWZmaXggfCBl
cHNpbG9uCitzdWIgcGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15IEBzdWZmaXggPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYg
JG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiXSIsICIgaW4gIiAuIF9fTElO
RV9fKTsKKyAgICAgICAgcHVzaChAc3VmZml4LCAiW10iKTsKKyAgICAgICAgcHVzaChAc3VmZml4
LCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBzdWZm
aXg7Cit9CiAKLSAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZVBhcmFt
ZXRlclNlbGVjdG9yLzsKLSAgICAgICAgbXkgJHBhcmFtRGlyZWN0aW9uID0gJDE7Ci0gICAgICAg
IG15ICRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQyKSA/ICQyIDogIiAiKTsg
Y2hvcCgkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBteSAkcGFyYW1UeXBlID0g
KGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxu
KSIpKTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZVN1ZmZpeCA9IGRlZmluZWQoJDQpID8gJDQgOiAi
IjsKLSAgICAgICAgbXkgJHBhcmFtTmFtZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisjIE51bGwgOj0gIj8iIHwgZXBzaWxv
bgorc3ViIHBhcnNlTnVsbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAgICAgbXkg
JGlzTnVsbGFibGUgPSAkcGFyYW1UeXBlU3VmZml4IGVxICI/IjsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYm
ICRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuIFRydWU7CisgICAgfQorICAgIHJldHVybiBGYWxzZTsKK30KIAotICAgICAg
ICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKLSAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPmRpcmVjdGlvbigkcGFyYW1EaXJlY3Rpb24pOwotICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+bmFtZSgkcGFyYW1OYW1lKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHBh
cmFtVHlwZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZXMoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Ci0gICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKCRpc051bGxhYmxlKTsKKyMgUmV0dXJuVHlwZSA6
PSBUeXBlIHwgInZvaWQiCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKIAotICAgICAgICBteSAkYXJyYXlSZWYgPSAkbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnM7
Ci0gICAgICAgIHB1c2goQCRhcnJheVJlZiwgJHBhcmFtRGF0YU5vZGUpOworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAidm9pZCIpIHsKKyAgICAgICAgJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybiAidm9pZCI7CisgICAgfQorICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VUeXBlKCk7Cit9CisKKyMgU2NvcGVkTmFtZUxpc3QgOj0gU2NvcGVkTmFtZSBTY29w
ZWROYW1lcworc3ViIHBhcnNlU2NvcGVkTmFtZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBuYW1lTGlzdCA9ICgpOworCisgICAgcHVzaChAbmFtZUxpc3QsICRzZWxmLT5w
YXJzZVNjb3BlZE5hbWUoKSk7CisgICAgcHVzaChAbmFtZUxpc3QsIEB7JHNlbGYtPnBhcnNlU2Nv
cGVkTmFtZXMoKX0pOworICAgIHJldHVybiBcQG5hbWVMaXN0OworfQorCisjIFNjb3BlZE5hbWVz
IDo9ICIsIiBTY29wZWROYW1lIFNjb3BlZE5hbWVzIHwgZXBzaWxvbgorc3ViIHBhcnNlU2NvcGVk
TmFtZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBuYW1lcyA9ICgpOwogCi0g
ICAgICAgIHByaW50ICIgIHwgICB8PiAgUGFyYW07IFRZUEUgXCIkcGFyYW1UeXBlXCIgTkFNRSBc
IiRwYXJhbU5hbWVcIiIgLiAKLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxu
ICB8ICAgICAgICAgICAgICAiLCAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAu
ICJcbiIgdW5sZXNzICRiZVF1aWV0OyAgICAgICAgICAKKyAgICB3aGlsZSAoMSkgeworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBl
KCkgIT0gT3RoZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBuZSAiLCIpIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHB1
c2goQG5hbWVzLCAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCkpOwogICAgIH0KKyAgICByZXR1cm4g
XEBuYW1lczsKIH0KIAotc3ViIFBhcnNlSW50ZXJmYWNlCisjIFNjb3BlZE5hbWUgOj0gQWJzb2x1
dGVTY29wZWROYW1lIHwgUmVsYXRpdmVTY29wZWROYW1lCitzdWIgcGFyc2VTY29wZWROYW1lCiB7
Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAg
IG15ICRzZWN0aW9uTmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRhdGEgPSBqb2luKCIiLCBAdGVt
cG9yYXJ5Q29udGVudCk7Ci0KLSAgICAjIExvb2sgZm9yIGVuZC1vZi1pbnRlcmZhY2UgbWFyawot
ICAgICRkYXRhID1+IC99Oy9nOwotICAgICRkYXRhID0gc3Vic3RyKCRkYXRhLCBpbmRleCgkZGF0
YSwgJHNlY3Rpb25OYW1lKSwgcG9zKCRkYXRhKSAtIGxlbmd0aCgkZGF0YSkpOwotCi0gICAgJGRh
dGEgPX4gcy9bXG5ccl0vIC9nOwotCi0gICAgIyBCZWdpbm5pbmcgb2YgdGhlIHJlZ2V4cCBwYXJz
aW5nIG1hZ2ljCi0gICAgaWYgKCRzZWN0aW9uTmFtZSBlcSAiaW50ZXJmYWNlIiB8fCAkc2VjdGlv
bk5hbWUgZXEgImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFy
c2UgaW50ZXJmYWNlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKLQotICAgICAgICBteSAkaW50ZXJm
YWNlTmFtZSA9ICIiOwotICAgICAgICBteSAkaW50ZXJmYWNlRGF0YSA9ICIiOworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CiAKLSAgICAgICAgIyBNYXRjaCBpZGVudGlmaWVyIG9mIHRoZSBpbnRlcmZh
Y2UsIGFuZCBlbmNsb3NlZCBkYXRhLi4uCi0gICAgICAgICRkYXRhID1+IC8kSURMU3RydWN0dXJl
OjppbnRlcmZhY2VTZWxlY3Rvci87Ci0KLSAgICAgICAgbXkgJGlzRXhjZXB0aW9uID0gKGRlZmlu
ZWQoJDEpID8gKCQxIGVxICdleGNlcHRpb24nKSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJj
ZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVz
ID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRpbnRlcmZhY2VFeHRlbmRlZEF0dHJp
YnV0ZXMpOwotICAgICAgICAkaW50ZXJmYWNlTmFtZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRl
cmZhY2VCYXNlID0gKGRlZmluZWQoJDQpID8gJDQgOiAiIik7Ci0gICAgICAgICRpbnRlcmZhY2VE
YXRhID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
ZGF0YVxuKSIpKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUFic29sdXRlU2NvcGVkTmFtZSgpOworICAgIH0K
KyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJG5leHQsICIgaW4gIiAuIF9fTElO
RV9fKTsKKyAgICByZXR1cm4gJHNlbGYtPnBhcnNlUmVsYXRpdmVTY29wZWROYW1lKCk7Cit9CiAK
LSAgICAgICAgIyBGaWxsIGluIGtub3duIHBhcnRzIG9mIHRoZSBkb21DbGFzcyBkYXRhc3RydWN0
dXJlIG5vdy4uLgotICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKCRpc0V4Y2VwdGlvbik7
Ci0gICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZXMgPSBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkaW50ZXJmYWNlRXh0
ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcg
ZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBk
b21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFt
ZSgiQ29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJz
ZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVj
dG9yIn0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9
ID0gIlZBTFVFX0lTX01JU1NJTkciOwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3Rv
cigkbmV3RGF0YU5vZGUpOwotICAgICAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5v
ZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAg
ICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0
ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9LT57IlNpZ25hdHVyZSJ9KTsKLSAgICAgICAgICAgICRl
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn17IkNvbnN0cnVjdG9yTmFtZSJ9OwotICAgICAgICAg
ICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOworIyBBYnNvbHV0ZVNjb3Bl
ZE5hbWUgOj0gIjo6IiBpZGVudGlmaWVyIFNjb3BlZE5hbWVQYXJ0cworc3ViIHBhcnNlQWJzb2x1
dGVTY29wZWROYW1lCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+dG9rZW5T
aG91bGRCZShPdGhlclRva2VuLCAiOjoiKTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIg
LiBfX0xJTkVfXyk7CisKKyAgICBpZiAobXkgJHNjb3BlZE5hbWVQYXJ0cyA9ICRzZWxmLT5wYXJz
ZVNjb3BlZE5hbWVQYXJ0cygpKSB7CisgICAgICAgIHJldHVybiAiOjoiIC4gJHNjb3BlZE5hbWVQ
YXJ0czsKKyAgICB9IGVsc2UgeworICAgICAgICAjIGVycm9yPworICAgICAgICByZXR1cm4gIjo6
IjsKKyAgICB9Cit9CisKKyMgUmVsYXRpdmVTY29wZWROYW1lIDo9IGlkZW50aWZpZXIgU2NvcGVk
TmFtZVBhcnRzCitzdWIgcGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT50
b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4gIiAuIF9fTElORV9fKTsKKworICAg
IG15ICRuYW1lID0gJHRva2VuLT52YWx1ZSgpOworICAgIGlmIChteSAkc2NvcGVkTmFtZVBhcnRz
ID0gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZVBhcnRzKCkpIHsKKyAgICAgICAgcmV0dXJuICRuYW1l
IC4gIjo6IiAuICRzY29wZWROYW1lUGFydHM7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJu
ICRuYW1lOworICAgIH0KK30KKworIyBTY29wZWROYW1lUGFydHMgOj0gIjo6IiBpZGVudGlmaWVy
IFNjb3BlZE5hbWVQYXJ0cyB8IGVwc2lsb24KK3N1YiBwYXJzZVNjb3BlZE5hbWVQYXJ0cworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHNjb3BlZE5hbWVQYXJ0cyA9ICgpOworCisg
ICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgICAgIHVubGVzcyAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1
ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KLSAgICAgICAgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7CisgICAgICAg
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAi
IC4gX19MSU5FX18pOworICAgICAgICBwdXNoKEBzY29wZWROYW1lUGFydHMsICR0b2tlbi0+dmFs
dWUoKSk7CisgICAgfQorICAgIHJldHVybiBqb2luKCc6OicsIEBzY29wZWROYW1lUGFydHMpOwor
fQogCi0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBpbnRlcmZh
Y2VQYXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZvcmVhY2go
QGludGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0gICAgICAg
ICAgICAkbGluZSA9fiBzL1xzKi8vZzsKKyMgRXh0ZW5kZWRBdHRyaWJ1dGUxIDo9ICIoIiBBcmd1
bWVudExpc3QgIikiIHwgIj0iIEV4dGVuZGVkQXR0cmlidXRlMiB8IGVtcHR5CitzdWIgcGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZTEKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuYW1l
ID0gc2hpZnQ7CisgICAgbXkgJWF0dHIgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQt
PnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
YXR0cnskbmFtZX0gPSAkc2VsZi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYt
PnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIikiKTsKKyAgICAgICAgcmV0dXJuIFwlYXR0cjsK
KyAgICB9CiAKLSAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+cGFyZW50czsK
LSAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJGxpbmUpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkYXR0cnskbmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZTIoKTsKKyAgICAgICAgcmV0dXJuIFwlYXR0cjsKKyAgICB9CisKKyAgICBp
ZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgeworICAgICAgICAkYXR0cnskbmFtZX0gPSBbXTsK
KyAgICB9IGVsc2UgeworICAgICAgICAkYXR0cnskbmFtZX0gPSAiVkFMVUVfSVNfTUlTU0lORyI7
CisgICAgfQorICAgIHJldHVybiBcJWF0dHI7Cit9CisKKyMgRXh0ZW5kZWRBdHRyaWJ1dGUyIDo9
ICI6OiIgQWJzb2x1dGVTY29wZWROYW1lIHwgaW50ZWdlciB8IGlkZW50aWZpZXIgRXh0ZW5kZWRB
dHRyaWJ1dGUzCisjICgqKSBXZWJJREwgc3BlYyBkb2Vzbid0IGFsbG93ICJpbnRlZ2VyIi4KK3N1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUFic29sdXRlU2NvcGVkTmFtZSgpOworICAgIH0KKyAgICBteSAkdG9rZW47
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAgICAgICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOwor
ICAgIH0KKyAgICAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5T
aG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlMygkdG9rZW4tPnZhbHVlKCkpOworfQorCisj
IEV4dGVuZGVkQXR0cmlidXRlMyA6PSAiKCIgQXJndW1lbnRMaXN0ICIpIiB8ICI6OiIgU2NvcGVk
TmFtZVBhcnRzCisjICAgICB8ICImIiBFeHRlbmRlZEF0dHJpYnV0ZTQgfCAifCIgRXh0ZW5kZWRB
dHRyaWJ1dGU0IHwgZW1wdHkKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlMworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4g
JiYgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15ICVhdHRyID0gKCk7CisgICAg
ICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkYXR0cnskbmFtZX0gPSAkc2VsZi0+cGFy
c2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tl
biwgIikiKTsKKyAgICAgICAgcmV0dXJuIFwlYXR0cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAg
IG15ICRzY29wZWROYW1lID0gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZVBhcnRzKCk7CisgICAgICAg
IHJldHVybiAkbmFtZSAuICI6OiIgLiAkc2NvcGVkTmFtZTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSA9fiAvXlsmfF0kLykgewor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRu
YW1lIC4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGU0KCk7
CisgICAgfQorICAgIHJldHVybiAkbmFtZTsKK30KKworIyBFeHRlbmRlZEF0dHJpYnV0ZTQgOj0g
CisjICAgICBpZGVudGlmaWVyICImIiBFeHRlbmRlZEF0dHJpYnV0ZTQgfCBpZGVudGlmaWVyICJ8
IiBFeHRlbmRlZEF0dHJpYnV0ZTQgfCBpZGVudGlmaWVyCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZTQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEB2YWx1ZXMgPSAoKTsKKwor
ICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwor
ICAgICAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBf
X0xJTkVfXyk7CisgICAgICAgIHB1c2goQHZhbHVlcywgJHRva2VuLT52YWx1ZSgpKTsKKworICAg
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgdW5sZXNzICgkbmV4
dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgPX4gL15bJnxdJC8pIHsK
KyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGpvaW4oJycs
IEB2YWx1ZXMpOworfQogCi0gICAgICAgIHJldHVybiBpZiAkcGFyZW50c09ubHk7CitzdWIgYXBw
bHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBpZiAoZGVmaW5lZCAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJG5l
d0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBw
dXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJD
b25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAkZGF0YU5vZGUtPmNv
bnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3RGF0
YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
Pm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
bXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1
Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICglYXR0cmlidXRlcyk7
CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5c1swXTsKKyAgICAg
ICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJpYnV0ZXN7JGNvbnN0
cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENv
bnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0YU5vZGUtPmNvbnN0
cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQogCi0gICAgICAgICRpbnRlcmZhY2VE
YXRhID1+IHMvW1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxp
dCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKK3N1YiBwcmludFRva2VuCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKIAotICAgICAgICBmb3JlYWNoIG15ICRs
aW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgbmV4dCBpZiAkbGluZSA9fiAv
XlxzKiQvOwotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0dHJpYnV0ZVxXLykgewotICAg
ICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VBdHRyaWJ1dGVT
ZWxlY3Rvci87CisgICAgdW5sZXNzIChkZWZpbmVkICR0b2tlbikgeworICAgICAgICBwcmludCAi
VW5kZWZpbmVkXG4iOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHByaW50ICJ0b2tlbigi
LCAkdG9rZW4tPnR5cGUoKSwgIik6XCIiLCAkdG9rZW4tPnZhbHVlKCksICJcIlxuIjsKK30KIAot
ICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDEpID8gJDEgOiBk
aWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAg
ICBteSAkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAi
ICIpOyBjaG9wKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpOworc3ViIG5leHRUb2tlbgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgcmV0dXJuICRzZWxmLT57TmV4dFRva2VufTsK
K30KIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChkZWZpbmVkKCQz
KSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAg
ICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDQpID8gJDQgOiBk
aWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgCi0gICAgICAgICAg
ICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1h
dGNoaW5nCitzdWIgZ2V0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAgICAg
ICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmdldHRlclJhaXNlc1NlbGVjdG9yLzsK
LSAgICAgICAgICAgICAgICBteSAkZ2V0dGVyRXhjZXB0aW9uID0gKGRlZmluZWQoJDEpID8gJDEg
OiAiIik7CisgICAgJHNlbGYtPntUb2tlbn0gPSAkc2VsZi0+e05leHRUb2tlbn07CisgICAgJHNl
bGYtPntOZXh0VG9rZW59ID0gJHNlbGYtPmdldFRva2VuSW50ZXJuYWwoKTsKIAotICAgICAgICAg
ICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpzZXR0ZXJSYWlzZXNTZWxlY3Rvci87Ci0g
ICAgICAgICAgICAgICAgbXkgJHNldHRlckV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDog
IiIpOworICAgIHJldHVybiAkc2VsZi0+e1Rva2VufTsKK30KIAotICAgICAgICAgICAgICAgIG15
ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnR5cGUoJGF0dHJpYnV0ZVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CitzdWIgZ2V0VG9rZW5JbnRlcm5h
bAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5hbWUpOwotICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRyaWJ1dGVEYXRhVHlwZSk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhw
YXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Cisg
ICAgbXkgQHN0cmluZ2J1ZmZlciA9ICgpOworICAgIG15ICRjaDsKIAotICAgICAgICAgICAgICAg
IG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBw
dXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7CisgICAgd2hpbGUgKGRlZmluZWQgKCRjaCA9
ICRzZWxmLT5nZXRDaGFyKCkpKSB7CisgICAgICAgIGlmICgkY2ggPX4gL1teIFx0XG5ccl0vKSB7
CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQogCi0gICAgICAgICAgICAgICAg
cHJpbnQgIiAgfCAgfD4gIEF0dHJpYnV0ZTsgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBO
QU1FIFwiJGF0dHJpYnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBl
XCIgR0VUIEVYQ0VQVElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIk
c2V0dGVyRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0
cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgaWYgKCFk
ZWZpbmVkICRjaCkgeworICAgICAgICByZXR1cm4gJHNlbGYtPntFbXB0eVRva2VufTsKKyAgICB9
CiAKLSAgICAgICAgICAgICAgICAkZ2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAg
ICAgICAgICAgICRzZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAg
QHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkZ2V0dGVyRXhj
ZXB0aW9uKTsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9u
c30gPSBzcGxpdCgvLC8sICRzZXR0ZXJFeGNlcHRpb24pOwotICAgICAgICAgICAgfSBlbHNpZiAo
JGxpbmUgIX4gL15ccyooJElETFN0cnVjdHVyZTo6ZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggKT9j
b25zdFxzKy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50
ZXJmYWNlTWV0aG9kU2VsZWN0b3IvIG9yIGRpZSAiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIjsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAgIyBzdHJpbmcKKyAg
ICBpZiAoJGNoIGVxICJcIiIpIHsKKyAgICAgICAgcHVzaChAc3RyaW5nYnVmZmVyLCAkY2gpOwor
ICAgICAgICB3aGlsZSAoZGVmaW5lZCAoJGNoID0gJHNlbGYtPmdldENoYXIoKSkpIHsKKyAgICAg
ICAgICAgIHB1c2goQHN0cmluZ2J1ZmZlciwgJGNoKTsKKyAgICAgICAgICAgIGlmICgkY2ggZXEg
IlwiIikgeworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgJHRva2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1
ZShqb2luKCcnLCBAc3RyaW5nYnVmZmVyKSk7CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAg
fQogCi0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZp
bmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkbWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAg
ICAgICAgICAgICAgICBteSAkaXNTdGF0aWMgPSBkZWZpbmVkKCQyKTsKLSAgICAgICAgICAgICAg
ICBteSAkbWV0aG9kVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9y
IVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZE5hbWUg
PSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5l
XG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RTaWduYXR1cmUgPSAoZGVmaW5lZCgk
NSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotCi0g
ICAgICAgICAgICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3Ig
cmVnZXhwIG1hdGNoaW5nCi0KLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVy
ZTo6cmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RFeGNlcHRpb24g
PSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKLQotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRh
Tm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5pc1N0YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPm5hbWUoJG1ldGhvZE5hbWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT50eXBlKCRtZXRob2RUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVzKCRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpKTsKLQotICAgICAgICAgICAgICAgIHBy
aW50ICIgIHwgIHwtICBNZXRob2Q7IFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9k
TmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAg
ICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJl
UXVpZXQ7Ci0KLSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwot
ICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0
KC8sLywgJG1ldGhvZEV4Y2VwdGlvbik7Ci0KLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRl
cnMoJG5ld0RhdGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKKyAgICBpZiAoJGNoID1+IC9eW0Et
Wl9hLXpdJC8pIHsKKyAgICAgICAgcHVzaChAc3RyaW5nYnVmZmVyLCAkY2gpOworICAgICAgICB3
aGlsZSAoKCRjaCA9ICRzZWxmLT5nZXRDaGFyKCkpID1+IC9eWzAtOUEtWl9hLXpdJC8pIHsKKyAg
ICAgICAgICAgIHB1c2goQHN0cmluZ2J1ZmZlciwgJGNoKTsKKyAgICAgICAgfQorICAgICAgICAk
c2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAgICAgICR0b2tlbi0+dHlwZShJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKGpvaW4oJycsIEBzdHJpbmdidWZmZXIpKTsKKyAg
ICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlS
ZWYgPSAkZGF0YU5vZGUtPmZ1bmN0aW9uczsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlS
ZWYsICRuZXdEYXRhTm9kZSk7CisgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgIG15ICRy
ZXN1bHQgPSAkc2VsZi0+Z2V0RmxvYXRUb2tlbigpOworICAgIGlmIChkZWZpbmVkICRyZXN1bHQp
IHsKKyAgICAgICAgJHRva2VuLT50eXBlKEZsb2F0VG9rZW4pOworICAgICAgICAkdG9rZW4tPnZh
bHVlKCRyZXN1bHQpOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoZGVm
aW5lZCAoJHJlc3VsdCA9ICRzZWxmLT5nZXRGbG9hdFR5cGUyVG9rZW4oKSkpIHsKKyAgICAgICAg
JHRva2VuLT50eXBlKEZsb2F0VG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCRyZXN1bHQp
OworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoZGVmaW5lZCAoJHJlc3Vs
dCA9ICRzZWxmLT5nZXRJbnRlZ2VyVG9rZW4oKSkpIHsKKyAgICAgICAgJHRva2VuLT50eXBlKElu
dGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJHJlc3VsdCk7CisgICAgICAgIHJl
dHVybiAkdG9rZW47CisgICAgfQorCisgICAgIyBFeHBlY3Q6IG90aGVyLCBidXQgd291bGQgbGlr
ZSB0byB0cmVhdCAiOjoiIG9yICIuLi4iIGFzIG9uZSB0b2tlbi4KKyAgICAkdG9rZW4tPnR5cGUo
T3RoZXJUb2tlbik7CisgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAjIENoZWNrOiAi
OjoiCisgICAgaWYgKCRjaCBlcSAiOiIpIHsKKyAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIo
KTsKKyAgICAgICAgaWYgKCRjaCBlcSAiOiIpIHsKKyAgICAgICAgICAgICR0b2tlbi0+dmFsdWUo
Ijo6Iik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCRj
aCk7CisgICAgICAgICAgICAkdG9rZW4tPnZhbHVlKCI6Iik7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgIyBDaGVjazogIi4uLiIKKyAgICBpZiAoJGNoIGVx
ICIuIikgeworICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICBpZiAoJGNo
IGVxICIuIikgeworICAgICAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAg
ICAgIGlmICgkY2ggZXEgIi4iKSB7CisgICAgICAgICAgICAgICAgJHRva2VuLT52YWx1ZSgiLi4u
Iik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICRzZWxmLT51bmdldENo
YXIoJGNoKTsKKyAgICAgICAgICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCIuIik7CisgICAgICAg
ICAgICAgICAgJHRva2VuLT52YWx1ZSgiLiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuICR0b2tlbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT51bmdl
dENoYXIoIi4iKTsKKyAgICAgICAgICAgICR0b2tlbi0+dmFsdWUoIi4iKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICAkdG9rZW4tPnZhbHVlKCRjaCk7Cisg
ICAgcmV0dXJuICR0b2tlbjsKK30KKworIyBpbnRlZ2VyID0gLT8oMChbMC03XSp8W1h4XVswLTlB
LUZhLWZdKyl8WzEtOV1bMC05XSopCitzdWIgZ2V0SW50ZWdlclRva2VuCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSBAYnVmZmVyID0gKCk7CisgICAgbXkgJGNoOworCisgICAgZXZh
bCB7CisgICAgICAgICMgVGVzdCAiLT8iLgorICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigp
OworICAgICAgICBpZiAoJGNoIGVxICItIikgeworICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAk
Y2gpOworICAgICAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgaWYgKCRjaCBlcSAiMCIpIHsKKyAg
ICAgICAgICAgICMgRm91bmQgMCwgdHJ5OiAiKFswLTddKnxbWHhdWzAtOUEtRmEtZl0rIi4KKyAg
ICAgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgICAgICBpZiAoJGNoID1+
IC9eW1h4XSQvKSB7CisgICAgICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOworICAgICAg
ICAgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgICAgICAgICAgcHVzaChA
YnVmZmVyLCAkY2gpOworICAgICAgICAgICAgICAgIGRpZSAiRXhwZWN0IFswLTlBLUZhLWZdIGFm
dGVyIFtYeF0sIGJ1dCBub3QuIiB1bmxlc3MgKCRjaCA9fiAvXlswLTlBLUZhLWZdLyk7CisKKyAg
ICAgICAgICAgICAgICB3aGlsZSAoKCRjaCA9ICRzZWxmLT5nZXRDaGFyKCkpID1+IC9eWzAtOUEt
RmEtZl0vKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRsaW5l
ID1+IC8kSURMU3RydWN0dXJlOjpjb25zdGFudFNlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBt
eSAkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7IGNo
b3AoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgICAgICBteSAkY29uc3RU
eXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkY29uc3ROYW1lID0gKGRlZmluZWQoJDMp
ID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAg
ICAgICAgICAgICBteSAkY29uc3RWYWx1ZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0KLSAgICAgICAgICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPm5hbWUoJGNvbnN0TmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50
eXBlKCRjb25zdFR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJGNv
bnN0VmFsdWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRjb25zdEV4dGVuZGVkQXR0cmlidXRlcykpOwot
Ci0gICAgICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5jb25zdGFudHM7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwotCi0gICAgICAg
ICAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQRSBcIiRjb25zdFR5cGVcIiBO
QU1FIFwiJGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxuIiB1bmxlc3MgJGJlUXVp
ZXQ7CisgICAgICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAgICAgICAg
ICAgIHdoaWxlICgoJGNoID0gJHNlbGYtPmdldENoYXIoKSkgPX4gL15bMC03XS8pIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICRzZWxmLT51bmdldENoYXIoJGNoKTsKKyAgICAgICAg
fSBlbHNpZiAoJGNoID1+IC9eWzEtOV0vKSB7CisgICAgICAgICAgICAjIEZvdW5kIFsxLTldLCB0
cnk6ICJbMC05XSoiLgorICAgICAgICAgICAgd2hpbGUgKCgkY2ggPSAkc2VsZi0+Z2V0Q2hhcigp
KSA9fiAvXlswLTldLykgeworICAgICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICRzZWxmLT51bmdldENoYXIoJGNoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICMgT3RoZXJ3aXNlLCBub3QgaW50ZWdlci4KKyAgICAgICAg
ICAgIGRpZSAiTm90IGludGVnZXIiOwogICAgICAgICB9CisgICAgfTsKIAotICAgICAgICBwcmlu
dCAiICB8LS0tLT4gSW50ZXJmYWNlOyBOQU1FIFwiJGludGVyZmFjZU5hbWVcIiIgLgotICAgICAg
ICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1
aWV0OworICAgIGlmICgkQCkgeworICAgICAgICB3aGlsZSAoZGVmaW5lZCAoJGNoID0gcG9wKEBi
dWZmZXIpKSkgeworICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAgICB9
CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgcmV0dXJuIGpvaW4oJycsIEBidWZmZXIpOwog
fQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIERldGVybWluZVBhcnNlTW9kZQorIyBmbG9hdCA9
IC0/WzAtOV0rW0VlXVsrLV0/WzAtOV0rCitzdWIgZ2V0RmxvYXRUeXBlMlRva2VuCiB7Ci0gICAg
bXkgJG9iamVjdCA9IHNoaWZ0OyAgCi0gICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15IEBidWZmZXIgPSAoKTsKKyAgICBteSAkY2g7CisKKyAgICBldmFs
IHsKKyAgICAgICAgIyBUZXN0ICItPyIuCisgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7
CisgICAgICAgIGlmICgkY2ggZXEgIi0iKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRj
aCk7CisgICAgICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICAjIFRyeTogIlswLTldKyIuCisgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNo
KTsKKyAgICAgICAgaWYgKCRjaCA9fiAvW14wLTldLykgeworICAgICAgICAgICAgZGllICJFeHBl
Y3QgWzAtOV0sIGJ1dCBub3QuIjsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoKCRjaCA9ICRz
ZWxmLT5nZXRDaGFyKCkpID1+IC9eWzAtOV0kLykgeworICAgICAgICAgICAgcHVzaChAYnVmZmVy
LCAkY2gpOworICAgICAgICB9CisKKyAgICAgICAgIyBUcnk6ICJbRWVdIi4KKyAgICAgICAgcHVz
aChAYnVmZmVyLCAkY2gpOworICAgICAgICBpZiAoJGNoID1+IC9bXkVlXS8pIHsKKyAgICAgICAg
ICAgIGRpZSAiRXhwZWN0IFtFZV0sIGJ1dCBub3QuIjsKKyAgICAgICAgfQogCi0gICAgbXkgJG1v
ZGUgPSBNT0RFX1VOREVGOwotICAgIGlmICgkXyA9fiAvbW9kdWxlLykgewotICAgICAgICAkbW9k
ZSA9IE1PREVfTU9EVUxFOwotICAgIH0gZWxzaWYgKCRfID1+IC9pbnRlcmZhY2UvKSB7Ci0gICAg
ICAgICRtb2RlID0gTU9ERV9JTlRFUkZBQ0U7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2V4Y2VwdGlv
bi8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0VYQ0VQVElPTjsKKyAgICAgICAgIyBUcnk6ICJb
Ky1dPyIuCisgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgIGlmICgkY2gg
PX4gL15bK1wtXSQvKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAg
ICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICB9CisKKyAgICAgICAgIyBUcnk6
ICJbMC05XSsiLgorICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgIGlmICgkY2gg
PX4gL1teMC05XS8pIHsKKyAgICAgICAgICAgIGRpZSAiRXhwZWN0IFswLTldLCBidXQgbm90LiI7
CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUoKCRjaCA9ICRzZWxmLT5nZXRDaGFyKCkpID1+IC9e
WzAtOV0vKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgIH0KKyAg
ICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgIH07CisKKyAgICBpZiAoJEApIHsKKyAg
ICAgICAgd2hpbGUgKGRlZmluZWQgKCRjaCA9IHBvcChAYnVmZmVyKSkpIHsKKyAgICAgICAgICAg
ICRzZWxmLT51bmdldENoYXIoJGNoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CiAgICAg
fQorICAgIHJldHVybiBqb2luKCcnLCBAYnVmZmVyKTsKK30KKworIyBmbG9hdCA9IC0/KFswLTld
K1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWystXT9bMC05XSspPworIyBlLmcuIDAuODc3
NzcsIDAuMTIzNEUrMTAsIC0xMjMuMmUwCitzdWIgZ2V0RmxvYXRUb2tlbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQGJ1ZmZlciA9ICgpOworICAgIG15ICRjaDsKKworICAgIGV2
YWwgeworICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICBpZiAoJGNoIGVx
ICItIikgeworICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOworICAgICAgICAgICAgJGNo
ID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRmaXJzdGNoID0g
JGNoOworCisgICAgICAgICMgVHJ5OiBbMC05XSsKKyAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gp
OworICAgICAgICBpZiAoJGNoID1+IC9bXjAtOS5dLykgeworICAgICAgICAgICAgZGllICJFeHBl
Y3QgWzAtOV0sIGJ1dCBub3QuIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoJGNoID1+IC9eWzAt
OV0kLykgeworICAgICAgICAgICAgd2hpbGUgKCgkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpKSA9fiAv
XlswLTldJC8pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgIH0KKyAgICAg
ICAgIyBUcnk6IFwuCisgICAgICAgIGlmICgkY2ggbmUgIi4iKSB7CisgICAgICAgICAgICBkaWUg
IkV4cGVjdCAuLCBidXQgJGNoLiI7CisgICAgICAgIH0KIAotICAgIHJldHVybiAkbW9kZTsKKyAg
ICAgICAgIyBUcnk6IFswLTldKiBvciBbMC05XSsKKyAgICAgICAgJGNoID0gJHNlbGYtPmdldENo
YXIoKTsKKyAgICAgICAgaWYgKCRjaCA9fiAvXlswLTldJC8pIHsKKyAgICAgICAgICAgIHB1c2go
QGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgICAgIHdoaWxlICgoJGNoID0gJHNlbGYtPmdldENoYXIo
KSkgPX4gL15bMC05XS8pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoJGZpcnN0Y2gg
ZXEgIi4iKSB7CisgICAgICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAg
ICAgICAgICAgIGRpZSAiRXhwZWN0IFswLTldKywgYnV0IG5vdC4iOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjIFRyeTogKFtFZV1bKy1dP1swLTldKyk/Cisg
ICAgICAgIGlmICgkY2ggPX4gL1tFZV0vKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRj
aCk7CisKKyAgICAgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgICAgICBp
ZiAoJGNoID1+IC9eWytcLV0kLykgeworICAgICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNo
KTsKKyAgICAgICAgICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAjIFRyeTogWzAtOV0rCisgICAgICAgICAgICBwdXNoKEBidWZmZXIs
ICRjaCk7CisgICAgICAgICAgICBpZiAoJGNoID1+IC9bXjAtOV0vKSB7CisgICAgICAgICAgICAg
ICAgZGllICJFeHBlY3QgWzAtOV0rLCBidXQgbm90LiI7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICB3aGlsZSgoJGNoID0gJHNlbGYtPmdldENoYXIoKSkgPX4gL15bMC05XS8pIHsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9OworCisgICAgaWYgKCRAKSB7CisgICAgICAgIHdoaWxlKGRlZmluZWQgKCRjaCA9IHBv
cChAYnVmZmVyKSkpIHsKKyAgICAgICAgICAgICRzZWxmLT51bmdldENoYXIoJGNoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT51bmdldENoYXIoJGNoKTsK
KyAgICByZXR1cm4gam9pbignJywgQGJ1ZmZlcik7CiB9CiAKLSMgSW50ZXJuYWwgaGVscGVyCi1z
dWIgUHJvY2Vzc1NlY3Rpb24KK3N1YiB1bmdldENoYXIKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7Ci0gIAotICAgIGlmICgkcGFyc2VNb2RlIGVxIE1PREVfTU9EVUxFKSB7Ci0gICAgICAgIGRp
ZSAoIlR3byBtb2R1bGVzIGluIG9uZSBmaWxlISBGYXRhbCBlcnJvciFcbiIpIGlmICgkZG9jdW1l
bnQgbmUgMCk7Ci0gICAgICAgICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVudCgpOwotICAgICAg
ICAkb2JqZWN0LT5QYXJzZU1vZHVsZSgkZG9jdW1lbnQpOwotICAgIH0gZWxzaWYgKCRwYXJzZU1v
ZGUgZXEgTU9ERV9JTlRFUkZBQ0UgfHwgJHBhcnNlTW9kZSBlcSBNT0RFX0VYQ0VQVElPTikgewot
ICAgICAgICBteSAkbm9kZSA9IG5ldyBkb21DbGFzcygpOwotICAgICAgICBteSAkc2VjdGlvbk5h
bWUgPSAkcGFyc2VNb2RlIGVxIE1PREVfSU5URVJGQUNFID8gImludGVyZmFjZSIgOiAiZXhjZXB0
aW9uIjsKLSAgICAgICAgJG9iamVjdC0+UGFyc2VJbnRlcmZhY2UoJG5vZGUsICRzZWN0aW9uTmFt
ZSk7Ci0gICAgCi0gICAgICAgIGRpZSAoIk5vIG1vZHVsZSBzcGVjaWZpZWQhIEZhdGFsIEVycm9y
IVxuIikgaWYgKCRkb2N1bWVudCBlcSAwKTsKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJGRvY3Vt
ZW50LT5jbGFzc2VzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRub2RlKTsKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRjaCA9IHNoaWZ0OworICAgIGlmIChkZWZpbmVkICRjaCkg
eworICAgICAgICBwdXNoKEB7JHNlbGYtPntSZWFkQnVmZmVyfX0sICRjaCk7CiAgICAgfQorfQog
Ci0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKK3N1YiBnZXRDaGFyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKworICAgIG15ICRjaCA9IHBvcChAeyRzZWxmLT57UmVhZEJ1ZmZlcn19KTsK
KyAgICBpZiAoZGVmaW5lZCAkY2gpIHsKKyAgICAgICAgcmV0dXJuICRjaDsKKyAgICB9CisgICAg
cmV0dXJuIHVubGVzcyBkZWZpbmVkIEB7JHNlbGYtPntEb2N1bWVudENvbnRlbnR9fTsKKworICAg
IG15ICRsaW5lID0gc2hpZnQoQHskc2VsZi0+e0RvY3VtZW50Q29udGVudH19KTsKKyAgICByZXR1
cm4gdW5sZXNzIGRlZmluZWQgJGxpbmU7CisKKyAgICBteSBAY2hhcnMgPSBzcGxpdCgvLywgJGxp
bmUpOworICAgICRjaCA9IHNoaWZ0KEBjaGFycyk7CisgICAgcHVzaChAeyRzZWxmLT57UmVhZEJ1
ZmZlcn19LCByZXZlcnNlKEBjaGFycykpOworICAgIHJldHVybiAkY2g7Cit9CisKK3N1YiBkdW1w
RXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAgbXkgJHBhZFN0ciA9IHNoaWZ0OworICAgIG15ICRh
dHRycyA9IHNoaWZ0OworCisgICAgaWYgKCEleyRhdHRyc30pIHsKKyAgICAgICAgcmV0dXJuICIi
OworICAgIH0KKworICAgIG15IEB0ZW1wOworICAgIHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1
ZSkgPSBlYWNoKCV7JGF0dHJzfSkpIHsKKyAgICAgICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1
ZSIpOworICAgIH0KKworICAgIHJldHVybiAkcGFkU3RyIC4gIlsiIC4gam9pbigiLCAiLCBAdGVt
cCkgLiAiXSI7CiB9CiAKIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdENhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0Q2FsbGJhY2suaWRsCmluZGV4IDM1NDg1OWEzNzk3Njc0MmZmYjk5YzIz
MTM1OTFmZmM5NDlmYzFlMTcuLjA0M2U1NDk0OGMyZWU1ODdkYWZhNjlhODhiMGE3ZTNmNjljZDRm
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0Q2FsbGJhY2suaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKIC8vIFRoaXMgSURMIGZpbGUgaXMg
Zm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIHdpdGggYW4gaW50ZXJmYWNl
CiAvLyB0aGF0IGhhcyB0aGUgIkNhbGxiYWNrIiBhdHRyaWJ1dGUgYW5kIGZvciB0cmFja2luZyBj
aGFuZ2VzIGluIGl0cyBvdXB1dC4KIG1vZHVsZSB0ZXN0IHsKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBDYWxsYmFjawot
ICAgIF0gVGVzdENhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBUZXN0Q2FsbGJhY2sgewogICAg
ICAgYm9vbGVhbiBjYWxsYmFja1dpdGhOb1BhcmFtKCk7CiAgICAgICBib29sZWFuIGNhbGxiYWNr
V2l0aENsYXNzMVBhcmFtKGluIENsYXNzMSBjbGFzczFQYXJhbSk7CiAgICAgICBib29sZWFuIGNh
bGxiYWNrV2l0aENsYXNzMlBhcmFtKGluIENsYXNzMiBjbGFzczJQYXJhbSwgaW4gRE9NU3RyaW5n
IHN0ckFyZyk7CkBAIC00Miw0ICs0Miw0IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgIGJvb2xlYW4g
Y2FsbGJhY2tXaXRoQm9vbGVhbihpbiBib29sZWFuIGJvb2xQYXJhbSk7CiAgICAgICBbUGFzc1Ro
aXNUb0NhbGxiYWNrPVRoaXNDbGFzc10gYm9vbGVhbiBjYWxsYmFja1JlcXVpcmVzVGhpc1RvUGFz
cyhpbiBDbGFzczggY2xhc3M4UGFyYW0sIGluIFRoaXNDbGFzcyB0aGlzQ2xhc3NQYXJhbSk7CiAg
ICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsCmluZGV4IDMyOWZhNWQ2YWY1
ZDM2M2QxNDA5NmI5NzE0NzA1OTBlNTllNDM2ZmYuLmIzYWUzOWE4ZTM5NDU1ZWFhMTEyMzI3NGM1
NGVjMDU1MGQ0ZGM5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsCkBAIC0yOCwxMCAr
MjgsMTAgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ3VzdG9tTmFtZWRHZXR0ZXIKLSAgICBdIFRlc3RDdXN0b21OYW1lZEdldHRlciB7Cisg
ICAgXSBpbnRlcmZhY2UgVGVzdEN1c3RvbU5hbWVkR2V0dGVyIHsKICAgICAgICAgdm9pZCBhbm90
aGVyRnVuY3Rpb24oaW4gRE9NU3RyaW5nIHN0cik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJp
dHkuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REb21haW5T
ZWN1cml0eS5pZGwKaW5kZXggYmJkNDZlMGQ0OWZjZjcyN2U1ZmVjM2EzMGVlY2ViYjQ3NWFiY2E3
Ny4uZmU4OTYzMTUzZTc1N2ViZjYwZGEzNTNiNDkwZTM5ZjFlNDJkNWVmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REb21haW5TZWN1cml0eS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REb21haW5T
ZWN1cml0eS5pZGwKQEAgLTI3LDExICsyNywxMSBAQAogICovCiAKIG1vZHVsZSB0ZXN0IHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ2hlY2tTZWN1cml0eQotICAgIF0gVGVzdEFj
dGl2ZURPTU9iamVjdCB7CisgICAgXSBpbnRlcmZhY2UgVGVzdEFjdGl2ZURPTU9iamVjdCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGV4Y2l0aW5nQXR0cjsKICAgICAgICAgdm9p
ZCBleGNpdGluZ0Z1bmN0aW9uKGluIE5vZGUgbmV4dENoaWxkKTsKICAgICAgICAgW0RvTm90Q2hl
Y2tTZWN1cml0eV0gdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSk7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdEV2ZW50Q29uc3RydWN0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RFdmVudENvbnN0cnVjdG9yLmlkbAppbmRleCA3MDZmMWUyZmM2YzZiNzRm
Yzk2ZGFmMDE5MWY3Y2IyYjI1ZDA3NGQ5Li44Njg0NTUzZWM0Y2RhODBlZTlhODlmYzU0MTI0ODZk
NmQ3MmM0NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdEV2ZW50Q29uc3RydWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRDb25zdHJ1Y3Rvci5pZGwKQEAgLTI5LDExICsyOSwxMSBA
QAogLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5l
cmF0b3IgYW5kIGZvciB0cmFja2luZwogLy8gY2hhbmdlcyBpbiBpdHMgb3VwdXQuCiBtb2R1bGUg
dGVzdCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxh
dGU9RXZlbnQKLSAgICBdIFRlc3RFdmVudENvbnN0cnVjdG9yIHsKKyAgICBdIGludGVyZmFjZSBU
ZXN0RXZlbnRDb25zdHJ1Y3RvciB7CiAgICAgICAgIC8vIEF0dHJpYnV0ZXMKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdHRyMTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIGF0dHIyOworICAg
ICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgYXR0cjI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEV2ZW50VGFyZ2V0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRUYXJnZXQuaWRsCmluZGV4IDIyZTVi
OTY0NmEwYTdlNjEzYjRkZWE5NjNjNTk1YzQwNDU1MTFlYjcuLjhmYjZlOGFmNDNlYWFhZjQ0Zjlh
YmVhNGFjYWQxMzM0NmY3M2FlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRUYXJnZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRUYXJnZXQuaWRsCkBAIC0yOCwyMyArMjgsMjMg
QEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
RXZlbnRUYXJnZXQsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIE5hbWVkR2V0dGVy
LAogICAgICAgICBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkCi0gICAgXSBUZXN0RXZlbnRUYXJnZXQg
eworICAgIF0gaW50ZXJmYWNlIFRlc3RFdmVudFRhcmdldCB7CiAKLSAgICAgICAgTm9kZSBpdGVt
KGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgTm9kZSBpdGVtKFtJ
c0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIAogICAgICAgICB2b2lkIGFkZEV2ZW50
TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0
dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9v
bGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50
IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
RXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
RXhjZXB0aW9uLmlkbAppbmRleCBmMzRhZjAwMzUyNWMzM2MyNDZjM2FlZDdiYTlhYzFiMzUyMjg0
YjQxLi41ZTE5MWU1MGJkZDE4N2EyYjQxMzNmMjg1MGE3NjBjYmY1Yzg2MWI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEV4Y2VwdGlvbi5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFeGNlcHRpb24u
aWRsCkBAIC0yOSw0ICsyOSw0IEBAIG1vZHVsZSB0ZXN0IHsKICAgICBleGNlcHRpb24gVGVzdEV4
Y2VwdGlvbiB7CiAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RJbnRlcmZhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RJbnRlcmZhY2UuaWRsCmluZGV4IGEwNThmMWE5ZWRjMjY5Y2Y2MWZkZTZmNTFhMDll
MDBkN2Y4NTU1ODkuLjBhYzAxYWY1ZmU4NTcwMGIyYmUyMWUzMzdmOGMyNjIyOGYxZjMyYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW50ZXJm
YWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdElu
dGVyZmFjZS5pZGwKQEAgLTI5LDEzICsyOSwxMyBAQAogLy8gVGhpcyBJREwgZmlsZSBpcyBmb3Ig
dGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZwogLy8g
Y2hhbmdlcyBpbiBpdHMgb3VwdXQuCiBtb2R1bGUgdGVzdCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAgICAgQ3VzdG9tTmFtZWRTZXR0ZXIs
CiAgICAgICAgIENvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMiwKICAgICAgICAgQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKLSAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9N
U3RyaW5nIHN0cjEsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBz
dHIyKSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIHN0cjEsIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHIyKSwKICAgICAgICAgQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24KLSAgICBdIFRlc3RJbnRlcmZhY2UgeworICAgIF0gaW50ZXJmYWNl
IFRlc3RJbnRlcmZhY2UgewogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5pZGwKaW5kZXggNTM2MzkzYjM4NzJjMjRhZjM0NjgzNGMwN2MxYTg2MGQyNTAxNDI1
YS4uNzZmMjc4ZDg5MjhkMWI5Y2JjYTZhZjg1MjgwNGU3OTlhZmMyYjBjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0yOSw0ICsyOSw0IEBAIG1vZHVsZSB0ZXN0
IHsKICAgICBpbnRlcmZhY2UgVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgewogICAgICAgICB2
b2lkIG1ldGhvZChpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKICAgICB9Owot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE5hbWVkQ29uc3RydWN0b3IuaWRsCmluZGV4IGUwZjg1MzllNGNjZjNmY2FlNDlj
N2Q0YzM0ODc0NDYwOTA4ODdmYjYuLjFhM2M4ODRkZjUyMTQ5ZTk1OGU2ZDdlNGZiMTQ4ZTQ2MGFh
NjhlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0TmFtZWRDb25zdHJ1Y3Rvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3ROYW1lZENvbnN0cnVjdG9yLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAv
LyBUaGlzIElETCBmaWxlIGlzIGZvciB0ZXN0aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRv
ciBhbmQgZm9yIHRyYWNraW5nCiAvLyBjaGFuZ2VzIGluIGl0cyBvdXB1dC4KIG1vZHVsZSB0ZXN0
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAotICAg
ICAgICBOYW1lZENvbnN0cnVjdG9yPUF1ZGlvKGluIERPTVN0cmluZyBzdHIxLCBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3RyMiwgaW4gW09wdGlvbmFsPURlZmF1
bHRJc051bGxTdHJpbmddIERPTVN0cmluZyBzdHIzKSwKKyAgICAgICAgTmFtZWRDb25zdHJ1Y3Rv
cj1BdWRpbyhpbiBET01TdHJpbmcgc3RyMSwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIHN0cjIsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBET01T
dHJpbmcgc3RyMyksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uCi0gICAgXSBU
ZXN0TmFtZWRDb25zdHJ1Y3RvciB7CisgICAgXSBpbnRlcmZhY2UgVGVzdE5hbWVkQ29uc3RydWN0
b3IgewogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3ROb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0Tm9kZS5pZGwKaW5kZXggMzIxNjIxY2RjNjY0N2M5NDRjMDhhNDk4OTkwOWUx
ZjQzOWQ4YTVkOS4uZjZjNmY5OGM1MzU4MzU4MTkwYzQ1NjM5Yjc0MGJhN2I5Mjg0NWQ1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROb2RlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5vZGUuaWRs
CkBAIC0yMCwxMSArMjAsMTEgQEAKIAogbW9kdWxlIHRlc3QgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBDb25zdHJ1Y3RvciwKICAgICAg
ICAgVjhEZXBlbmRlbnRMaWZldGltZQotICAgIF0gVGVzdE5vZGUgOiBOb2RlIHsKKyAgICBdIGlu
dGVyZmFjZSBUZXN0Tm9kZSA6IE5vZGUgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNTEzZGYxMDc0
MDBhOTMyOTMzOGNiZjhjNzg2Y2U0YjM3NmIxNTQyMS4uNzdmZmRmOWRiNTA4NmVkYjM5OTIzM2Q4
YWFjZTNmNDk3ZDJjMzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMzAsMTAgKzMwLDEwIEBACiAvLyBUaGlzIElETCBmaWxl
IGlzIGZvciB0ZXN0aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRvciBhbmQgZm9yIHRyYWNr
aW5nCiAvLyBjaGFuZ2VzIGluIGl0cyBvdXB1dC4KIG1vZHVsZSB0ZXN0IHsKLSAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBDb25zdHJ1Y3RvcihpbiBbQ2FsbGJhY2tdIFRlc3RDYWxsYmFjayB0ZXN0
Q2FsbGJhY2spLAorICAgIFsKKyAgICAgICAgQ29uc3RydWN0b3IoW0NhbGxiYWNrXSBpbiBUZXN0
Q2FsbGJhY2sgdGVzdENhbGxiYWNrKSwKICAgICAgICAgSW50ZXJmYWNlTmFtZT1UZXN0T2JqZWN0
Ci0gICAgXSBUZXN0T2JqIHsKKyAgICBdIGludGVyZmFjZSBUZXN0T2JqIHsKICAgICAgICAgLy8g
QXR0cmlidXRlcwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHJl
YWRPbmx5SW50QXR0cjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICByZWFkT25seVN0cmluZ0F0dHI7CkBAIC01MiwxNSArNTIsMTUgQEAgbW9kdWxlIHRlc3Qgewog
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICAgICAgIGNyZWF0ZTsKIAogICAg
ICAgICAvLyBSZWZsZWN0ZWQgRE9NIGF0dHJpYnV0ZXMKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgcmVmbGVjdGVkU3RyaW5nQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBsb25nIHJlZmxlY3RlZEludGVncmFsQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSB1bnNpZ25lZCBsb25nIHJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVmbGVjdGVkQm9vbGVhbkF0dHI7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0
cjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyXSBE
T01TdHJpbmcgcmVmbGVjdGVkU3RyaW5nQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
PWN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJdIGxvbmcgcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxB
dHRyOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRy
XSBib29sZWFuIHJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3Q9Y3VzdG9tQ29udGVudFVSTEF0dHIsIFVSTF0gRE9NU3RyaW5nIHJlZmxlY3RlZEN1
c3RvbVVSTEF0dHI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmxl
Y3RlZFN0cmluZ0F0dHI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyByZWZsZWN0
ZWRJbnRlZ3JhbEF0dHI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyByZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBib29sZWFuIHJlZmxlY3RlZEJvb2xlYW5BdHRyOworICAgICAgICBbUmVmbGVjdCwgVVJM
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmxlY3RlZFVSTEF0dHI7CisgICAgICAgIFtSZWZsZWN0
PWN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmxlY3RlZFN0
cmluZ0F0dHI7CisgICAgICAgIFtSZWZsZWN0PWN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJdIGF0
dHJpYnV0ZSBsb25nIHJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cjsKKyAgICAgICAgW1JlZmxl
Y3Q9Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRyXSBhdHRyaWJ1dGUgYm9vbGVhbiByZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cjsKKyAgICAgICAgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudFVSTEF0dHIs
IFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyByZWZsZWN0ZWRDdXN0b21VUkxBdHRyOwogCiAgICAg
ICAgIC8vIE1ldGhvZHMKICAgICAgICAgdm9pZCAgICB2b2lkTWV0aG9kKCk7CkBAIC03OCwyNiAr
NzgsMjYgQEAgbW9kdWxlIHRlc3QgewogCiAgICAgICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGlu
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZXJpYWxpemVkQXJnKTsKICAgICAgICAgdm9pZCBpZGJL
ZXkoaW4gSURCS2V5IGtleSk7Ci0gICAgICAgIHZvaWQgb3B0aW9uc09iamVjdChpbiBEaWN0aW9u
YXJ5IG9vLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb29vKTsKKyAgICAgICAgdm9pZCBvcHRp
b25zT2JqZWN0KGluIERpY3Rpb25hcnkgb28sIFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBvb28p
OwogCiAgICAgICAgIC8vIEV4Y2VwdGlvbnMKICAgICAgICAgdm9pZCBtZXRob2RXaXRoRXhjZXB0
aW9uKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25nIGF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
YXR0cmlidXRlIGxvbmcgYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24gc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmli
dXRlIERPTVN0cmluZyBzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBsb25nIGF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uIGdldHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBh
dHRyV2l0aFNldHRlckV4Y2VwdGlvbiBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
YXR0cmlidXRlIERPTVN0cmluZyBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiBnZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBzdHJpbmdBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbiBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyAnQ3VzdG9tJyBleHRlbmRlZCBhdHRyaWJ1dGUKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21d
IGxvbmcgICAgICAgICAgICBjdXN0b21BdHRyOworICAgICAgICBbQ3VzdG9tXSBhdHRyaWJ1dGUg
bG9uZyAgICAgICAgICAgIGN1c3RvbUF0dHI7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgY3VzdG9t
TWV0aG9kKCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFyZ3MoaW4g
bG9uZyBpbnRBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RPYmogb2JqQXJnKTsKIAog
ICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJp
bmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3Rl
bmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKIAogICAgICAgICAvLyAnQ2Fs
bFdpdGgnIGV4dGVuZGVkIGF0dHJpYnV0ZQogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVd
IHZvaWQgd2l0aFNjcmlwdFN0YXRlVm9pZCgpOwpAQCAtMTEzLDYxICsxMTMsNjEgQEAgbW9kdWxl
IHRlc3QgewogICAgICAgICBbQ2FsbFdpdGg9ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0ICB8ICBT
Y3JpcHRTdGF0ZSAgXSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVXaXRoU3BhY2VzKCk7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2Fs
bFN0YWNrXSB2b2lkIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2soKTsKIAotICAgICAg
ICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBsb25nIHdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlOwotICAgICAg
ICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBUZXN0T2JqIHdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcwotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OwotICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFRl
c3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMKLSAgICAgICAg
ICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmlidXRlIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlXSBUZXN0T2JqIHdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGU7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZV0gVGVzdE9i
aiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
Ci0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ2FsbFdpdGg9ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0ICB8ICBTY3JpcHRTdGF0ZSAg
XSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3Bh
Y2VzQXR0cmlidXRlOwotICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50
c3xDYWxsU3RhY2tdIFRlc3RPYmogd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBhdHRyaWJ1dGUgbG9uZyB3aXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGU7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBhdHRyaWJ1dGUgVGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBhdHRyaWJ1dGUgVGVzdE9iaiB3
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gYXR0
cmlidXRlIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMK
KyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZV0gYXR0cmlidXRlIFRlc3RPYmogd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZTsKKyAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGVdIGF0dHJpYnV0ZSBU
ZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbQ2Fs
bFdpdGg9ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0ICB8ICBTY3JpcHRTdGF0ZSAgXSBhdHRyaWJ1
dGUgVGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3Rh
Y2tdIGF0dHJpYnV0ZSBUZXN0T2JqIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRy
aWJ1dGU7CiAKICAgICAgICAgLy8gJ09wdGlvbmFsJyBleHRlbmRlZCBhdHRyaWJ1dGUKLSAgICAg
ICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxBcmcoaW4gW09wdGlvbmFsXSBsb25nIG9wdCk7
Ci0gICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmco
aW4gbG9uZyBub25PcHQsIGluIFtPcHRpb25hbF0gbG9uZyBvcHQpOwotICAgICAgICB2b2lkICAg
IG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhpbiBsb25nIG5vbk9w
dCwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDEsIGluIFtPcHRpb25hbF0gbG9uZyBvcHQyKTsKLSAg
ICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoaW4gW09wdGlvbmFsXSBET01T
dHJpbmcgc3RyKTsKLSAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1Vu
ZGVmaW5lZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3RyKTsK
LSAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmcoaW4g
W09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyBzdHIpOworICAgICAgICB2
b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEFyZyhbT3B0aW9uYWxdIGluIGxvbmcgb3B0KTsKKyAg
ICAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhpbiBs
b25nIG5vbk9wdCwgW09wdGlvbmFsXSBpbiBsb25nIG9wdCk7CisgICAgICAgIHZvaWQgICAgbWV0
aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKGluIGxvbmcgbm9uT3B0LCBb
T3B0aW9uYWxdIGluIGxvbmcgb3B0MSwgW09wdGlvbmFsXSBpbiBsb25nIG9wdDIpOworICAgICAg
ICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyhbT3B0aW9uYWxdIGluIERPTVN0cmlu
ZyBzdHIpOworICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZp
bmVkKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHIpOworICAg
ICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyhbT3B0aW9u
YWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHN0cik7CiAKICNpZiBkZWZpbmVk
KFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKICAgICAgICAgLy8gJ0NhbGxiYWNr
JyBleHRlbmRlZCBhdHRyaWJ1dGUKLSAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoQ2FsbGJhY2tB
cmcoaW4gW0NhbGxiYWNrXSBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwotICAgICAgICB2b2lkICAg
IG1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKGluIGxvbmcgbm9uQ2FsbGJh
Y2ssIGluIFtDYWxsYmFja10gVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKLSAgICAgICAgdm9pZCAg
ICBtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhpbiBbQ2FsbGJhY2ssIE9wdGlvbmFs
XSBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxs
YmFja0FyZyhbQ2FsbGJhY2tdIGluIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAgICAgIHZv
aWQgICAgbWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcoaW4gbG9uZyBub25D
YWxsYmFjaywgW0NhbGxiYWNrXSBpbiBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICB2
b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKFtDYWxsYmFjaywgT3B0aW9u
YWxdIGluIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAjZW5kaWYKIAogICAgICAgICAvLyAnQ29u
ZGl0aW9uYWwnIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPUNvbmRpdGlvbjFdIGxvbmcgY29uZGl0aW9uYWxBdHRyMTsKLSAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1Db25kaXRpb24xJkNvbmRpdGlvbjJdIGxvbmcgY29uZGl0aW9uYWxBdHRy
MjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjJd
IGxvbmcgY29uZGl0aW9uYWxBdHRyMzsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFd
IGF0dHJpYnV0ZSBsb25nIGNvbmRpdGlvbmFsQXR0cjE7CisgICAgICAgIFtDb25kaXRpb25hbD1D
b25kaXRpb24xJkNvbmRpdGlvbjJdIGF0dHJpYnV0ZSBsb25nIGNvbmRpdGlvbmFsQXR0cjI7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjJdIGF0dHJpYnV0ZSBsb25n
IGNvbmRpdGlvbmFsQXR0cjM7CiAKICAgICAgICAgLy8gJ0NvbmRpdGlvbmFsJyBleHRlbmRlZCBt
ZXRob2QKICAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFdIERPTVN0cmluZyBjb25kaXRp
b25hbE1ldGhvZDEoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjEmQ29uZGl0aW9u
Ml0gdm9pZCBjb25kaXRpb25hbE1ldGhvZDIoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRp
dGlvbjF8Q29uZGl0aW9uMl0gdm9pZCBjb25kaXRpb25hbE1ldGhvZDMoKTsKIAotICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFdIFRlc3RPYmplY3RBQ29uc3RydWN0b3Ig
Y29uZGl0aW9uYWxBdHRyNDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Db25kaXRp
b24xJkNvbmRpdGlvbjJdIFRlc3RPYmplY3RCQ29uc3RydWN0b3IgY29uZGl0aW9uYWxBdHRyNTsK
LSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjJdIFRl
c3RPYmplY3RDQ29uc3RydWN0b3IgY29uZGl0aW9uYWxBdHRyNjsKKyAgICAgICAgW0NvbmRpdGlv
bmFsPUNvbmRpdGlvbjFdIGF0dHJpYnV0ZSBUZXN0T2JqZWN0QUNvbnN0cnVjdG9yIGNvbmRpdGlv
bmFsQXR0cjQ7CisgICAgICAgIFtDb25kaXRpb25hbD1Db25kaXRpb24xJkNvbmRpdGlvbjJdIGF0
dHJpYnV0ZSBUZXN0T2JqZWN0QkNvbnN0cnVjdG9yIGNvbmRpdGlvbmFsQXR0cjU7CisgICAgICAg
IFtDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjJdIGF0dHJpYnV0ZSBUZXN0T2JqZWN0
Q0NvbnN0cnVjdG9yIGNvbmRpdGlvbmFsQXR0cjY7CiAKICAgICAgICAgW0NvbmRpdGlvbmFsPUNv
bmRpdGlvbjFdIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTkRJVElPTkFMX0NPTlNUID0gMDsKIAog
I2lmIGRlZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0ZV0gYW55IGNhY2hlZEF0dHJpYnV0ZTE7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVk
QXR0cmlidXRlMjsKKyAgICAgICAgW0NhY2hlZEF0dHJpYnV0ZV0gcmVhZG9ubHkgYXR0cmlidXRl
IGFueSBjYWNoZWRBdHRyaWJ1dGUxOworICAgICAgICBbQ2FjaGVkQXR0cmlidXRlXSByZWFkb25s
eSBhdHRyaWJ1dGUgYW55IGNhY2hlZEF0dHJpYnV0ZTI7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQo
VEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAgICAvLyBPdmVybG9hZHMK
ICAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFRlc3RPYmo/IG9iakFyZywgaW4g
RE9NU3RyaW5nIHN0ckFyZyk7Ci0gICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBU
ZXN0T2JqPyBvYmpBcmcsIGluIFtPcHRpb25hbF0gbG9uZyBpbnRBcmcpOworICAgICAgICB2b2lk
ICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gVGVzdE9iaj8gb2JqQXJnLCBbT3B0aW9uYWxdIGluIGxv
bmcgaW50QXJnKTsKICAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIERPTVN0cmlu
ZyBzdHJBcmcpOwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gbG9uZyBpbnRB
cmcpOwotICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gW0NhbGxiYWNrXSBUZXN0
Q2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoW0Nh
bGxiYWNrXSBpbiBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwogICAgICAgICB2b2lkICAgIG92ZXJs
b2FkZWRNZXRob2QoaW4gRE9NU3RyaW5nTGlzdD8gbGlzdEFyZyk7CiAgICAgICAgIHZvaWQgICAg
b3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmdbXT8gYXJyYXlBcmcpOwogICAgICAgICB2b2lk
ICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gVGVzdE9iaiBvYmpBcmcpOwpAQCAtMTc2LDcgKzE3Niw3
IEBAIG1vZHVsZSB0ZXN0IHsKIAogICAgICAgICAvLyBDbGFzcyBtZXRob2RzIHdpdGhpbiBKYXZh
U2NyaXB0IChsaWtlIHdoYXQncyB1c2VkIGZvciBJREJLZXlSYW5nZSkuCiAgICAgICAgIHN0YXRp
YyB2b2lkIGNsYXNzTWV0aG9kKCk7Ci0gICAgICAgIHN0YXRpYyBsb25nIGNsYXNzTWV0aG9kV2l0
aE9wdGlvbmFsKGluIFtPcHRpb25hbF0gbG9uZyBhcmcpOworICAgICAgICBzdGF0aWMgbG9uZyBj
bGFzc01ldGhvZFdpdGhPcHRpb25hbChbT3B0aW9uYWxdIGluIGxvbmcgYXJnKTsKICAgICAgICAg
W0N1c3RvbV0gc3RhdGljIHZvaWQgY2xhc3NNZXRob2QyKGluIGxvbmcgYXJnKTsKIAogICAgICAg
ICAvLyBTdGF0aWMgbWV0aG9kIHdpdGggY29uZGl0aW9uYWwgb24gb3ZlcmxvYWRlZCBtZXRob2Rz
CkBAIC0xODcsMTEgKzE4NywxMSBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIC8vICdWOEVuYWJs
ZWRBdFJ1bnRpbWUnIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMuCiAgICAgICAgIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIHZvaWQgZW5hYmxlZEF0UnVudGltZU1ldGhvZDEoaW4gaW50IGludEFyZyk7CiAg
ICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWVdIHZvaWQgZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDIoaW4gaW50IGludEFyZyk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBsb25nIGVuYWJsZWRBdFJ1bnRpbWVBdHRyMTsKLSAgICAgICAgYXR0cmlidXRl
IFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0
dHIyOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgbG9uZyBlbmFibGVk
QXRSdW50aW1lQXR0cjE7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWVd
IGF0dHJpYnV0ZSBsb25nIGVuYWJsZWRBdFJ1bnRpbWVBdHRyMjsKICAgICAgICAgLy8gVjhFbmFi
bGVkUGVyQ29udGV4dCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBhdHRyaWJ1dGVzLgotICAgICAg
ICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZFBlckNvbnRleHRdIGxvbmcgZW5hYmxlZEF0Q29udGV4dEF0
dHIxOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZFBlckNvbnRleHQ9RmVhdHVyZU5hbWVd
IGxvbmcgZW5hYmxlZEF0Q29udGV4dEF0dHIyOworICAgICAgICBbVjhFbmFibGVkUGVyQ29udGV4
dF0gYXR0cmlidXRlIGxvbmcgZW5hYmxlZEF0Q29udGV4dEF0dHIxOworICAgICAgICBbVjhFbmFi
bGVkUGVyQ29udGV4dD1GZWF0dXJlTmFtZV0gYXR0cmlidXRlIGxvbmcgZW5hYmxlZEF0Q29udGV4
dEF0dHIyOwogI2VuZGlmCiAKIApAQCAtMjA3LDI1ICsyMDcsMjUgQEAgbW9kdWxlIHRlc3Qgewog
ICAgICAgICBET01TdHJpbmdbXSBzdHJpbmdBcnJheUZ1bmN0aW9uKGluIERPTVN0cmluZ1tdIHZh
bHVlcykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKIAotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBEb2N1bWVudCBjb250ZW50RG9jdW1lbnQ7
CisgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gcmVhZG9ubHkgYXR0cmlidXRlIERvY3Vt
ZW50IGNvbnRlbnREb2N1bWVudDsKICAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBTVkdE
b2N1bWVudCBnZXRTVkdEb2N1bWVudCgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAotICAgICAgICB2b2lkIGNvbnZlcnQxKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIGEpOwotICAgICAgICB2b2lkIGNvbnZlcnQyKGluIFtUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzPVVuZGVmaW5lZF0gYik7Ci0gICAgICAgIHZvaWQgY29udmVydDMoaW4gW1RyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9RmFsc2VdIGMpOwotICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBkKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlKTsKKyAg
ICAgICAgdm9pZCBjb252ZXJ0MShbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBpbiBh
IGEpOworICAgICAgICB2b2lkIGNvbnZlcnQyKFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVu
ZGVmaW5lZF0gaW4gYiBiKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0MyhbVHJlYXRSZXR1cm5lZE51
bGxTdHJpbmdBcz1GYWxzZV0gaW4gYyBjKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NChbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gaW4gZCBkKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NShbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBlIGUpOwog
CiAgICAgICAgIGF0dHJpYnV0ZSBTVkdQb2ludCBtdXRhYmxlUG9pbnQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBpbW11dGFibGVQb2ludDsKKyAgICAgICAgW0ltbXV0
YWJsZV0gYXR0cmlidXRlIFNWR1BvaW50IGltbXV0YWJsZVBvaW50OwogICAgICAgICBTVkdQb2lu
dCBtdXRhYmxlUG9pbnRGdW5jdGlvbigpOwogICAgICAgICBbSW1tdXRhYmxlXSBTVkdQb2ludCBp
bW11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAKICAgICAgICAgW0ltcGxlbWVudGVkQXM9YmFuYW5h
XSB2b2lkIG9yYW5nZSgpOwotICAgICAgICBhdHRyaWJ1dGUgW0ltcGxlbWVudGVkQXM9Ymx1ZWJl
cnJ5XSBpbnQgc3RyYXdiZXJyeTsKKyAgICAgICAgW0ltcGxlbWVudGVkQXM9Ymx1ZWJlcnJ5XSBh
dHRyaWJ1dGUgaW50IHN0cmF3YmVycnk7CiAKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGZsb2F0IHN0cmljdEZsb2F0OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBhdHRyaWJ1dGUgZmxvYXQgc3RyaWN0RmxvYXQ7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGJvb2wgc3RyaWN0RnVuY3Rpb24oaW4gRE9NU3RyaW5nIHN0ciwgaW4gZmxvYXQgYSwgaW4g
aW50IGIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIApAQCAtMjQ4LDQgKzI0
OCw0IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09OU1Rf
VkFMVUVfMTQgPSAweDFhYmM7CiAgICAgICAgIFtSZWZsZWN0PUNPTlNUX0lNUExdIGNvbnN0IHVu
c2lnbmVkIHNob3J0IENPTlNUX0pBVkFTQ1JJUFQgPSAxNTsKICAgICB9OwotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmlkbAppbmRleCBmYWNm
N2NiYTg1ODI0YTA1ZGQzODFmZDIzYWUwZGRiYmI4ZTQ3MjFlLi4wODJmNWVlNDVkYjMwYzYwNmMx
MWJmZjYxNzBjNDMwNzYyYjhlYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuaWRsCkBAIC0yNiwxNyArMjYsMTcgQEAKIC8vIFRoaXMgSURMIGZp
bGUgaXMgZm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3IgdHJh
Y2tpbmcKIC8vIGNoYW5nZXMgaW4gaXRzIG91cHV0LgogbW9kdWxlIHRlc3QgewotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjIs
CiAgICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBoZWxsbywgaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIHZhbHVlKSwKLSAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIGhlbGxv
LCBpbiBbVHJhbnNmZXJMaXN0PXRyYW5zZmVyTGlzdF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRh
dGEsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEFycmF5IHRyYW5zZmVyTGlzdCks
Ci0gICAgXSBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIHsKKyAgICAgICAgQ29u
c3RydWN0b3IoaW4gRE9NU3RyaW5nIGhlbGxvLCBbVHJhbnNmZXJMaXN0PXRyYW5zZmVyTGlzdF0g
aW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRhdGEsIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIEFycmF5IHRyYW5zZmVyTGlzdCkKKyAgICBdIGludGVyZmFjZSBUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlIHsKICAgICAgICAgYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSB2YWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSByZWFkb25seVZhbHVlOwotICAgICAgICBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0
ZV0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNhY2hlZFZhbHVlOworICAgICAgICBbQ2FjaGVkQXR0
cmlidXRlXSBhdHRyaWJ1dGUgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGNhY2hlZFZhbHVlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnRBcnJheSBwb3J0czsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBjYWNoZWRSZWFkb25seVZhbHVlOwotICAgICAgICB2b2lkIGFjY2VwdFRyYW5zZmVyTGlzdChp
biBbVHJhbnNmZXJMaXN0PXRyYW5zZmVyTGlzdF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGRhdGEs
IGluIFtPcHRpb25hbF0gQXJyYXkgdHJhbnNmZXJMaXN0KTsKLSAgICAgICAgdm9pZCBtdWx0aVRy
YW5zZmVyTGlzdChpbiBbT3B0aW9uYWwsIFRyYW5zZmVyTGlzdD10eF0gU2VyaWFsaXplZFNjcmlw
dFZhbHVlIGZpcnN0LCBpbiBbT3B0aW9uYWxdIEFycmF5IHR4LCBpbiBbT3B0aW9uYWwsIFRyYW5z
ZmVyTGlzdD10eHhdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZWNvbmQsIGluIFtPcHRpb25hbF0g
QXJyYXkgdHh4KTsKKyAgICAgICAgW0NhY2hlZEF0dHJpYnV0ZV0gcmVhZG9ubHkgYXR0cmlidXRl
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjYWNoZWRSZWFkb25seVZhbHVlOworICAgICAgICB2b2lk
IGFjY2VwdFRyYW5zZmVyTGlzdChbVHJhbnNmZXJMaXN0PXRyYW5zZmVyTGlzdF0gaW4gU2VyaWFs
aXplZFNjcmlwdFZhbHVlIGRhdGEsIFtPcHRpb25hbF0gaW4gQXJyYXkgdHJhbnNmZXJMaXN0KTsK
KyAgICAgICAgdm9pZCBtdWx0aVRyYW5zZmVyTGlzdChbT3B0aW9uYWwsIFRyYW5zZmVyTGlzdD10
eF0gaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGZpcnN0LCBbT3B0aW9uYWxdIGluIEFycmF5IHR4
LCBbT3B0aW9uYWwsIFRyYW5zZmVyTGlzdD10eHhdIGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBz
ZWNvbmQsIFtPcHRpb25hbF0gaW4gQXJyYXkgdHh4KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFs
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVu
dGFsLmlkbAppbmRleCA2MDUxNDEyNGI4ZTVjMWYwZjVlYzZhNDM2YTUxMTA1YjZlYmZhOTg0Li4w
NmMxNzg2NmQyYTBhMjY4OWM0NDlmNzcxYWJlMWI4ZTRiYWMzZjdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwu
aWRsCkBAIC0yOSwxMyArMjksMTMgQEAKIC8vIFRoaXMgSURMIGZpbGUgaXMgZm9yIHRlc3Rpbmcg
dGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3IgdHJhY2tpbmcKIC8vIGNoYW5nZXMg
aW4gaXRzIG91cHV0LgogbW9kdWxlIHRlc3QgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1Db25kaXRpb24xMXxDb25kaXRpb24xMiwKICAgICAgICAgU3VwcGxl
bWVudGFsPVRlc3RJbnRlcmZhY2UKLSAgICBdIFRlc3RTdXBwbGVtZW50YWwgeworICAgIF0gaW50
ZXJmYWNlIFRlc3RTdXBwbGVtZW50YWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHN1cHBsZW1lbnRhbFN0cjE7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc3Vw
cGxlbWVudGFsU3RyMjsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXIsIEN1c3RvbVNl
dHRlcl0gRE9NU3RyaW5nIHN1cHBsZW1lbnRhbFN0cjM7CisgICAgICAgIFtDdXN0b21HZXR0ZXIs
IEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIzOwogICAg
ICAgICBhdHRyaWJ1dGUgTm9kZSBzdXBwbGVtZW50YWxOb2RlOwogCiAgICAgICAgIHZvaWQgc3Vw
cGxlbWVudGFsTWV0aG9kMSgpOwpAQCAtNDYsNCArNDYsNCBAQCBtb2R1bGUgdGVzdCB7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNVUFBMRU1FTlRBTENPTlNUQU5UMSA9IDE7CiAgICAg
ICAgIFtSZWZsZWN0PUNPTlNUX0lNUExdIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNVUFBMRU1FTlRB
TENPTlNUQU5UMiA9IDI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZEFycmF5LmlkbAppbmRleCBlODE2YjM4
NjBmOWZjZmVkZjQ0MjY2ODg1ZmNiNTQ4N2QxMjI5MmI0Li5lOGZjM2I1NTJjYTE5MGIyYmYxMmVh
MGFiZmYwYTMyNTk0N2JjMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRBcnJheS5pZGwKQEAgLTI1LDcgKzI1LDcgQEAKICAq
LwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MTIzLAogICAgICAg
ICBOdW1lcmljSW5kZXhlZEdldHRlciwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAg
ICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBGbG9hdDY0QXJyYXkgOiBBcnJheUJ1ZmZl
clZpZXcgeworICAgIF0gaW50ZXJmYWNlIEZsb2F0NjRBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7
CiAgICAgICAgIEludDMyQXJyYXkgZm9vKGluIEZsb2F0MzJBcnJheSBhcnJheSk7CiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRs
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbAppbmRleCAzY2RhZjRhNzg2
MjViYWFiNGU4ODQ0MWFhMzQ2NGE0MDNjOGE0OTY2Li5jNDA2NzE3YTk2NTM3MjE4Mjk4YTg3OTEx
NWI2YTg2ODU2MjZiOGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNl
dFJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwKQEAg
LTIzLDExICsyMywxMSBAQCBtb2R1bGUgY3NzIHsKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBM
ZXZlbCAyOgogICAgIGludGVyZmFjZSBDU1NDaGFyc2V0UnVsZSA6IENTU1J1bGUgewogI2lmIGRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCi0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBE
T01TdHJpbmcgZW5jb2Rpbmc7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZW5jb2Rpbmc7CiAjZWxzZQotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVuY29kaW5nCi0gICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJp
YnV0ZSBET01TdHJpbmcgZW5jb2RpbmcKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhE
T01FeGNlcHRpb24pOwogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlUnVsZS5pZGwKaW5kZXggYmQzOGE2MTM3Y2FiMWM0Y2JiZjZmYTM2MzVjZmNkOTVj
ZGU2ZmE4ZC4uOTVmMWU3NGI1Y2Q5MDA1MzRiZjMxMDYyZThhMzYyYmQ5YzcwNWVkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwKQEAgLTI1LDQgKzI1LDQgQEAgbW9kdWxl
IGNzcyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0
eWxlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1wb3J0UnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwKaW5k
ZXggZGRkMGE4YmZmZGIxM2YwODYwNDA3ZDY4OTc4MTIyODBjMmI1YWZjZC4uNTE1MzIyOTkwZTVh
YjhkYWYxMDUwZDgyZjBjZWUzODMwNmU1YTM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmlkbApAQCAtMjIsOSArMjIsOSBAQCBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVj
ZWQgaW4gRE9NIExldmVsIDI6CiAgICAgaW50ZXJmYWNlIENTU0ltcG9ydFJ1bGUgOiBDU1NSdWxl
IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIERPTVN0cmluZyBocmVmOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBNZWRpYUxpc3QgbWVkaWE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NTdHlsZVNoZWV0IHN0eWxlU2hlZXQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU01lZGlhUnVsZS5pZGwKaW5kZXggZjUyYTZjZWM4MGJiZGMzYmJmYmU2NDIzMDdmMDgyY2Q2
MzliOTljMS4uODJhMzIzODE4NTRlNDE0NzM4YTE5NWZjZDRjYzZhOWMwNTc4MzkxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwKQEAgLTI1LDExICsyNSwxMSBAQCBtb2R1bGUgY3Nz
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhTGlzdCBtZWRpYTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGVMaXN0IGNzc1J1bGVzOwogICAgICAgICAKLSAgICAg
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdW5zaWduZWQgbG9uZyAgICAgIGluc2Vy
dFJ1bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHJ1bGUsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB1bnNpZ25lZCBsb25nICAgICAgaW5zZXJ0
UnVsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcnVsZSwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGRl
bGV0ZVJ1bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBp
bmRleCkKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGRlbGV0ZVJ1bGUoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VS
dWxlLmlkbAppbmRleCBiM2VhMjI4NTAyZGY2ZWY3ZjVhOTFmMzY4NmI3OGY4YWJjZGZjODdiLi43
YWY0N2E5OTMyNWEzYjllNDVhZWI5YzEwMTM3ZGRhNmNjOGM3MzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYWdlUnVsZS5pZGwKQEAgLTIzLDEwICsyMywxMCBAQCBtb2R1bGUgY3NzIHsKICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBDU1NQYWdlUnVsZSA6IENT
U1J1bGUgewogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JU
ZXh0OworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlbGVjdG9yVGV4dDsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsK
IAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlk
bAppbmRleCA2YzYzN2M5YWI3NmVjMjZiM2I1Zjg5ZjMwYzQ4NDE1NzE0MDRjY2M5Li5jMjkyMTZi
YzI1M2U2NDJiOGQwOTFlZTMyYzM5N2Q0YmU0ZjBiMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5pZGwKQEAgLTU0LDEzICs1NCwxMyBAQCBtb2R1bGUgY3NzIHsKICAg
ICAgICAgCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBwcmltaXRp
dmVUeXBlOwogCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgc2V0
RmxvYXRWYWx1ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBzaG9y
dCB1bml0VHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGZsb2F0VmFsdWUpCisgICAgICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgc2V0RmxvYXRWYWx1ZShbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IGZsb2F0VmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgZmxvYXQgZ2V0RmxvYXRWYWx1ZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkKKyAgICAgICAgZmxvYXQgZ2V0
RmxvYXRWYWx1ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBzaG9y
dCB1bml0VHlwZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldFN0cmluZ1ZhbHVlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBzdHJpbmdWYWx1ZSkKKyAgICAgICAgW09iakNMZWdh
Y3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBzZXRTdHJpbmdWYWx1ZShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgc3RyaW5nVmFsdWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgRE9NU3RyaW5nIGdldFN0cmluZ1ZhbHVlKCkKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtNzIsNCArNzIsNCBAQCBtb2R1bGUgY3NzIHsKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUnVsZS5pZGwKaW5kZXggNzkyMTVjYjRhMDZmZWZlODRhMzczYmVjYjg3NDk1NWU5ZGI3NWI0
Mi4uM2IyMTVjYWM4ZjI4YjJjMGJhZTAxZjNmMTYwNGQ1MjYxYzA4MzYwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NSdWxlLmlkbApAQCAtMjEsMTMgKzIxLDEzIEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGUsCiAg
ICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIE9iakNQb2x5bW9ycGhpYywKICAgICAg
ICAgVjhEZXBlbmRlbnRMaWZldGltZQotICAgIF0gQ1NTUnVsZSB7CisgICAgXSBpbnRlcmZhY2Ug
Q1NTUnVsZSB7CiAKICAgICAgICAgLy8gUnVsZVR5cGUKICAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVU5LTk9XTl9SVUxFID0gMDsKQEAgLTQ1LDEyICs0NSwxMiBAQCBtb2R1bGUgY3NzIHsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICB0eXBlOwogCi0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
LCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIGNzc1RleHQKLSAgICAg
ICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxT
dHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIGNzc1RleHQKKyAgICAgICAgICAgICAg
ICAgICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgQ1NTU3R5bGVTaGVldCAgICBwYXJlbnRTdHlsZVNoZWV0OwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBwYXJlbnRSdWxlOwogCiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuaWRsCmluZGV4IDdhYzUzM2I4YWM1ZjI4MGI4OTJk
M2Q0YjdlOGZmMzhlOGY1NzVhYjYuLjYyNjk3MmJjZjBkMWY1ZTIyOWVjYzljMmIzOTUxMzBmNjJm
NWQ3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmlkbApAQCAtMjYsMTMgKzI2LDEzIEBA
CiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgICAg
IEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKLSAgICBdIENTU1J1
bGVMaXN0IHsKKyAgICBdIGludGVyZmFjZSBDU1NSdWxlTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKLSAgICAgICAgQ1NTUnVsZSAgICAg
ICAgICAgaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25n
IGluZGV4KTsKKyAgICAgICAgQ1NTUnVsZSAgICAgICAgICAgaXRlbShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCmluZGV4IDk4NDZjNTQ1
ODVhOTM1MDBmNzU0N2ZmODFhODQ5ODM3OTY2MjQzYzIuLmU5NDg2YWVjMjA3ZTU3NTdmYjdlZmY2
YTA5ZmFkMzhmYjQ1MmU0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5pZGwKQEAgLTIxLDcgKzIxLDcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9k
dWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlND
dXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZSwKICAgICAg
ICAgSlNDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yLApAQCAtMzIsMjcgKzMy
LDI3IEBAIG1vZHVsZSBjc3MgewogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBDdXN0
b21FbnVtZXJhdGVQcm9wZXJ0eSwKICAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQotICAgIF0g
Q1NTU3R5bGVEZWNsYXJhdGlvbiB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgICAgICAgIGNzc1RleHQKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICBdIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKKyAgICAg
ICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgY3NzVGV4dAorICAgICAgICAg
ICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW1RyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGdldFByb3BlcnR5VmFs
dWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHByb3BlcnR5TmFt
ZSk7Ci0gICAgICAgIFtKU0N1c3RvbV0gQ1NTVmFsdWUgICAgICAgICAgIGdldFByb3BlcnR5Q1NT
VmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSk7Ci0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmlu
ZyAgICAgICAgICByZW1vdmVQcm9wZXJ0eShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgcHJvcGVydHlOYW1lKQorICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlWYWx1ZShbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAgICAgICAg
W0pTQ3VzdG9tXSBDU1NWYWx1ZSAgICAgICAgICAgZ2V0UHJvcGVydHlDU1NWYWx1ZShbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKKyAgICAg
ICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIHJl
bW92ZVByb3BlcnR5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBw
cm9wZXJ0eU5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGdldFBy
b3BlcnR5UHJpb3JpdHkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZv
aWQgc2V0UHJvcGVydHkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHByb3BlcnR5TmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdmFsdWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwcmlvcml0eSkKKyAg
ICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAg
IGdldFByb3BlcnR5UHJpb3JpdHkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnNdIHZvaWQgc2V0UHJvcGVydHkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBET01TdHJpbmcgdmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBwcmlvcml0
eSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKLSAgICAgICAgRE9NU3RyaW5nICAg
ICAgICAgIGl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CisgICAgICAgIERPTVN0cmluZyAgICAgICAgICBpdGVtKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBwYXJlbnRSdWxlOwogCiAgICAgICAgIC8vIEV4
dGVuc2lvbnMKLSAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3Ry
aW5nICAgICAgICAgIGdldFByb3BlcnR5U2hvcnRoYW5kKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBib29sZWFuICAgICAg
ICAgICAgaXNQcm9wZXJ0eUltcGxpY2l0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlTaG9ydGhhbmQoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAg
ICAgIGJvb2xlYW4gICAgICAgICAgICBpc1Byb3BlcnR5SW1wbGljaXQoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaWRsIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwKaW5kZXggYzU3NjMyOTQyYmRmOTVmNDgz
MjhhMjljODlmMDlmMDhiM2IyOTU1NC4uYTc3NDRhNTAwY2Y4MzFlOWE4OGMxYzJmMTc2ZjM0NWE4
YzZmZTJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5pZGwKQEAgLTIzLDEwICsyMywx
MCBAQCBtb2R1bGUgY3NzIHsKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAg
IGludGVyZmFjZSBDU1NTdHlsZVJ1bGUgOiBDU1NSdWxlIHsKIAotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dDsKKyAgICAgICAgICAgICAgICAgW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmli
dXRlIERPTVN0cmluZyBzZWxlY3RvclRleHQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2hlZXQuaWRsCmluZGV4IDc4MmRiNTg2Y2U0OTFiOGIzNDRiMjViMWQxNmQ1
MTA5MTRkYjc4MjcuLjc3ZDNjZDAxYTM2ZGZmNjg1MTY0YzkzZTg1MmZiMDU4YTM2M2EyMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwKQEAgLTIxLDI3ICsyMSwyNyBAQAogbW9k
dWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBWOEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbE93bmVyTm9k
ZVJvb3QKLSAgICBdIENTU1N0eWxlU2hlZXQgOiBTdHlsZVNoZWV0IHsKKyAgICBdIGludGVyZmFj
ZSBDU1NTdHlsZVNoZWV0IDogU3R5bGVTaGVldCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBDU1NSdWxlICAgICAgICAgIG93bmVyUnVsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1J1bGVMaXN0ICAgICAgY3NzUnVsZXM7CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gdW5zaWduZWQgbG9uZyBpbnNlcnRSdWxlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBydWxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNd
IHVuc2lnbmVkIGxvbmcgaW5zZXJ0UnVsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgcnVsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25n
IGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
ICAgICAgICAgICAgICBkZWxldGVSdWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIHZvaWQgICAgICAgICAgICAgICBkZWxldGVS
dWxlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBJRSBFeHRl
bnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCAgICAgIHJ1bGVz
OwogCi0gICAgICAgIGxvbmcgYWRkUnVsZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgc2VsZWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3R5bGUsCi0gICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIGxvbmcgYWRkUnVs
ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgc2VsZWN0b3IsCisg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcgc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIHVuc2lnbmVk
IGxvbmcgaW5kZXgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dm9pZCByZW1vdmVSdWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVk
IGxvbmcgaW5kZXgpCisgICAgICAgIHZvaWQgcmVtb3ZlUnVsZShbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NVbmtub3duUnVsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1
bGUuaWRsCmluZGV4IGI2MmNlYjg3M2Y1ZDUyMGI3ZTVlN2FmNGRmMmJkMmY2MDllMDM0ZGYuLjNk
ZGVhMmFlYWQ0M2MyYmE2NGI1NzZjNWQxYmUzZmFmMjkyODgzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1Vua25vd25SdWxlLmlkbApAQCAtMjEsOSArMjEsOSBAQAogbW9kdWxlIGNzcyB7CiAKICAg
ICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIENTU1Vua25vd25SdWxlIDogQ1NTUnVsZSB7
CisgICAgXSBpbnRlcmZhY2UgQ1NTVW5rbm93blJ1bGUgOiBDU1NSdWxlIHsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwKaW5kZXggMmIwY2ViMzFmNzA1ZDMxOTY1NGU1MTk2
YmQ4YTNlZjQ3NjMzYzdhNC4uNmJkNzNkZWVjNGVjNjY5Y2Q1NGJlMjZlNGIxYjVkMDE1ZWNmODE2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRsCkBAIC0yMCwxMyArMjAsMTMgQEAKIAogbW9kdWxl
IGNzcyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tVG9KU09iamVj
dCwKICAgICAgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKICAgICAgICAgSlNDdXN0b21GaW5hbGl6
ZSwKICAgICAgICAgT2JqQ1BvbHltb3JwaGljLAogICAgICAgICBWOERlcGVuZGVudExpZmV0aW1l
Ci0gICAgXSBDU1NWYWx1ZSB7CisgICAgXSBpbnRlcmZhY2UgQ1NTVmFsdWUgewogCiAgICAgICAg
IC8vIFVuaXRUeXBlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfSU5IRVJJVCAg
ICAgICAgID0gMDsKQEAgLTM0LDExICszNCwxMSBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgQ1NTX1ZBTFVFX0xJU1QgICAgICA9IDI7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IENTU19DVVNUT00gICAgICAgICAgPSAzOwogCi0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgY3NzVGV4dAotICAgICAgICAgICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGNzc1RleHQKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRp
b24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1
ZVR5cGU7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbApp
bmRleCAyM2UyN2VjMTY0MmMzMzBmZDVmM2U4N2JiOWE3MWQ4Zjk5MmVhNjhiLi41MTY3ZjJjNjNj
MzY2YzE2ODY2OTI3ZjYzMThlZTUyNzAwODFiZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVM
aXN0LmlkbApAQCAtMjYsMTEgKzI2LDExIEBACiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIElu
ZGV4ZWRHZXR0ZXIKLSAgICBdIENTU1ZhbHVlTGlzdCA6IENTU1ZhbHVlIHsKKyAgICBdIGludGVy
ZmFjZSBDU1NWYWx1ZUxpc3QgOiBDU1NWYWx1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nICAgIGxlbmd0aDsKLSAgICAgICAgQ1NTVmFsdWUgICAgICAgICAgIGl0
ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7
CisgICAgICAgIENTU1ZhbHVlICAgICAgICAgICBpdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q291bnRlci5pZGwKaW5kZXggNjIzNmM0NTRlOWQxYTMzMDVjNWQyZDFlMmE2N2UwOGJlOWIyY2U5
OC4uZDNjM2QwM2Y2Njk2ZTdjOTVlNDY1MzRiMTEzZGE5YWI0YzMzMjA5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
b3VudGVyLmlkbApAQCAtMjYsNCArMjYsNCBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBzZXBhcmF0b3I7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhTGlzdC5pZGwKaW5kZXggMzU0NDVhM2RkZWYzOWRjZDBmNWY1OTU2N2VmY2U4ZmRl
N2U1Y2M1ZS4uNzA4ZmY1YjdhYzc1YzAyOGNhNTZkZDE1MGI4YmRlNjdkNTAzZGEyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5pZGwKQEAgLTI2LDIxICsyNiwyMSBAQAogbW9kdWxlIHN0eWxlc2hl
ZXRzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZSwKICAgICAgICAgSW5kZXhl
ZEdldHRlcgotICAgIF0gTWVkaWFMaXN0IHsKKyAgICBdIGludGVyZmFjZSBNZWRpYUxpc3Qgewog
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgbWVkaWFUZXh0Ci0gICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIGF0dHJpYnV0ZSBET01TdHJpbmcgbWVkaWFUZXh0CisgICAgICAgICAgICAgICAgICAgICBz
ZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOwogCi0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIERPTVN0cmluZyBpdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwotICAgICAgICB2b2lkIGRlbGV0ZU1lZGl1bShpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgb2xkTWVkaXVtKQorICAgICAgICBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaXRlbShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgdm9pZCBkZWxl
dGVNZWRpdW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG9sZE1l
ZGl1bSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIGFw
cGVuZE1lZGl1bShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmV3
TWVkaXVtKQorICAgICAgICB2b2lkIGFwcGVuZE1lZGl1bShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBET01TdHJpbmcgbmV3TWVkaXVtKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5pZGwKaW5kZXggYjRmN2I5NTgxYTk2MGJmNTg1NjQ3YjlmYzgwMTVmODBhZTczZDdhOS4uMGEw
ZGNlZGRmZjgwYzQ2ZDkxNmUzYTUyZmIwYmQwMzUwYzkyOTQxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUxpc3QuaWRsCkBAIC0yMSw3ICsyMSw3IEBAIG1vZHVsZSB2aWV3IHsKICAgICBp
bnRlcmZhY2UgTWVkaWFRdWVyeUxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG1lZGlhOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtYXRjaGVz
OwotICAgICAgICB2b2lkIGFkZExpc3RlbmVyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOwotICAgICAgICB2b2lkIHJlbW92
ZUxpc3RlbmVyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIgbGlzdGVuZXIpOworICAgICAgICB2b2lkIGFkZExpc3RlbmVyKFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOwor
ICAgICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgbGlzdGVuZXIpOwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCmluZGV4IGQ4ZjM4
M2FhZTBlMTAwMWM3MGYwMzRkNTNiYWQ4OTMwNjA5ZDIzYjAuLjNjOGRmZTc5Mjk5M2U1ZGMwMjMw
OTBmZDA4NGEzOGY1NDRkYzhiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5pZGwKQEAgLTE4LDEyICsxOCwxMiBAQAogICovCiAKIG1vZHVsZSB2aWV3
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAg
ICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBDUFBQdXJlSW50ZXJmYWNlLAogICAgICAgICBP
bWl0Q29uc3RydWN0b3IKLSAgICBdIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgewotICAgICAgICB2
b2lkIHF1ZXJ5Q2hhbmdlZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRpYVF1
ZXJ5TGlzdCBsaXN0KTsKKyAgICBdIGludGVyZmFjZSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsK
KyAgICAgICAgdm9pZCBxdWVyeUNoYW5nZWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gTWVkaWFRdWVyeUxpc3QgbGlzdCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9y
LmlkbAppbmRleCAxZGM4N2JjZmQ4OGJjODliOWNlYmZiZGM2YWJmZWE4OWE2NzVhMzRiLi44NWY0
ZWJiMDhkYjU1Y2ZhNzRmNjg4MzI5NTdhNjcwMzBlZmRjYWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xv
ci5pZGwKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIGNzcyB7CiAjZW5kaWYKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsIGIvU291cmNlL1dl
YkNvcmUvY3NzL1JlY3QuaWRsCmluZGV4IDYwZWI3MGUzMWZhOWI5ZTcwYjIzZTYyOGY2NDU2ZTAx
Y2RkMTIzYTguLmZkYjYyNDUyMWViZjY5ZmE0MGIxMjNmMzZlZjM0N2I1MTM4MmNjZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUmVjdC5pZGwKQEAgLTI2LDQgKzI2LDQgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NQcmltaXRpdmVWYWx1ZSAgbGVmdDsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlTWVkaWEuaWRsCmluZGV4IDVkZDU4ZGExZmVkOTQxYjExNWYyNzZiYTBk
MTUyN2YzOTkzNTI1NTIuLjM0ZDMzZWRhMmIxMWM4MGMyNjhlN2ZiMWIwOTlhMzU4Mjk4ZTJmYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVNZWRpYS5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogICovCiAK
IG1vZHVsZSB2aWV3IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxGcmFtZQotICAgIF0gU3R5bGVNZWRpYSB7CisgICAgXSBpbnRlcmZh
Y2UgU3R5bGVNZWRpYSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlw
ZTsKLSAgICAgICAgYm9vbGVhbiBtYXRjaE1lZGl1bShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgbWVkaWFxdWVyeSk7CisgICAgICAgIGJvb2xlYW4gbWF0Y2hNZWRp
dW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG1lZGlhcXVlcnkp
OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuaWRsCmluZGV4IGI4NTY4YmZi
MjA1MjIzZDdhNGI5OTFjYmM5YTZlMWU4YjQ4ODY0OWUuLjljNmI3YzJhZmU2YzA1MDc1OWRhMmZl
YzQ3ZTU5ZDRjMmFiMWQzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNo
ZWV0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5pZGwKQEAgLTIxLDE5
ICsyMSwxOSBAQAogbW9kdWxlIHN0eWxlc2hlZXRzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4g
RE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGUsCiAgICAgICAgIEN1c3Rv
bVRvSlNPYmplY3QsCiAgICAgICAgIE9iakNQb2x5bW9ycGhpYywKICAgICAgICAgVjhHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxPd25lck5vZGVSb290Ci0gICAgXSBTdHlsZVNoZWV0IHsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyAgICAgICAgdHlwZTsKKyAgICBdIGludGVyZmFjZSBTdHlsZVNoZWV0IHsKKyAgICAg
ICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgdHlwZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4g
ICAgICAgICAgZGlzYWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAg
ICAgICAgIG93bmVyTm9kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQg
ICAgICAgcGFyZW50U3R5bGVTaGVldDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgaHJlZjsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyAgICAgICAgdGl0bGU7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIGhyZWY7CisgICAgICAg
IFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIHRpdGxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFMaXN0
ICAgICAgICBtZWRpYTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfQ1BQKSAmJiBMQU5HVUFHRV9D
UFAKQEAgLTQzLDQgKzQzLDQgQEAgbW9kdWxlIHN0eWxlc2hlZXRzIHsKIAogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAppbmRleCAzYTdiMTg1Y2Q5ZDNh
N2JiMjVhODcwMGViZjAzODZhNTc4ZWYzMGFhLi4yZTMyYTBhYTRmYTM1YzZjZjVhODdmMmFhMzEx
MGE1NThmMGE3Y2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldExp
c3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0TGlzdC5pZGwKQEAgLTIx
LDE0ICsyMSwxNCBAQAogbW9kdWxlIHN0eWxlc2hlZXRzIHsKIAogICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAg
ICAgIE5hbWVkR2V0dGVyLAogICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCi0gICAgXSBTdHls
ZVNoZWV0TGlzdCB7CisgICAgXSBpbnRlcmZhY2UgU3R5bGVTaGVldExpc3QgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBsZW5ndGg7Ci0gICAgICAgIFN0eWxl
U2hlZXQgICAgICAgICBpdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworICAgICAgICBTdHlsZVNoZWV0ICAgICAgICAgaXRlbShbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZh
bHVlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwKaW5k
ZXggM2YyMTkxMzdiNGEwOGJhMTk0NWQ4MjE0NTcwYjkyZWMzNTJlY2E0Mi4uNDg1NmQxYWYxZTQ2
OGU4ZWE4ZDRmZGQ1YmFlNDQ0N2Q2ZTg0MDYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIGNzcyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgICAgIENvbmRpdGlvbmFsPUNTU19G
SUxURVJTLAogICAgICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgICAgIERvTm90Q2hl
Y2tDb25zdGFudHMKLSAgICBdIFdlYktpdENTU0ZpbHRlclZhbHVlIDogQ1NTVmFsdWVMaXN0IHsK
KyAgICBdIGludGVyZmFjZSBXZWJLaXRDU1NGaWx0ZXJWYWx1ZSA6IENTU1ZhbHVlTGlzdCB7CiAK
ICAgICAgICAgLy8gT3BlcmF0aW9uVHlwZXMKIApAQCAtNTEsNCArNTEsNCBAQCBtb2R1bGUgY3Nz
IHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgb3BlcmF0aW9u
VHlwZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NLZXlmcmFtZVJ1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZy
YW1lUnVsZS5pZGwKaW5kZXggZjZlYWM3NzQxZGVlZjIwMjI3ZTJmNTg2OWJlMDUzYmRhMDljM2Jh
OC4uMDE1YjUyZDRjMzE5MGQ3NjFmZDA4ZmRmNjQyOWFmNWEwYjc4NzFkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5pZGwKQEAgLTM2LDQgKzM2LDQgQEAg
bW9kdWxlIGNzcyB7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU0tleWZyYW1lc1J1bGUuaWRsCmluZGV4IGZhMGVhMmExYmQ5OTY0NmQwOGVkMjdkMjg4
NzQ1MmY1YjA5YTNmZmYuLmRkMDNmOGFmYzc4YTQwMjExNTFkZWFhODQ2ZjViZjYwMGUxY2Y2MTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwKQEAg
LTI5LDE2ICsyOSwxNiBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERP
TSBMZXZlbCA/OgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBJbmRleGVkR2V0dGVy
Ci0gICAgXSBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlIDogQ1NTUnVsZSB7CisgICAgXSBpbnRlcmZh
Y2UgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSA6IENTU1J1bGUgewogCi0gICAgICAgIGF0dHJpYnV0
ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVs
bCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgY3NzUnVsZXM7CiAgICAgICAgIAot
ICAgICAgICB2b2lkIGluc2VydFJ1bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIHJ1bGUpOwotICAgICAgICB2b2lkIGRlbGV0ZVJ1bGUoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGtleSk7Ci0gICAgICAgIFdlYktpdENTU0tleWZy
YW1lUnVsZSBmaW5kUnVsZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcga2V5KTsKKyAgICAgICAgdm9pZCBpbnNlcnRSdWxlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIERPTVN0cmluZyBydWxlKTsKKyAgICAgICAgdm9pZCBkZWxldGVSdWxlKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBrZXkpOworICAgICAgICBXZWJL
aXRDU1NLZXlmcmFtZVJ1bGUgZmluZFJ1bGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIGtleSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwKaW5kZXggMDhjNDFhYTEyMzdmOWFjNmIwMDM3YzkzMDc3ZTczZDFlMTll
MjFjZS4uYzIyN2IzMGIzYmZmYmMxNGViZjlkYzkyYWJhYmJmOTkxYmQ0ODMyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKQEAgLTI2LDEwICsyNiwxMCBAQAogbW9kdWxl
IGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgotICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIENvbnN0cnVjdG9yKGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5n
XSBET01TdHJpbmcgY3NzVmFsdWUpLAotICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlv
biwKLSAgICBdIFdlYktpdENTU01hdHJpeCB7CisgICAgWworICAgICAgICBDb25zdHJ1Y3Rvcihb
T3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGNzc1ZhbHVlKSwKKyAg
ICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KKyAgICBdIGludGVyZmFjZSBXZWJLaXRD
U1NNYXRyaXggewogCiAgICAgICAgIC8vIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIHNpbXBsZSBhbGlh
c2VzIGZvciBjZXJ0YWluIGVsZW1lbnRzIG9mIHRoZSA0eDQgbWF0cml4CiAgICAgICAgIGF0dHJp
YnV0ZSBkb3VibGUgYTsgLy8gYWxpYXMgZm9yIG0xMQpAQCAtNTYsNTEgKzU2LDUxIEBAIG1vZHVs
ZSBjc3MgewogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG00MzsKICAgICAgICAgYXR0cmlidXRl
IGRvdWJsZSBtNDQ7CiAKLSAgICAgICAgdm9pZCBzZXRNYXRyaXhWYWx1ZShpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3RyaW5nKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgc2V0TWF0cml4VmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHN0cmluZykgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAg
ICAKICAgICAgICAgLy8gTXVsdGlwbHkgdGhpcyBtYXRyaXggYnkgc2Vjb25kTWF0cml4LCBvbiB0
aGUgcmlnaHQgKHJlc3VsdCA9IHRoaXMgKiBzZWNvbmRNYXRyaXgpCi0gICAgICAgIFtJbW11dGFi
bGVdIFdlYktpdENTU01hdHJpeCBtdWx0aXBseShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBXZWJLaXRDU1NNYXRyaXggc2Vjb25kTWF0cml4KTsKKyAgICAgICAgW0ltbXV0YWJsZV0g
V2ViS2l0Q1NTTWF0cml4IG11bHRpcGx5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IFdlYktpdENTU01hdHJpeCBzZWNvbmRNYXRyaXgpOwogICAgICAgICAKICAgICAgICAgLy8gUmV0
dXJuIHRoZSBpbnZlcnNlIG9mIHRoaXMgbWF0cml4LiBUaHJvdyBhbiBleGNlcHRpb24gaWYgdGhl
IG1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZQogICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NN
YXRyaXggaW52ZXJzZSgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCiAgICAgICAg
IC8vIFJldHVybiB0aGlzIG1hdHJpeCB0cmFuc2xhdGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgog
ICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFsdWUgb2YgMC4gVGhpcyBhbGxv
d3MgdGhlIDNEIGZvcm0gdG8gdXNlZCBmb3IgMkQgb3BlcmF0aW9ucyAgICAKLSAgICAgICAgW0lt
bXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBkb3VibGUgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91YmxlIHksIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSB6KTsKKyAgICAgICAgW0ltbXV0YWJsZV0gV2Vi
S2l0Q1NTTWF0cml4IHRyYW5zbGF0ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBk
b3VibGUgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHksIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGRvdWJsZSB6KTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBt
YXRyaXggc2NhbGVkIGJ5IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIHNj
YWxlWCBvciBzY2FsZVogYXMgTmFOIHVzZXMgYSB2YWx1ZSBvZiAxLCBidXQgcGFzc2luZyBzY2Fs
ZVkgb2YgTmFOIAogICAgICAgICAvLyBtYWtlcyBpdCB0aGUgc2FtZSBhcyBzY2FsZVguIFRoaXMg
YWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9yIDJEIG9wZXJhdGlvbnMKLSAgICAgICAgW0lt
bXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNjYWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGRvdWJsZSBzY2FsZVgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91YmxlIHNjYWxlWSwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgc2NhbGVaKTsKKyAgICAgICAgW0ltbXV0YWJsZV0g
V2ViS2l0Q1NTTWF0cml4IHNjYWxlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRv
dWJsZSBzY2FsZVgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHNjYWxlWSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBkb3VibGUgc2NhbGVaKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybnMg
dGhpcyBtYXRyaXggcm90YXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gSWYg
cm90WSBhbmQgcm90WiBhcmUgTmFOLCByb3RhdGUgYWJvdXQgWiAocm90WD0wLCByb3RhdGVZPTAs
IHJvdGF0ZVo9cm90WCkuCiAgICAgICAgIC8vIE90aGVyd2lzZSB1c2UgYSByb3RhdGlvbiB2YWx1
ZSBvZiAwIGZvciBhbnkgcGFzc2VkIE5hTi4gICAgCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktp
dENTU01hdHJpeCByb3RhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91Ymxl
IHJvdFgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSByb3RZLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBkb3VibGUgcm90Wik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBy
b3RhdGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHJvdFgsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGRvdWJsZSByb3RZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUg
cm90Wik7CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQg
YWJvdXQgdGhlIHBhc3NlZCBheGlzIGJ5IHRoZSBwYXNzZWQgYW5nbGUuCiAgICAgICAgIC8vIFBh
c3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLiBJZiB0aGUgYXhpcyBpcyAoMCwwLDAp
IHVzZSBhIHZhbHVlCiAgICAgICAgIC8vIG9mICgwLDAsMSkuCi0gICAgICAgIFtJbW11dGFibGVd
IFdlYktpdENTU01hdHJpeCByb3RhdGVBeGlzQW5nbGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZG91YmxlIHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSB5
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgeiwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gZG91YmxlIGFuZ2xlKTsKKyAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0
Q1NTTWF0cml4IHJvdGF0ZUF4aXNBbmdsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBkb3VibGUgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHksIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRvdWJsZSB6LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBkb3VibGUgYW5nbGUpOwogCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXgg
c2tld2VkIGFsb25nIHRoZSBYIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8v
IFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgotICAgICAgICBbSW1tdXRhYmxl
XSBXZWJLaXRDU1NNYXRyaXggc2tld1goaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
ZG91YmxlIGFuZ2xlKTsKKyAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNrZXdY
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAg
ICAgLy8gUmV0dXJucyB0aGlzIG1hdHJpeCBza2V3ZWQgYWxvbmcgdGhlIFkgYXhpcyBieSB0aGUg
cGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3aWxsIHVzZSBhIHZhbHVl
IG9mIDAuCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBza2V3WShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgYW5nbGUpOworICAgICAgICBbSW1tdXRh
YmxlXSBXZWJLaXRDU1NNYXRyaXggc2tld1koW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZG91YmxlIGFuZ2xlKTsKIAogICAgICAgICBbTm90RW51bWVyYWJsZV0gRE9NU3RyaW5nIHRv
U3RyaW5nKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NSZWdpb25SdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NS
ZWdpb25SdWxlLmlkbAppbmRleCBlYzNlNmQ1MTU3NmZiN2M4Y2VhNTQ4ZjY1ZjlmMzE0ODI0YzU2
YzcwLi43MjUwZjg5MmU1NzQ4MWMxNDU1M2RjMjg2MWUxZDNkYTE5MjFmYTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuaWRsCkBAIC0yOSwxMCArMjksMTAgQEAK
IAogbW9kdWxlIGNzcyB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1D
U1NfUkVHSU9OUywKLSAgICBdIFdlYktpdENTU1JlZ2lvblJ1bGUgOiBDU1NSdWxlIHsKKyAgICBb
CisgICAgICAgIENvbmRpdGlvbmFsPUNTU19SRUdJT05TCisgICAgXSBpbnRlcmZhY2UgV2ViS2l0
Q1NTUmVnaW9uUnVsZSA6IENTU1J1bGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NT
UnVsZUxpc3QgY3NzUnVsZXM7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsCmluZGV4IDkyZmRlMWQzNmNkNmZlMTU5ZDZl
ZTQ2NmEwY2NkZTdjODI5YWU1NmYuLmYyNWM4NTQwZDg3NTg0NDFkZmVlN2Y2MDFmOGM2MjYwMzIx
OTExZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmlkbApAQCAtMjgsMTAgKzI4LDEwIEBACiAKIG1vZHVsZSBjc3MgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICAgICAgRG9Ob3RD
aGVja0NvbnN0YW50cwotICAgIF0gV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgOiBDU1NWYWx1ZUxp
c3QgeworICAgIF0gaW50ZXJmYWNlIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlIDogQ1NTVmFsdWVM
aXN0IHsKIAogICAgICAgICAvLyBPcGVyYXRpb25UeXBlcwogCkBAIC02MCw0ICs2MCw0IEBAIG1v
ZHVsZSBjc3MgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgb3Bl
cmF0aW9uVHlwZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0F0dHIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaWRsCmluZGV4IDMwMDg5Njcy
M2ZjMzdmZDExOTU0YzUwNDc2MzA4NDkxNjUyNTZkNjcuLmJmN2MzODk0ZTgwMTAzNjk3ODkyNDA3
YjU0NmVmNmU5OWFkMzg4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5pZGwKQEAgLTIwLDE5ICsyMCwxOSBAQAog
CiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNDdXN0
b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAotICAgIF0g
QXR0ciA6IE5vZGUgeworICAgIF0gaW50ZXJmYWNlIEF0dHIgOiBOb2RlIHsKIAogICAgICAgICAv
LyBET00gTGV2ZWwgMQogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwog
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNwZWNpZmllZDsKIAotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlIAotICAgICAgICAgICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHZhbHVlIAorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIKIApAQCAtNDgsNCArNDgsNCBAQCBt
b2R1bGUgY29yZSB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQmVm
b3JlTG9hZEV2ZW50LmlkbAppbmRleCAwOGRmYmJiMzA2YzIxMjc0YzFlNDFiNTlhNWU0YTQwMjJk
MDI0NjEyLi40MGFiMGYyZjQ5MWM4MGNhNTFjYjc2ODU0NDc4NmE5ZDVlYTY1MWZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQmVmb3JlTG9hZEV2ZW50LmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1v
ZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVj
dG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIEJlZm9yZUxvYWRFdmVudCA6IEV2ZW50IHsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9N
U3RyaW5nIHVybDsKKyAgICBdIGludGVyZmFjZSBCZWZvcmVMb2FkRXZlbnQgOiBFdmVudCB7Cisg
ICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB1cmw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9DREFUQVNlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlv
bi5pZGwKaW5kZXggNzBhNGY1NTgwMzhiZDg5MTM2OWZjNmQyOWI5YmU1YzM1YmYwOThmMS4uN2Iw
ZGUwMGNkOTFjMGMyODVlMWNkMmU0OTJjNGQ2YmMzYWY1NGEzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NE
QVRBU2VjdGlvbi5pZGwKQEAgLTIyLDQgKzIyLDQgQEAgbW9kdWxlIGNvcmUgewogICAgIGludGVy
ZmFjZSBDREFUQVNlY3Rpb24gOiBUZXh0IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NoYXJhY3RlckRhdGEuaWRsCmluZGV4IDJiYjNkNGU0OTkzMDA4NjBjZDhiMGY0MjRkYzUyMWQ5
MDIxMWViZDMuLjY2ODRlNjVmZmMxNGZlNGQ2NjdlZWQ1NTcxZjU3NWQ3YzY2ZjQ1MmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwKQEAgLTIxLDMxICsyMSwzMSBAQCBtb2R1bGUg
Y29yZSB7CiAKICAgICBpbnRlcmZhY2UgQ2hhcmFjdGVyRGF0YSA6IE5vZGUgewogCi0gICAgICAg
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRhdGEKLSAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZGF0YQorICAgICAgICAgICAgc2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOwogICAgICAgICAKLSAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbCwgT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBET01TdHJpbmcgc3Vic3RyaW5n
RGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxv
bmcgb2Zmc2V0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQorICAgICAgICBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsLCBPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERPTVN0cmlu
ZyBzdWJzdHJpbmdEYXRhKFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtJc0luZGV4LE9wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBsZW5ndGgpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGFwcGVuZERhdGEoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpCisgICAgICAgIHZvaWQg
YXBwZW5kRGF0YShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZGF0
YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgaW5zZXJ0RGF0YShpbiBbSXNJbmRleCxPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBkYXRhKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
XSB2b2lkIGluc2VydERhdGEoW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZGF0YSkK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFtPYmpDTGVnYWN5
VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgZGVsZXRlRGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIHZvaWQgZGVsZXRlRGF0YShbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gdW5zaWduZWQgbG9uZyBsZW5ndGgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlcGxhY2VE
YXRhKGluIFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9u
ZyBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJ
c0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBsZW5ndGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpCisgICAgICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnNdIHZvaWQgcmVwbGFjZURhdGEoW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiB1bnNpZ25lZCBsb25nIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
ZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIAogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdC5pZGwKaW5kZXggN2RiZGQ2ODk4YTgyOGExYWI0
OGZkZTdmMGU1OWMxM2M1MTdlMzFhNC4uZTA2MzM2OTIxNTAwNDM5M2I4Mzk3ZmNjOGNjODc0ZWVk
MTAxYTU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbApAQCAtMzUsNCArMzUsNCBAQCBt
b2R1bGUgdmlldyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBoZWlnaHQ7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsCmluZGV4IDAy
ZjA1NWU2ZTYwZWIyNGUxMmYzM2M3ODU5MGIyN2UzYjFhOWE0NDkuLjUzMDI3Mzg1Y2ViYWVkNTY5
YTdlMjljZGU0NTVhMTQzNmQ2NWU1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGllbnRSZWN0TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJlY3RMaXN0
LmlkbApAQCAtMjYsMTIgKzI2LDEyIEBACiAKIG1vZHVsZSB2aWV3IHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBDbGllbnRSZWN0TGlzdCB7
CisgICAgXSBpbnRlcmZhY2UgQ2xpZW50UmVjdExpc3QgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIENsaWVudFJlY3QgaXRlbShpbiBb
SXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OworICAgICAgICBDbGllbnRSZWN0IGl0ZW0oW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICAgICAgLy8gRklYTUU6IEZpeCBs
aXN0IGJlaGF2aW9yIHRvIGFsbG93IGN1c3RvbSBleGNlcHRpb25zIHRvIGJlIHRocm93bi4KICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAppbmRleCBjOTQ2MjFiYzdmYjQ4
ZDI2ZDEzNzM3OTM5OTIxMmE1ODM2YzVmYzQwLi5hMWUwZGI5NDU5ODRlY2ZmMjMwYzQ2ZDIwMzk2
NWY5NzhlYWQwYjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbApAQCAtMjksMTkgKzI5LDE5
IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgQ2xpcGJvYXJkIHsKLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0g
RE9NU3RyaW5nIGRyb3BFZmZlY3Q7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIERPTVN0cmluZyBlZmZlY3RBbGxvd2VkOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gQXJyYXkgdHlwZXM7Cisg
ICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gYXR0
cmlidXRlIERPTVN0cmluZyBkcm9wRWZmZWN0OworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIGF0dHJpYnV0ZSBET01TdHJpbmcgZWZmZWN0QWxs
b3dlZDsKKyAgICAgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5IHR5
cGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUxpc3QgZmlsZXM7CiAKLSAgICAg
ICAgW0N1c3RvbV0gdm9pZCBjbGVhckRhdGEoaW4gW09wdGlvbmFsXSBET01TdHJpbmcgdHlwZSkK
KyAgICAgICAgW0N1c3RvbV0gdm9pZCBjbGVhckRhdGEoW09wdGlvbmFsXSBpbiBET01TdHJpbmcg
dHlwZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBET01TdHJp
bmcgZ2V0RGF0YShpbiBET01TdHJpbmcgdHlwZSk7CiAgICAgICAgIGJvb2xlYW4gc2V0RGF0YShp
biBET01TdHJpbmcgdHlwZSwgaW4gRE9NU3RyaW5nIGRhdGEpOwogICAgICAgICBbQ3VzdG9tXSB2
b2lkIHNldERyYWdJbWFnZShpbiBIVE1MSW1hZ2VFbGVtZW50IGltYWdlLCBpbiBsb25nIHgsIGlu
IGxvbmcgeSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywgVjhFbmFi
bGVkQXRSdW50aW1lPURhdGFUcmFuc2Zlckl0ZW1zXSBEYXRhVHJhbnNmZXJJdGVtTGlzdCBpdGVt
czsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIFY4RW5hYmxlZEF0
UnVudGltZT1EYXRhVHJhbnNmZXJJdGVtc10gcmVhZG9ubHkgYXR0cmlidXRlIERhdGFUcmFuc2Zl
ckl0ZW1MaXN0IGl0ZW1zOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29tbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5pZGwKaW5k
ZXggYjlmNGUzMTllYWMzNTQwMWZhZWExYmE0ODk2MTZiOWEzZjhiYTcyNy4uMzA2OTlmMTU5Y2Jj
MWEzNzZiYTkxNjYzYzY3ZDlhZTVkZTNiZjM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmlkbApAQCAt
MjIsNCArMjIsNCBAQCBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNlIENvbW1lbnQgOiBDaGFy
YWN0ZXJEYXRhIHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9u
RXZlbnQuaWRsCmluZGV4IGY2NmVkNWFlNGNmMzgzYTg0NGFhM2I4MDdlM2I1MjgyY2U0NjBlNTcu
LmI0OWI3Y2IyNDU3OGIyZjUwNjk1ZTdlODYwNzRiOWI0NmQ3ODdhMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29tcG9zaXRpb25FdmVudC5pZGwKQEAgLTMwLDEyICszMCwxMiBAQCBtb2R1bGUgZXZl
bnRzIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRhdGE7CiAKLSAg
ICAgICAgdm9pZCBpbml0Q29tcG9zaXRpb25FdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgdHlwZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGVB
cmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NV2lu
ZG93IHZpZXdBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhQXJnKTsKKyAgICAgICAgdm9p
ZCBpbml0Q29tcG9zaXRpb25FdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgdHlwZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NV2luZG93IHZpZXdB
cmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBkYXRhQXJnKTsKIAogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL0N1c3RvbUV2ZW50LmlkbAppbmRleCA5MTU4ZDU4YTJmMDNiNmRhODlmNDU3OWUw
YmQ2MzM0MmZmYzU5MWYzLi4zZWY5ZDQ4MDM0YzNjYjg4Y2VkNzRhNmE4NzIzYzYxMDViODNhNTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5pZGwKQEAgLTI3LDE2ICsyNywxNiBAQCBtb2R1
bGUgZXZlbnRzIHsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQ
UAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIEN1c3RvbUV2ZW50
IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yXSBET01PYmplY3QgZGV0YWlsOworICAgIF0gaW50ZXJmYWNlIEN1c3RvbUV2
ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01PYmplY3QgZGV0YWlsOwogCi0gICAgICAgIHZvaWQgaW5pdEN1
c3RvbUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBl
QXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbmNlbGFi
bGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01PYmplY3QgZGV0YWlsQXJnKTsKKyAgICAgICAgdm9pZCBpbml0Q3Vz
dG9tRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGVB
cmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJs
ZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTU9iamVjdCBkZXRhaWxBcmcpOwogICAgIH07CiAjZW5kaWYKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAppbmRleCAzODdiYjZiYjIy
ODU3NGJiZGIxZmIxZjgxMmRlZmM2N2M1YzQ3MjMzLi5kMjdlMDYzYzQ2YjFjYWZhMGNkN2M4OTZj
ZTllYjkxYjVkNzJlMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRs
CkBAIC0yOCwxMSArMjgsMTEgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgZXhjZXB0aW9uIFsK
KyAgICBbCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIERvTm90Q2hlY2tDb25z
dGFudHMsCiAgICAgICAgIEludGVyZmFjZU5hbWU9RE9NRXhjZXB0aW9uCi0gICAgXSBET01Db3Jl
RXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBET01Db3JlRXhjZXB0aW9uIHsKIAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICBjb2RlOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwpAQCAtODIsNCArODIsNCBAQCBt
b2R1bGUgY29yZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgREFUQV9DTE9O
RV9FUlIgICAgICAgICAgICAgICAgID0gMjU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
RXJyb3IuaWRsCmluZGV4IGVlMDU5ZDRiMjU2ZGVjMTllODYxMmNiNTZkYzFiNGJjMWI3NDA3ZjAu
LjE0MGYyOGVmMjlmNzY5NzEyNzZlYjEwZGJmM2IyMTk3MDYyNzY3NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUVycm9yLmlkbApAQCAtMjcsOSArMjcsOCBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgaW50
ZXJmYWNlIFsKLSAgICBdIERPTUVycm9yIHsKKyAgaW50ZXJmYWNlIERPTUVycm9yIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggY2Q1NzA5OTA2NzYxYjQy
Mjg4ZTUwOWVjNGUzNTI2OWU3YmMzNGI5OS4uZmFiYzlhMTQ4Y2Q4YWE4NGIzYzg4MzA3Y2MxYWMz
NmVhYWJmYjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBA
IC0yMCwzNiArMjAsMzYgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1lbnQsCiAgICAgICAg
IFY4RGVwZW5kZW50TGlmZXRpbWUKLSAgICBdIERPTUltcGxlbWVudGF0aW9uIHsKKyAgICBdIGlu
dGVyZmFjZSBET01JbXBsZW1lbnRhdGlvbiB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKIAot
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBib29sZWFuIGhhc0ZlYXR1cmUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGZlYXR1cmUsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdmVyc2lvbik7
CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzRmVhdHVy
ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZmVhdHVyZSwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB2ZXJzaW9u
KTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMgogCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUoaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgcHVibGljSWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBzeXN0ZW1JZCkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gRG9jdW1lbnRUeXBlIGNyZWF0ZURvY3VtZW50VHlwZShbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRy
ZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyBwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IHN5c3RlbUlkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERvY3VtZW50IGNyZWF0ZURvY3VtZW50KGluIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERvY3VtZW50VHlwZSBkb2N0eXBlKQorICAgICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBEb2N1bWVudCBjcmVhdGVEb2N1bWVudChbVHJl
YXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBEb2N1bWVudFR5cGUgZG9jdHlwZSkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIERPTUltcGxlbWVudGF0aW9u
Q1NTIGludGVyZmFjZSBmcm9tIERPTSBMZXZlbCAyIENTUwogCi0gICAgICAgIFtPYmpDTGVnYWN5
VW5uYW1lZFBhcmFtZXRlcnNdIENTU1N0eWxlU2hlZXQgY3JlYXRlQ1NTU3R5bGVTaGVldChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGl0bGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbWVkaWEpCisgICAgICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIENTU1N0eWxlU2hlZXQgY3JlYXRlQ1NTU3R5bGVTaGVldChb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdGl0bGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbWVkaWEpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBIVE1MRE9NSW1wbGVtZW50YXRpb24g
aW50ZXJmYWNlIGZyb20gRE9NIExldmVsIDIgSFRNTAogCi0gICAgICAgIEhUTUxEb2N1bWVudCBj
cmVhdGVIVE1MRG9jdW1lbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHRpdGxlKTsKKyAgICAgICAgSFRNTERvY3VtZW50IGNyZWF0ZUhUTUxEb2N1bWVudChbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdGl0bGUpOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwKaW5kZXggNWJlZjg4N2JjOGE3
MWY1NDQxYzJhMzgxYWE1YWMzYjMxOGIxMjFjMC4uZjFkZTM3YjZmY2NjYjAyNGYyMDAyNTBhZmQ0
MTY2Yzc5NTIzNjY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xp
c3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbApAQCAtMjUs
MTQgKzI1LDE0IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0Ci0g
ICAgXSBET01TdHJpbmdMaXN0IHsKKyAgICBdIGludGVyZmFjZSBET01TdHJpbmdMaXN0IHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBb
VHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaXRlbShpbiBbSXNJbmRl
eCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAg
ICAgICBib29sZWFuIGNvbnRhaW5zKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyBzdHJpbmcpOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgaXRlbShbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBib29sZWFuIGNvbnRhaW5zKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHJpbmcpOwogICAgIH07CiAKLX0K
K307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKaW5kZXggMDQ1ZDUyMjMyMjlmMmMy
OWJhN2Y2MTY2NmI0NmM1OWViYTgyYWNlZS4uMGVlNTU4YmE3MzVkNWQzNmUyNTUzZGM5ZDRlYzk0
MzRjOWMyYjg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKQEAgLTI1LDEzICsy
NSwxMyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCiAgICAgICAgIE5hbWVkR2V0
dGVyLAogICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKICAgICAgICAgQ3VzdG9tRW51bWVy
YXRlUHJvcGVydHksCiAgICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyCi0gICAgXSBET01TdHJpbmdN
YXAgeworICAgIF0gaW50ZXJmYWNlIERPTVN0cmluZ01hcCB7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbAppbmRleCAwZGFkMzM4MjJmNzRjZmU5
ZmQ0NGFmNDZlMDRiZjM5YjY4MzVjOTU0Li4wZDMwNWY2MzI5Y2ExZmNlOTQwNTBjYjlmNGJjYzAz
YmE0NzZjYWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0z
MCwxNCArMzAsMTQgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAg
ICAgQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywKLSAgICBdIERhdGFUcmFuc2Zlckl0
ZW0geworICAgIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUworICAg
IF0gaW50ZXJmYWNlIERhdGFUcmFuc2Zlckl0ZW0gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dHlwZTsKIAotICAgICAgICB2b2lkIGdldEFzU3RyaW5nKGluIFtDYWxsYmFjayxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIFN0cmluZ0NhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICAgICAgdm9p
ZCBnZXRBc1N0cmluZyhbQ2FsbGJhY2ssT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBT
dHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgICAgIEJsb2IgZ2V0QXNGaWxlKCk7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRs
CmluZGV4IGFlZTkyZTdhYWY2ODIwNWU1OTc0M2UwZjNjYWU1YTQ1ZTFhMmQ0ZTIuLjY4MTU3MzBh
Nzg5ZmI0ZjNhMGM0ZDk5NThmOGMxMTdkMmQzZWRhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbApAQCAtMzAsMjEgKzMwLDIxIEBACiAKIG1vZHVsZSBj
b3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1EQVRB
X1RSQU5TRkVSX0lURU1TLAogICAgICAgICBJbmRleGVkR2V0dGVyLAotICAgICAgICBKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QsCisgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAogI2lm
IGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORwotICAgICAgICBDdXN0b21EZWxldGVQ
cm9wZXJ0eSwKKyAgICAgICAgLEN1c3RvbURlbGV0ZVByb3BlcnR5CiAjZW5kaWYKLSAgICBdIERh
dGFUcmFuc2Zlckl0ZW1MaXN0IHsKKyAgICBdIGludGVyZmFjZSBEYXRhVHJhbnNmZXJJdGVtTGlz
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsKLSAgICAgICAgRGF0
YVRyYW5zZmVySXRlbSBpdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOworICAgICAgICBEYXRhVHJhbnNmZXJJdGVtIGl0ZW0oW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAgICAg
dm9pZCBjbGVhcigpOwogICAgICAgICB2b2lkIGFkZChpbiBGaWxlPyBmaWxlKTsKLSAgICAgICAg
dm9pZCBhZGQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEs
IAotICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgdHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgYWRkKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBkYXRhLCAKKyAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGUpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU1vdGlvbkV2ZW50LmlkbAppbmRleCBiYjU1ZjdjY2U3MDNlZTJhODM5ZDc0OTcxY2ZiY2Y1
ZGQzYjk0NjliLi42OWJjMDhhY2JmYmY0MTQ0MzRjMGJlZTUyYmM1NjFkZTFhYzZhNjI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKQEAgLTI1LDIwICsyNSwyMCBA
QAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25h
bD1ERVZJQ0VfT1JJRU5UQVRJT04sCi0gICAgXSBEZXZpY2VNb3Rpb25FdmVudCA6IEV2ZW50IHsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIEFjY2VsZXJhdGlvbiBhY2NlbGVy
YXRpb247Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBBY2NlbGVyYXRpb24g
YWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0eTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDdXN0b21dIFJvdGF0aW9uUmF0ZSByb3RhdGlvblJhdGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ3VzdG9tXSBkb3VibGUgaW50ZXJ2YWw7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQg
aW5pdERldmljZU1vdGlvbkV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBidWJibGVzLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gQWNjZWxlcmF0aW9uIGFjY2VsZXJhdGlvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEFjY2Vs
ZXJhdGlvbiBhY2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gUm90YXRpb25SYXRlIHJvdGF0aW9uUmF0ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJs
ZSBpbnRlcnZhbCk7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1ERVZJQ0VfT1JJRU5UQVRJ
T04KKyAgICBdIGludGVyZmFjZSBEZXZpY2VNb3Rpb25FdmVudCA6IEV2ZW50IHsKKyAgICAgICAg
W0N1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRlIEFjY2VsZXJhdGlvbiBhY2NlbGVyYXRpb247Cisg
ICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2NlbGVyYXRpb24gYWNjZWxlcmF0
aW9uSW5jbHVkaW5nR3Jhdml0eTsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRl
IFJvdGF0aW9uUmF0ZSByb3RhdGlvblJhdGU7CisgICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0
dHJpYnV0ZSBkb3VibGUgaW50ZXJ2YWw7CisgICAgICAgIFtDdXN0b21dIHZvaWQgaW5pdERldmlj
ZU1vdGlvbkV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0
eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBidWJibGVzLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gQWNjZWxl
cmF0aW9uIGFjY2VsZXJhdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEFjY2VsZXJhdGlvbiBh
Y2NlbGVyYXRpb25JbmNsdWRpbmdHcmF2aXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gUm90YXRp
b25SYXRlIHJvdGF0aW9uUmF0ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRvdWJsZSBpbnRlcnZh
bCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmlkbAppbmRleCBhZWQzOGZmZTNiN2JjZmI3MDE0ZDZmZDI2MzQyMTExOTlhZjRh
NWQ2Li4xNzJmNjU2YjkwZDFlZDJhZmZkODcwYzVmOTc0NjQ1MjRmMWY1MzdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsCkBAIC0yNSwyMCArMjUs
MjAgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0
aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLAotICAgIF0gRGV2aWNlT3JpZW50YXRpb25FdmVudCA6
IEV2ZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGRvdWJsZSBhbHBo
YTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGRvdWJsZSBiZXRhOwotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gZG91YmxlIGdhbW1hOwotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gYm9vbGVhbiBhYnNvbHV0ZTsKLSAgICAgICAgW0N1
c3RvbV0gdm9pZCBpbml0RGV2aWNlT3JpZW50YXRpb25FdmVudChpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Ym9vbGVhbiBidWJibGVzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbmNl
bGFibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSBhbHBoYSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZG91YmxlIGJldGEsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGRvdWJsZSBnYW1tYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGFic29sdXRl
KTsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTgorICAgIF0g
aW50ZXJmYWNlIERldmljZU9yaWVudGF0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtDdXN0
b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgYWxwaGE7CisgICAgICAgIFtDdXN0b21dIHJl
YWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgYmV0YTsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9ubHkg
YXR0cmlidXRlIGRvdWJsZSBnYW1tYTsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gYWJzb2x1dGU7CisgICAgICAgIFtDdXN0b21dIHZvaWQgaW5pdERldmljZU9y
aWVudGF0aW9uRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gYnViYmxlcywgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBkb3VibGUgYWxwaGEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRvdWJs
ZSBiZXRhLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUgZ2FtbWEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBhYnNvbHV0ZSk7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDdjMWM0ODM5YzI5Mjg3MDJlNzMyMDgxN2FmNzRkNjM0
NmM3NDMwZTIuLjM2MmE2MDMyY2NiYzdkYTU3ZDJmOGUyNWY1OWVhZTlmZjBhYWZhOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbApAQCAtMjAsNTkgKzIwLDU5IEBACiAKIG1vZHVsZSBjb3JlIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAg
ICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTSW5saW5lR2V0T3duUHJv
cGVydHlTbG90Ci0gICAgXSBEb2N1bWVudCA6IE5vZGUgeworICAgIF0gaW50ZXJmYWNlIERvY3Vt
ZW50IDogTm9kZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEgQ29yZQogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRG9jdW1lbnRUeXBlIGRvY3R5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRhdGlvbjsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQgZG9jdW1lbnRFbGVtZW50OwogCi0gICAgICAgIFtSZXR1cm5O
ZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKQorICAgICAg
ICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnQoW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdGFnTmFt
ZSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRG9jdW1lbnRG
cmFnbWVudCAgIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgW1JldHVybk5ld09i
amVjdF0gVGV4dCBjcmVhdGVUZXh0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgZGF0YSk7Ci0gICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIENvbW1lbnQgY3Jl
YXRlQ29tbWVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZGF0
YSk7Ci0gICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIENEQVRBU2VjdGlvbiBjcmVhdGVDREFUQVNl
Y3Rpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpCisg
ICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIFRleHQgY3JlYXRlVGV4dE5vZGUoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRhdGEpOworICAgICAgICBbUmV0dXJuTmV3
T2JqZWN0XSBDb21tZW50IGNyZWF0ZUNvbW1lbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIGRhdGEpOworICAgICAgICBbUmV0dXJuTmV3T2JqZWN0XSBDREFUQVNl
Y3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdF0gUHJvY2Vz
c2luZ0luc3RydWN0aW9uIGNyZWF0ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFyZ2V0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRh
KQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmplY3Rd
IFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRhcmdldCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1Jl
dHVybk5ld09iamVjdF0gQXR0ciBjcmVhdGVBdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIEF0
dHIgY3JlYXRlQXR0cmlidXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBuYW1lKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBb
UmV0dXJuTmV3T2JqZWN0XSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVmZXJlbmNlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKQorICAgICAgICBb
UmV0dXJuTmV3T2JqZWN0XSBFbnRpdHlSZWZlcmVuY2UgY3JlYXRlRW50aXR5UmVmZXJlbmNlKFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIE5vZGVMaXN0ICAgICAgICAgICBnZXRF
bGVtZW50c0J5VGFnTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgdGFnbmFtZSk7CisgICAgICAgIE5vZGVMaXN0ICAgICAgICAgICBnZXRFbGVtZW50c0J5VGFn
TmFtZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdGFnbmFtZSk7
CiAKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIAotICAgICAgICBbT2Jq
Q0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmplY3RdIE5vZGUgaW1wb3J0Tm9k
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIGltcG9ydGVkTm9kZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbF0gYm9vbGVhbiBkZWVwKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
LCBSZXR1cm5OZXdPYmplY3RdIE5vZGUgaW1wb3J0Tm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBOb2RlIGltcG9ydGVkTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBkZWVwKQogICAg
ICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzLCBSZXR1cm5OZXdPYmplY3RdIEVsZW1lbnQgY3JlYXRlRWxlbWVudE5TKGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkKKyAgICAgICAg
W09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNy
ZWF0ZUVsZW1lbnROUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHF1YWxpZmll
ZE5hbWUpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdF0gQXR0ciBjcmVhdGVBdHRy
aWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkK
KyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBB
dHRyIGNyZWF0ZUF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBx
dWFsaWZpZWROYW1lKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFn
TmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGdl
dEVsZW1lbnRCeUlkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBl
bGVtZW50SWQpOworICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlz
dCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICAgICAgRWxl
bWVudCAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIERPTVN0cmluZyBlbGVtZW50SWQpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAzIENv
cmUKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbF0gRE9NU3RyaW5nIGlucHV0RW5jb2Rpbmc7CisgICAgICAgIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaW5wdXRFbmNv
ZGluZzsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9TnVsbF0gRE9NU3RyaW5nIHhtbEVuY29kaW5nOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0
cmluZ10gRE9NU3RyaW5nIHhtbFZlcnNpb24KLSAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB4bWxFbmNvZGluZzsKKyAgICAgICAg
ICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB4bWxWZXJzaW9uCisgICAgICAgICAgICAgICAg
ICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4geG1sU3RhbmRhbG9uZQotICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAKLSAgICAgICAgTm9kZSAgICAgICAgICAgICAgIGFkb3B0Tm9kZShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHNvdXJjZSkKKyAgICAgICAgTm9kZSAgICAgICAg
ICAgICAgIGFkb3B0Tm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIHNv
dXJjZSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCkBAIC04MCwxNCAr
ODAsMTQgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAvLyAoc2VlIGh0dHA6Ly93d3cudzMub3Jn
L1RSLzIwMTEvV0QtZG9tLTIwMTEwOTE1LyNkb2N1bWVudCkuIFdlIG5lZWQgdG8ga2VlcAogICAg
ICAgICAvLyB0aGUgd3JpdGFibGUgdmVyc2lvbiBhcm91bmQgZm9yIE9iamVjdGl2ZSBDIGNsaWVu
dHMsIGJ1dCBhcmUgbW92aW5nIHRvCiAgICAgICAgIC8vIHJlYWQtb25seSBmb3Igb3RoZXIgY2xp
ZW50cy4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBkb2N1bWVudFVSSTsK
KyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBkb2N1bWVudFVSSTsKICNlbHNl
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1O
dWxsXSBET01TdHJpbmcgZG9jdW1lbnRVUkk7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9jdW1lbnRVUkk7CiAj
ZW5kaWYKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBFdmVudHMgKERvY3VtZW50RXZlbnRzIGlu
dGVyZmFjZSkKIAotICAgICAgICBFdmVudCAgICAgICAgICAgICAgY3JlYXRlRXZlbnQoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGV2ZW50VHlwZSkKKyAgICAgICAg
RXZlbnQgICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIERPTVN0cmluZyBldmVudFR5cGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBUcmFudmVyc2FsIGFuZCBSYW5nZSAoRG9j
dW1lbnRSYW5nZSBpbnRlcmZhY2UpCkBAIC05NiwxNSArOTYsMTUgQEAgbW9kdWxlIGNvcmUgewog
CiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFRyYW52ZXJzYWwgYW5kIFJhbmdlIChEb2N1bWVudFRy
YXZlcnNhbCBpbnRlcmZhY2UpCiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBOb2RlIHJvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5z
aWduZWQgbG9uZyB3aGF0VG9TaG93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5v
ZGVGaWx0ZXIgZmlsdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
ZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gTm9kZUl0ZXJhdG9yIGNyZWF0ZU5vZGVJdGVyYXRvcihbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBOb2RlIHJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IE5vZGVGaWx0ZXIgZmlsdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xl
YW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBUcmVlV2Fsa2VyIGNy
ZWF0ZVRyZWVXYWxrZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByb290
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyB3aGF0VG9TaG93LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZUZpbHRlciBmaWx0ZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisgICAgICAg
IFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIFRyZWVXYWxrZXIgY3JlYXRlVHJlZVdhbGtl
cihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIHJvb3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBOb2RlRmlsdGVyIGZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcykKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0IFZpZXdzIChE
b2N1bWVudFZpZXcgaW50ZXJmYWNlKQpAQCAtMTE3LDI2ICsxMTcsMjYgQEAgbW9kdWxlIGNvcmUg
ewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIChEb2N1bWVudENTUyBpbnRlcmZhY2Up
CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gQ1NTU3R5bGVEZWNsYXJh
dGlvbiBnZXRPdmVycmlkZVN0eWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEVs
ZW1lbnQgZWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0
cmluZyBwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRPdmVycmlkZVN0eWxlKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIEVsZW1lbnQgZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsKIAogICAgICAgICAvLyBET00g
TGV2ZWwgMyBYUGF0aCAoWFBhdGhFdmFsdWF0b3IgaW50ZXJmYWNlKQotICAgICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBYUGF0aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZXhwcmVzc2lvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKQor
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBYUGF0aEV4cHJlc3Npb24gY3Jl
YXRlRXhwcmVzc2lvbihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
ZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gWFBhdGhOU1Jlc29s
dmVyIHJlc29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IFhQYXRoTlNSZXNvbHZlciAgICBjcmVhdGVOU1Jlc29sdmVyKGluIE5vZGUgbm9kZVJlc29sdmVy
KTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhDdXN0b21dIFhQYXRo
UmVzdWx0IGV2YWx1YXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyBleHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBjb250ZXh0
Tm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFhQYXRoTlNSZXNvbHZlciByZXNv
bHZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IHR5cGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBYUGF0aFJlc3VsdCBpblJlc3VsdCkKKyAg
ICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgVjhDdXN0b21dIFhQYXRoUmVzdWx0
IGV2YWx1YXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBleHBy
ZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBjb250ZXh0Tm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIHNob3J0IHR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBYUGF0aFJlc3VsdCBpblJlc3VsdCkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIENvbW1vbiBleHRlbnNpb25z
CiAKLSAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGV4ZWNDb21tYW5kKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21tYW5kLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9v
bGVhbiB1c2VySW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmlu
ZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB2YWx1ZSk7CisgICAgICAg
IGJvb2xlYW4gICAgICAgICAgICBleGVjQ29tbWFuZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gdXNlcklu
dGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdmFsdWUpOwogCiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gRklY
TUU6IHJlbW92ZSB0aGUgdGhlc2UgdHdvIHZlcnNpb25zIG9uY2UgW09wdGlvbmFsXSBpcyBpbXBs
ZW1lbnRlZCBmb3IgT2JqZWN0aXZlLUMuCkBAIC0xNDUsMzIgKzE0NSwzMSBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBleGVjQ29tbWFuZChpbiBET01TdHJpbmcg
Y29tbWFuZCk7CiAjZW5kaWYKIAotICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21t
YW5kRW5hYmxlZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29t
bWFuZCk7Ci0gICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRJbmRldGVybShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7Ci0gICAg
ICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRTdGF0ZShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tbWFuZCk7Ci0gICAgICAgIGJvb2xlYW4gICAg
ICAgICAgICBxdWVyeUNvbW1hbmRTdXBwb3J0ZWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGNvbW1hbmQpOwotICAgICAgICBET01TdHJpbmcgICAgICAgICAgcXVl
cnlDb21tYW5kVmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IGNvbW1hbmQpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kRW5hYmxl
ZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgY29tbWFuZCk7Cisg
ICAgICAgIGJvb2xlYW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRJbmRldGVybShbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgY29tbWFuZCk7CisgICAgICAgIGJvb2xl
YW4gICAgICAgICAgICBxdWVyeUNvbW1hbmRTdGF0ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgY29tbWFuZCk7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBx
dWVyeUNvbW1hbmRTdXBwb3J0ZWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIGNvbW1hbmQpOworICAgICAgICBET01TdHJpbmcgICAgICAgICAgcXVlcnlDb21tYW5k
VmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNvbW1hbmQp
OwogCiAgICAgICAgIC8vIE1vdmVkIGRvd24gZnJvbSBIVE1MRG9jdW1lbnQKIAotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB0aXRs
ZTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBE
T01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVm
ZXJyZXI7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZB
U0NSSVBUCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGRvbWFpbgotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluCisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGRvbWFpbjsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIFVSTDsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyBjb29raWUKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlz
ZXMgKERPTUV4Y2VwdGlvbiksCi0gICAgICAgICAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
YXR0cmlidXRlIERPTVN0cmluZyBjb29raWUKKyAgICAgICAgICAgICAgICAgICAgIGdldHJhaXNl
cyAoRE9NRXhjZXB0aW9uKSBzZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8g
RklYTUU6IHRoZSBET00gc3BlYyBkb2VzIE5PVCBoYXZlIHRoaXMgYXR0cmlidXRlCiAgICAgICAg
IC8vIHJhaXNpbmcgYW4gZXhjZXB0aW9uLgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgSFRN
TEVsZW1lbnQgYm9keQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEhlYWRFbGVtZW50IGhlYWQ7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBpbWFnZXM7CkBAIC0xODAsNDQg
KzE3OSw0NCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1M
Q29sbGVjdGlvbiBhbmNob3JzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGxhc3RNb2RpZmllZDsKIAotICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudE5hbWUpOworICAg
ICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfTUlD
Uk9EQVRBKSAmJiBFTkFCTEVfTUlDUk9EQVRBCi0gICAgICAgIE5vZGVMaXN0IGdldEl0ZW1zKGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsIE9w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVOYW1lcyk7CisgICAgICAg
IE5vZGVMaXN0IGdldEl0ZW1zKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5l
ZEFzPU51bGxTdHJpbmcsIE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IHR5cGVOYW1lcyk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
JiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bV0gTG9jYXRpb24gbG9jYXRpb247CisgICAgICAgICAgICAgICAgIFtDdXN0b21dIGF0dHJpYnV0
ZSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgogCiAgICAgICAgIC8vIElFIGV4dGVuc2lvbnMK
IAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
VW5kZWZpbmVkLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgY2hhcnNldDsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVm
aW5lZF0gRE9NU3RyaW5nIGRlZmF1bHRDaGFyc2V0OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBET01TdHJpbmcgcmVhZHlT
dGF0ZTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZp
bmVkLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJzZXQ7
CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkZWZhdWx0Q2hhcnNldDsKKyAgICAgICAgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
YWR5U3RhdGU7CiAKLSAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGVsZW1lbnRGcm9tUG9pbnQo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gbG9uZyB5KTsKLSAgICAgICAgUmFuZ2UgICAgICAgICAgICAgIGNhcmV0UmFuZ2VGcm9t
UG9pbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gbG9uZyB5KTsKKyAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGVsZW1l
bnRGcm9tUG9pbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB4LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB5KTsKKyAgICAgICAgUmFuZ2UgICAgICAgICAgICAgIGNh
cmV0UmFuZ2VGcm9tUG9pbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB4
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxh
IGV4dGVuc2lvbnMKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdF
X0pBVkFTQ1JJUFQKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwog
I2VuZGlmCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OworICAgICAgICBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJhY3Rl
clNldDsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogCi0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgcHJl
ZmVycmVkU3R5bGVzaGVldFNldDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBzZWxlY3RlZFN0eWxlc2hlZXRTZXQ7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJlZmVycmVkU3R5bGVzaGVl
dFNldDsKKyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwg
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBzZWxlY3RlZFN0eWxl
c2hlZXRTZXQ7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VB
R0VfSkFWQVNDUklQVAogICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGNyZWF0ZUNTU1N0eWxl
RGVjbGFyYXRpb24oKTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9VU5ET19NQU5BR0VSXSBVbmRvTWFuYWdlciB1bmRvTWFuYWdlcjsKKyAgICAgICAg
W0NvbmRpdGlvbmFsPVVORE9fTUFOQUdFUl0gcmVhZG9ubHkgYXR0cmlidXRlIFVuZG9NYW5hZ2Vy
IHVuZG9NYW5hZ2VyOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwpAQCAtMjMxLDcgKzIzMCw3IEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQpOwogICAgICAgICBbT2JqQ1VzZURlZmF1bHRWaWV3XSBD
U1NSdWxlTGlzdCBnZXRNYXRjaGVkQ1NTUnVsZXMoaW4gRWxlbWVudCBlbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcg
cHNldWRvRWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGF1dGhvck9ubHkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xl
YW4gYXV0aG9yT25seSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogI2VuZGlmCiAKQEAgLTI0Miw3ICsyNDEsNyBAQCBtb2R1bGUgY29yZSB7CiAj
ZW5kaWYKIAogICAgICAgICAvLyBIVE1MIDUKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFn
bmFtZSk7CisgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgY29tcGF0TW9kZTsKIApAQCAtMjU0LDE5ICsyNTMs
MTkgQEAgbW9kdWxlIGNvcmUgewogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQogICAgICAgICAvLyBNb3ppbGxhIHZlcnNpb24KLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Vi
a2l0SXNGdWxsU2NyZWVuOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0
UnVudGltZV0gYm9vbGVhbiB3ZWJraXRGdWxsU2NyZWVuS2V5Ym9hcmRJbnB1dEFsbG93ZWQ7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBFbGVtZW50IHdl
YmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudDsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0SXNGdWxsU2NyZWVuOworICAgICAg
ICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRG
dWxsU2NyZWVuS2V5Ym9hcmRJbnB1dEFsbG93ZWQ7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRp
bWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IHdlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxl
bWVudDsKICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gdm9pZCB3ZWJraXRDYW5jZWxGdWxs
U2NyZWVuKCk7CiAKICAgICAgICAgLy8gVzNDIHZlcnNpb24KLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Via2l0RnVsbHNjcmVlbkVuYWJs
ZWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBFbGVt
ZW50IHdlYmtpdEZ1bGxzY3JlZW5FbGVtZW50OworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1l
XSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZDsKKyAg
ICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgd2Vi
a2l0RnVsbHNjcmVlbkVsZW1lbnQ7CiAgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIHZvaWQg
d2Via2l0RXhpdEZ1bGxzY3JlZW4oKTsKICNlbmRpZgogCiAgICAgICAgIFtDb25kaXRpb25hbD1Q
T0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gdm9pZCB3ZWJraXRF
eGl0UG9pbnRlckxvY2soKTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gRWxlbWVudCB3
ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1QT0lOVEVSX0xP
Q0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gcmVhZG9ubHkgYXR0cmlidXRlIEVs
ZW1lbnQgd2Via2l0UG9pbnRlckxvY2tFbGVtZW50OwogCiAjaWYgZGVmaW5lZChFTkFCTEVfQ1NT
X1JFR0lPTlMpICYmIEVOQUJMRV9DU1NfUkVHSU9OUwogICAgICAgICBXZWJLaXROYW1lZEZsb3cg
d2Via2l0R2V0Rmxvd0J5TmFtZShpbiBET01TdHJpbmcgbmFtZSk7CkBAIC0yNzQsOTMgKzI3Myw5
MyBAQCBtb2R1bGUgY29yZSB7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykg
fHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9NIGF0
dHJpYnV0ZXMKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVy
IG9uYWJvcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmJsdXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmNoYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uY2xpY2s7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbmNvbnRleHRtZW51OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25kYmxjbGljazsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9uZHJhZzsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJh
YmxlXSBFdmVudExpc3RlbmVyIG9uZHJhZ2VudGVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnc3RhcnQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyb3A7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKLSAgICAgICAg
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmtleWRvd247Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmtleXByZXNz
OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25rZXl1
cDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubG9h
ZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91
c2Vkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25tb3VzZW1vdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbm1vdXNlb3V0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25tb3VzZW92ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnJlYWR5c3RhdGVjaGFuZ2U7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNjcm9sbDsKLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zdWJtaXQ7Ci0KLSAgICAg
ICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY2FucGxheTsK
LSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY2Fu
cGxheXRocm91Z2g7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKLSAgICAgICAgLy8gYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsKLSAgICAgICAgLy8g
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7
Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxv
YWRzdGFydDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9ucGF1c2U7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbnBsYXk7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnBsYXlpbmc7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZV0gRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25yYXRlY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWVrZWQ7Ci0gICAgICAgIC8vIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlZWtpbmc7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNob3c7Ci0gICAg
ICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnN0YWxsZWQ7
Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnN1
c3BlbmQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbnRpbWV1cGRhdGU7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnZvbHVtZWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ud2FpdGluZzsKKyAgICAgICAgW05vdEVudW1lcmFibGVd
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsdXI7CisgICAgICAgIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNoYW5nZTsKKyAgICAgICAgW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY2xpY2s7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNvbnRleHRtZW51OworICAgICAgICBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kYmxjbGljazsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZzsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKKyAgICAg
ICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2VudGVyOwor
ICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVh
dmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRy
YWdvdmVyOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25kcmFnc3RhcnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmRyb3A7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmVycm9yOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25mb2N1czsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9uaW5wdXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmludmFsaWQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmtleWRvd247CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmtleXByZXNzOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ubW91c2Vkb3duOworICAgICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3V0OworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW92ZXI7CisgICAgICAgIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlYWR5c3Rh
dGVjaGFuZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnNjcm9sbDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uc2VsZWN0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25zdWJtaXQ7CisKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uY2FucGxheTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uY2FucGxheXRocm91Z2g7CisgICAgICAgIC8vIFtOb3RFbnVt
ZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOworICAgICAg
ICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRl
ZDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bG9hZGVkZGF0YTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucGF1c2U7CisgICAgICAgIC8vIFtOb3RFbnVt
ZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBsYXk7CisgICAgICAgIC8vIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBsYXlpbmc7CisgICAgICAgIC8v
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAg
ICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yYXRlY2hh
bmdlOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25zZWVrZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnNlZWtpbmc7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnNob3c7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnN0YWxsZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnN1c3BlbmQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRpbWV1cGRhdGU7CisgICAgICAgIC8vIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnZvbHVtZWNoYW5nZTsKKyAgICAg
ICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2FpdGluZzsK
IAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmN1dDsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlY29weTsKLSAgICAgICAgYXR0cmli
dXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY29weTsKLSAgICAgICAgYXR0cmli
dXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlcGFzdGU7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnBhc3RlOwotICAgICAg
ICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25yZXNldDsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2VhcmNoOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFy
dDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2Vs
ZWN0aW9uY2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsQ29uZGl0aW9u
YWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNo
c3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VD
SF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2htb3ZlOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRT
LFY4RW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoZW5kOwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxl
ZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBFdmVudExpc3Rl
bmVyIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRMaXN0ZW5lciBvbndlYmtp
dGZ1bGxzY3JlZW5lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBDb25k
aXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gRXZl
bnRMaXN0ZW5lciBvbndlYmtpdHBvaW50ZXJsb2NrY2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPVBPSU5URVJfTE9DSywgVjhFbmFibGVkQXRSdW50
aW1lPXBvaW50ZXJMb2NrXSBFdmVudExpc3RlbmVyIG9ud2Via2l0cG9pbnRlcmxvY2tlcnJvcjsK
KyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmVmb3Jl
Y3V0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25j
dXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJl
Zm9yZWNvcHk7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmNvcHk7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmJlZm9yZXBhc3RlOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25wYXN0ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ucmVzZXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnNlYXJjaDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlbGVjdGlvbmNoYW5nZTsKKyAgICAgICAgW05vdEVudW1l
cmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaHN0YXJ0OworICAgICAgICBbTm90RW51bWVyYWJsZSxD
b25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9u
YWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb250b3VjaGVuZDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hf
RVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3Vj
aGNhbmNlbDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5f
QVBJXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2U7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVuZXJyb3I7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlLCBDb25kaXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1w
b2ludGVyTG9ja10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRwb2ludGVybG9ja2No
YW5nZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPVBPSU5URVJfTE9DSywg
VjhFbmFibGVkQXRSdW50aW1lPXBvaW50ZXJMb2NrXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bndlYmtpdHBvaW50ZXJsb2NrZXJyb3I7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX1RP
VUNIX0VWRU5UUykgJiYgRU5BQkxFX1RPVUNIX0VWRU5UUwotICAgICAgICBbUmV0dXJuTmV3T2Jq
ZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWVdIFRvdWNoIGNyZWF0ZVRvdWNoKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB3aW5kb3csCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBFdmVudFRhcmdldCB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIGlkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBsb25nIHBhZ2VYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBw
YWdlWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc2NyZWVuWCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc2NyZWVuWSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgd2Via2l0UmFkaXVzWCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgd2Via2l0UmFkaXVzWSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHdlYmtpdFJvdGF0aW9uQW5nbGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB3ZWJraXRGb3JjZSkKKyAgICAgICAgW1JldHVybk5l
d09iamVjdCwgVjhFbmFibGVkQXRSdW50aW1lXSBUb3VjaCBjcmVhdGVUb3VjaChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgd2luZG93LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gRXZlbnRUYXJnZXQgdGFyZ2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gbG9uZyBpZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gbG9uZyBwYWdlWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxv
bmcgcGFnZVksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHdlYmtpdFJhZGl1c1gsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHdlYmtpdFJhZGl1c1ksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB3ZWJraXRSb3RhdGlvbkFuZ2xlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgd2Via2l0Rm9yY2UpCiAgICAgICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4RW5hYmxl
ZEF0UnVudGltZSwgQ3VzdG9tXSBUb3VjaExpc3QgY3JlYXRlVG91Y2hMaXN0KCkKICAgICAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKQEAgLTM3Miw5ICszNzEsOSBAQCBtb2R1bGUgY29y
ZSB7CiAjZW5kaWYKIAogICAgICAgICAvLyBQYWdlIHZpc2liaWxpdHkgQVBJLgotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEldIERPTVN0
cmluZyB3ZWJraXRWaXNpYmlsaXR5U3RhdGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9UEFHRV9WSVNJQklMSVRZX0FQSV0gYm9vbGVhbiB3ZWJraXRIaWRkZW47Cisg
ICAgICAgIFtDb25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHdlYmtpdFZpc2liaWxpdHlTdGF0ZTsKKyAgICAgICAgW0NvbmRpdGlvbmFs
PVBBR0VfVklTSUJJTElUWV9BUEldIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdEhp
ZGRlbjsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5pZGwKaW5kZXggODgyYjYyZGIzOWViN2YyZTA1MDQ3ODIwNDkyYjdlOTM2MWE4ZWRlZC4uOGYz
MDcxZDkwOWY4OTA3MmNiYTQzMDY1Y2IxOGU1YzU5YTEzYzhhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmlkbApAQCAtMjcsNCArMjcsNCBAQCBtb2R1bGUgY29yZSB7CiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRUeXBlLmlkbAppbmRleCA3MjkwMjMyNzFmMjc1ZjdjMjQ2NWZkMTE3Y2U0
MDEwM2EzYjg0YjJjLi5mYTJhMDY3MzhjNTI0MGQ5ZjUwMjJkZmRjNTkxYTcxMWMwNWYyN2EwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRUeXBlLmlkbApAQCAtMTksOSArMTksOSBAQAogCiBtb2R1
bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZVRv
TmF0aXZlT2JqZWN0Ci0gICAgXSBEb2N1bWVudFR5cGUgOiBOb2RlIHsKKyAgICBdIGludGVyZmFj
ZSBEb2N1bWVudFR5cGUgOiBOb2RlIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCkBAIC0z
MSwxMCArMzEsMTAgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyCiAK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIERPTVN0cmluZyBwdWJsaWNJZDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBzeXN0ZW1JZDsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0
cmluZyBpbnRlcm5hbFN1YnNldDsgICAgICAgIAorICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHB1YmxpY0lkOworICAg
ICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHN5c3RlbUlkOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1O
dWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGludGVybmFsU3Vic2V0OyAgICAgICAg
CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCmluZGV4IGZkZjZmMzYwNjY5
ZWFjNzBhM2U2MDNmNjVlNWEzMGIxNzM5YWQ1MmUuLjRjOGYwMTYzZGViNGI0NTI5MDQwZDE4MGJm
OGQ3ZWRmZTBmMDk0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKQEAgLTIwLDQ2ICsyMCw0NiBA
QAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0lubGluZUdldE93blByb3BlcnR5U2xv
dAotICAgIF0gRWxlbWVudCA6IE5vZGUgeworICAgIF0gaW50ZXJmYWNlIEVsZW1lbnQgOiBOb2Rl
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMSBDb3JlCiAKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyB0YWdOYW1l
OworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRhZ05hbWU7CiAKLSAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBh
cmFtZXRlcnNdIHZvaWQgc2V0QXR0cmlidXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdmFsdWUpCisg
ICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBnZXRBdHRy
aWJ1dGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWUpOwor
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEF0dHJpYnV0ZShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHZhbHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKLSAgICAgICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2Rl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKLSAgICAg
ICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IEF0dHIgbmV3QXR0cikKKyAgICAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBBdHRyIGdldEF0
dHJpYnV0ZU5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5h
bWUpOworICAgICAgICBBdHRyIHNldEF0dHJpYnV0ZU5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gQXR0ciBuZXdBdHRyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIEF0dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBBdHRyIG9sZEF0dHIpCisgICAgICAgIEF0dHIgcmVtb3ZlQXR0cmlidXRl
Tm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBBdHRyIG9sZEF0dHIpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWUpOworICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSk7CiAKICAgICAgICAgLy8gRE9NIExl
dmVsIDIgQ29yZQogCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERPTVN0
cmluZyBnZXRBdHRyaWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVyc10gdm9pZCBzZXRBdHRyaWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyB2YWx1ZSkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVyc10gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEF0dHJpYnV0ZU5TKFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFt
ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHZhbHVlKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNd
IHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNd
IHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGluIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBs
b2NhbE5hbWUpOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBBdHRyIGdl
dEF0dHJpYnV0ZU5vZGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgICAgICBBdHRyIHNldEF0dHJpYnV0ZU5v
ZGVOUyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBdHRyIG5ld0F0dHIpCisgICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlU
YWdOYW1lTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQ
YXJhbWV0ZXJzXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBB
dHRyIHNldEF0dHJpYnV0ZU5vZGVOUyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBB
dHRyIG5ld0F0dHIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
Ym9vbGVhbiBoYXNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5hbWUpOwotICAgICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBib29sZWFuIGhhc0F0dHJpYnV0ZU5TKGluIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsK
KyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9vbGVhbiBoYXNBdHRyaWJ1
dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIGxvY2FsTmFtZSk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVj
bGFyYXRpb24gc3R5bGU7CiAKQEAgLTgxLDIwICs4MSwyMCBAQCBtb2R1bGUgY29yZSB7CiAKICAg
ICAgICAgdm9pZCBmb2N1cygpOwogICAgICAgICB2b2lkIGJsdXIoKTsKLSAgICAgICAgdm9pZCBz
Y3JvbGxJbnRvVmlldyhpbiBbT3B0aW9uYWxdIGJvb2xlYW4gYWxpZ25XaXRoVG9wKTsKKyAgICAg
ICAgdm9pZCBzY3JvbGxJbnRvVmlldyhbT3B0aW9uYWxdIGluIGJvb2xlYW4gYWxpZ25XaXRoVG9w
KTsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogCi0gICAgICAgIHZvaWQgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZChpbiBbT3B0aW9uYWxdIGJvb2xlYW4gY2VudGVySWZOZWVkZWQpOwot
ICAgICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gbG9uZyBsaW5lcyk7Ci0gICAgICAgIHZvaWQgc2Nyb2xsQnlQYWdlcyhpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHBhZ2VzKTsKKyAgICAgICAgdm9pZCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkKFtPcHRpb25hbF0gaW4gYm9vbGVhbiBjZW50ZXJJZk5lZWRlZCk7CisgICAg
ICAgIHZvaWQgc2Nyb2xsQnlMaW5lcyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBs
b25nIGxpbmVzKTsKKyAgICAgICAgdm9pZCBzY3JvbGxCeVBhZ2VzKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGxvbmcgcGFnZXMpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfQU5JTUFU
SU9OX0FQSSkgJiYgRU5BQkxFX0FOSU1BVElPTl9BUEkKICAgICAgICAgV2ViS2l0QW5pbWF0aW9u
TGlzdCB3ZWJraXRHZXRBbmltYXRpb25zKCk7CiAjZW5kaWYKIAogICAgICAgICAvLyBIVE1MIDUK
LSAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5vZGVMaXN0IGdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIG5hbWUpOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFH
RV9KQVZBU0NSSVBUCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmdNYXAgZGF0
YXNldDsKQEAgLTEwNyw3ICsxMDcsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9uLCBwZW5kaW5n
IHNwZWNpZmljYXRpb24uCi0gICAgICAgIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAg
ICAgIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICAvLyBFbGVtZW50VHJhdmVyc2FsIEFQSQpAQCAtMTMxLDcgKzEz
MSw3IEBAIG1vZHVsZSBjb3JlIHsKICNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JiYgRU5BQkxFX0ZVTExTQ1JFRU5fQVBJCiAgICAgICAgIC8vIE1vemlsbGEgdmVyc2lvbgogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTExPV19LRVlCT0FSRF9JTlBVVCA9IDE7Ci0gICAg
ICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIHZvaWQgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgZmxhZ3MpOworICAg
ICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSB2b2lkIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKIAog
ICAgICAgICAvLyBXM0MgdmVyc2lvbgogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSB2b2lk
IHdlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7CkBAIC0xNDQsNzcgKzE0NCw3NyBAQCBtb2R1bGUg
Y29yZSB7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdF
X09CSkVDVElWRV9DCiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgRE9NIGF0dHJpYnV0ZXMKLSAg
ICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNoYW5nZTsK
LSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY2xpY2s7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNvbnRl
eHRtZW51OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25kYmxjbGljazsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uZHJhZzsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uZHJhZ2VuZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExp
c3RlbmVyIG9uZHJhZ2VudGVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnc3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyb3A7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uaW5wdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmludmFsaWQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmtleWRvd247Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmtleXByZXNzOwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25rZXl1cDsKLSAgICAgICAg
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubG9hZDsKLSAgICAgICAg
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2Vkb3duOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNl
b3V0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25t
b3VzZW92ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbm1vdXNldXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbm1vdXNld2hlZWw7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnNjcm9sbDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9uc2VsZWN0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25zdWJtaXQ7Ci0KLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY2FucGxheTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY2FucGxheXRocm91Z2g7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdl
OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25l
bXB0aWVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25lbmRlZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExp
c3RlbmVyIG9ubG9hZGVkZGF0YTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRhdGE7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRzdGFydDsKLSAgICAgICAgLy8gYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ucGF1c2U7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnBsYXk7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnBsYXlpbmc7Ci0g
ICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnByb2dy
ZXNzOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25yYXRlY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWVrZWQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlZWtpbmc7Ci0gICAgICAgIC8vIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNob3c7Ci0gICAgICAgIC8vIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnN0YWxsZWQ7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnN1c3BlbmQ7Ci0g
ICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnRpbWV1
cGRhdGU7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbnZvbHVtZWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9ud2FpdGluZzsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmJsdXI7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmNoYW5nZTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uY2xpY2s7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNvbnRleHRtZW51OworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kYmxjbGljazsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZzsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKKyAgICAgICAgW05vdEVu
dW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2VudGVyOworICAgICAgICBb
Tm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7CisgICAg
ICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOwor
ICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnc3Rh
cnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRy
b3A7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVy
cm9yOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25m
b2N1czsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
aW5wdXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmludmFsaWQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmtleWRvd247CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmtleXByZXNzOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25rZXl1cDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ubG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ubW91c2Vkb3duOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3V0OworICAgICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW92ZXI7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7CisgICAgICAgIFtOb3RFbnVt
ZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7CisgICAgICAgIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNjcm9sbDsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdWJtaXQ7CisKKyAg
ICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY2FucGxh
eTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
Y2FucGxheXRocm91Z2g7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmR1cmF0aW9uY2hhbmdlOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbXB0aWVkOworICAgICAgICAvLyBbTm90RW51bWVy
YWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lbmRlZDsKKyAgICAgICAgLy8gW05vdEVu
dW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVkZGF0YTsKKyAgICAgICAg
Ly8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVkbWV0YWRh
dGE7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmxvYWRzdGFydDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ucGF1c2U7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnBsYXk7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnBsYXlpbmc7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnByb2dyZXNzOworICAgICAgICAvLyBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yYXRlY2hhbmdlOworICAgICAgICAvLyBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWVr
ZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bnNlZWtpbmc7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnNob3c7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnN0YWxsZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnN1c3BlbmQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRpbWV1cGRhdGU7CisgICAgICAgIC8vIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnZvbHVtZWNoYW5nZTsKKyAgICAgICAgLy8g
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2FpdGluZzsKIAogICAg
ICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmN1dDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlY29weTsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY29weTsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlcGFzdGU7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnBhc3RlOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25yZXNldDsKLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2VhcmNoOwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKLSAg
ICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxW
OEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaHN0YXJ0OwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxl
ZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRp
bWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50
TGlzdGVuZXIgb250b3VjaGNhbmNlbDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
LCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxz
Y3JlZW5jaGFuZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9u
YWw9RlVMTFNDUkVFTl9BUEldIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVuZXJyb3I7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJlZm9y
ZWN1dDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
Y3V0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25i
ZWZvcmVjb3B5OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25jb3B5OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25iZWZvcmVwYXN0ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ucGFzdGU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnJlc2V0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25zZWFyY2g7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0OworICAgICAgICBbTm90RW51bWVyYWJsZSxDb25k
aXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnRvdWNoc3RhcnQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFs
PVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9udG91Y2htb3ZlOworICAgICAgICBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VDSF9F
VkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNo
ZW5kOworICAgICAgICBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhF
bmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOwor
ICAgICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEldIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZTsKKyAgICAgICAgW05v
dEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5lcnJvcjsKICNlbmRpZgogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbnRpdHkuaWRsCmluZGV4IGI5ZWM0MDZiOTc0N2UyMmQ0ZDcwZmJiM2M2NjkxOTY3
ZGIxZGRkNmUuLmNlMzMxZmNjM2RjZjkxYjQyMWYxNzllNjk3Yzk2Yzk5MWZiMDBhZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbnRpdHkuaWRsCkBAIC0yMCw5ICsyMCw5IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBp
bnRlcmZhY2UgRW50aXR5IDogTm9kZSB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgcHVibGljSWQ7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01T
dHJpbmcgc3lzdGVtSWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgbm90YXRpb25OYW1lOworICAgICAgICBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHB1YmxpY0lkOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN5c3RlbUlkOworICAgICAgICBbVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5vdGF0aW9u
TmFtZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vu
dGl0eVJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlk
bAppbmRleCBmNjUyZDlhZGY3NjlmYmJmOGRlMDFhNWUwZDc4Y2YyODZlNWEyOWM5Li5hYmI3NTU3
ZmVhOThkMDdmY2I1MjdkOGIzMDk0ZWY2OTkzZTllNmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50
aXR5UmVmZXJlbmNlLmlkbApAQCAtMjIsNCArMjIsNCBAQCBtb2R1bGUgY29yZSB7CiAgICAgaW50
ZXJmYWNlIEVudGl0eVJlZmVyZW5jZSA6IE5vZGUgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXJyb3JFdmVudC5pZGwKaW5kZXggMmEwYzJjNTE0NTU1ZTE4MDdkMWQzZmU5YTI5ZWY1M2Zh
NjU5YWNkNi4uNDU0ZDBkZWQwODU5Mjg5YmU0MjQyNWRlYzE5M2FlODI4YWY5MTgwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmlkbApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIG1vZHVsZSBldmVu
dHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMs
CiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIEVycm9yRXZlbnQgOiBF
dmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIERPTVN0cmluZyBtZXNzYWdlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgZmlsZW5hbWU7Ci0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHVu
c2lnbmVkIGxvbmcgbGluZW5vOworICAgIF0gaW50ZXJmYWNlIEVycm9yRXZlbnQgOiBFdmVudCB7
CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBtZXNzYWdlOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3Ry
dWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZmlsZW5hbWU7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbGluZW5vOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCBhYjAz
OWQwN2Y0M2RhNjdhOTI4NTI5ZTc2NmI5OGEwZDJhOTM1OTdhLi5iMTE4OGE5ZTU5MDkzMjQyNzI2
ZWNlZTNlOTM2NTA3YzkwMGJmZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTIxLDEyICsyMSwx
MiBAQAogbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAy
OgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAg
ICAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50LAogICAgICAgICBKU05vU3RhdGljVGFibGVz
LAogICAgICAgICBPYmpDUG9seW1vcnBoaWMKLSAgICBdIEV2ZW50IHsKKyAgICBdIGludGVyZmFj
ZSBFdmVudCB7CiAKICAgICAgICAgLy8gRE9NIFBoYXNlVHlwZQogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT05FICAgICAgICAgICAgICAgID0gMDsKQEAgLTU4LDE1ICs1OCwxNSBAQCBt
b2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0ICAg
ICAgdGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQgICAgICBj
dXJyZW50VGFyZ2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQg
ICBldmVudFBoYXNlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSBib29sZWFuIGJ1YmJsZXM7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIGJvb2xlYW4gY2FuY2VsYWJsZTsK
KyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBidWJibGVzOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0
b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNhbmNlbGFibGU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAgICAgIHRpbWVTdGFtcDsKIAogICAgICAgICB2b2lk
ICAgICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgIHZvaWQgICAgICAgICAg
ICAgICBwcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzXSB2b2lkIGluaXRFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgZXZlbnRUeXBlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGVBcmcs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbmNlbGFibGVBcmcpOworICAgICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGluaXRFdmVudChbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZXZlbnRUeXBlQXJnLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9v
bGVhbiBjYW5CdWJibGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcp
OwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAzIEFkZGl0aW9ucy4KICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gZGVmYXVsdFByZXZlbnRlZDsKQEAgLTc4LDcgKzc4LDcgQEAgbW9k
dWxlIGV2ZW50cyB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
IGNhbmNlbEJ1YmJsZTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFO
R1VBR0VfSkFWQVNDUklQVAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gQ2xp
cGJvYXJkICAgICAgICBjbGlwYm9hcmREYXRhOworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBh
dHRyaWJ1dGUgQ2xpcGJvYXJkICAgICAgICBjbGlwYm9hcmREYXRhOwogI2VuZGlmCiAKICNpZiBk
ZWZpbmVkKExBTkdVQUdFX0NQUCkgJiYgTEFOR1VBR0VfQ1BQCkBAIC04OSw0ICs4OSw0IEBAIG1v
ZHVsZSBldmVudHMgewogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRFeGNl
cHRpb24uaWRsCmluZGV4IDlkMTA1Y2JmY2VkNWEzZjRmZTZlZWYzYzNiNDQzNjY0NmM2MjhhMjcu
LmY2N2VjMGYyM2FmZDhhYWFmOTQwNzFkODk5Nzc3M2M0MGEwY2JjYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50RXhjZXB0aW9uLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiBtb2R1bGUgZXZlbnRz
IHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgZXhjZXB0aW9uIFsK
KyAgICBbCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIERvTm90Q2hlY2tDb25z
dGFudHMKLSAgICBdIEV2ZW50RXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBFdmVudEV4Y2Vw
dGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29k
ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKQEAg
LTQ4LDQgKzQ4LDQgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IERJU1BBVENIX1JFUVVFU1RfRVJSID0gMTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50TGlzdGVuZXIuaWRsCmluZGV4IDRlODNiNDQwY2E5YWI3N2I3OTVlOWRiMmIxMjk0
YmUxMzFlNWI3NzIuLjlkZjc4NDJiNjIyN2VlNDQyYjVhYWUwN2ZkOTIyZmZlYjFkMmNkMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwKQEAgLTIxLDEzICsyMSwxMyBAQAogbW9k
dWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBPYmpD
UHJvdG9jb2wsCiAgICAgICAgIENQUFB1cmVJbnRlcmZhY2UsCiAgICAgICAgIE9taXRDb25zdHJ1
Y3RvcgotICAgIF0gRXZlbnRMaXN0ZW5lciB7CisgICAgXSBpbnRlcmZhY2UgRXZlbnRMaXN0ZW5l
ciB7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBoYW5kbGVFdmVudChpbiBFdmVudCBldnQp
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbAppbmRleCBiZDk4
ZDA0NDg0M2E5MTgzYjIxNzY1ZGIzMmViZGE3OWFjMzYyMTM2Li40NmRmOTgzNGU1Yjg4NTQ2NDEz
Nzg3MGJkMTM0NDQ2MTZjZTM2MjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5pZGwKQEAg
LTIxLDIxICsyMSwyMSBAQAogbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBPYmpDUHJvdG9j
b2wsCiAgICAgICAgIENQUFB1cmVJbnRlcmZhY2UsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwK
ICAgICAgICAgSlNDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBKU0N1c3RvbVRvTmF0aXZlT2Jq
ZWN0Ci0gICAgXSBFdmVudFRhcmdldCB7CisgICAgXSBpbnRlcmZhY2UgRXZlbnRUYXJnZXQgewog
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGFkZEV2ZW50TGlzdGVu
ZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVu
dExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9v
bGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50
IGV2ZW50KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmlkbAppbmRleCA2YzgwYTk1N2Y2
YTljMTcxOGYzZWY4YjIyNDMxYzQwMGJkY2EyNDYzLi5hMGI1ODE0MTI4ODdkY2RiOGE5Y2RhMDFk
Zjg4OWE5YTQ1NmRkNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5n
ZUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vSGFzaENoYW5nZUV2ZW50LmlkbApA
QCAtMjAsMTYgKzIwLDE2IEBACiBtb2R1bGUgZXZlbnRzIHsKIAogICAgIC8vIEludHJvZHVjZWQg
aW4gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2UvaGlzdG9yeS5odG1sI2V2ZW50LWhhc2hjaGFuZ2UKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudAotICAgIF0gSGFzaENoYW5nZUV2
ZW50IDogRXZlbnQgewotICAgICAgICB2b2lkIGluaXRIYXNoQ2hhbmdlRXZlbnQoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVh
biBjYW5CdWJibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyBvbGRVUkwsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5ld1VSTCk7IAotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJp
bmcgb2xkVVJMOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yXSBET01TdHJpbmcgbmV3VVJMOworICAgIF0gaW50ZXJmYWNlIEhhc2hDaGFu
Z2VFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgdm9pZCBpbml0SGFzaENoYW5nZUV2ZW50KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJv
b2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgb2xkVVJMLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuZXdVUkwpOyAKKyAgICAg
ICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG9sZFVSTDsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5ld1VSTDsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCmluZGV4IDJjMmI3YmExMTFlNzAxMzJhMTJhYjg0
YTIzOTQyNGIyZTU1MmRjOTkuLjc4MzJmMzQxYTUxMGIzYzE0YTIyNDZhNmJjZDBjMmFlODI2MWFk
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKQEAgLTQwLDM5ICs0MCwzOSBA
QCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICAgYWx0R3JhcGhLZXk7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCAhTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICBib29sZWFuIGdldE1vZGlmaWVyU3RhdGUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGtleUlkZW50aWZpZXJB
cmcpOworICAgICAgICBib29sZWFuIGdldE1vZGlmaWVyU3RhdGUoW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGtleUlkZW50aWZpZXJBcmcpOwogI2VuZGlmCiAKICAg
ICAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24gaW4gdGhlIERP
TSBzcGVjLgotICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2ZW50KGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1YmJs
ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01XaW5kb3cgdmlldywg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGtleUlkZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBr
ZXlMb2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGN0cmxLZXksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBhbHRL
ZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gYm9vbGVhbiBzaGlmdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIG1ldGFLZXksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gYm9vbGVhbiBhbHRHcmFwaEtleSk7CisgICAgICAgIHZvaWQgaW5pdEtleWJvYXJkRXZl
bnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVdpbmRvdyB2aWV3LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcga2V5SWRlbnRpZmllciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiB1bnNpZ25lZCBsb25nIGtleUxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY3RybEtleSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBib29sZWFuIGFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHNoaWZ0S2V5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGJvb2xlYW4gbWV0YUtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGFsdEdyYXBoS2V5KTsKIAogICAgICAg
ICAvLyBXZWJLaXQgRXh0ZW5zaW9ucwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
IHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
ICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAg
ICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKLSAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRF
dmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gYm9vbGVhbiBjYW5CdWJibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJsZSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NV2luZG93IHZpZXcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBrZXlJZGVudGlmaWVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIHVuc2lnbmVkIGxvbmcga2V5TG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjdHJsS2V5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gYWx0S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2hpZnRLZXksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gYm9vbGVhbiBtZXRhS2V5KTsKKyAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRFdmVudChbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9v
bGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
V2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBrZXlJZGVudGlmaWVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVu
c2lnbmVkIGxvbmcga2V5TG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjdHJsS2V5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGJvb2xlYW4gYWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gc2hpZnRLZXksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVh
biBtZXRhS2V5KTsKICNlbmRpZgogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZUNoYW5uZWwuaWRsCmluZGV4IGQyMWViMTE0MjFiMDBiYzBlN2ZmZjg1YWJmMzYwMGJiYjY1
N2I0M2MuLmNjM2Y4OGI4OWViMWNmODExZWJmYjU0M2E3MTNlMDE0ZmM4NzU1OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbApAQCAtMjYsMTcgKzI2LDE3IEBACiAKIG1vZHVs
ZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9y
LAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAgICBWOEN1
c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcwotICAgIF0gTWVzc2FnZUNoYW5uZWwgeworICAgIF0gaW50ZXJmYWNl
IE1lc3NhZ2VDaGFubmVsIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBv
cnQgcG9ydDE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBwb3J0MjsK
IAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2Fn
ZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRsCmluZGV4IGM4
MzU2ZWQ2MGMxMTJiMzVjZmYzMDBlYjNhNDBmMjUyZWZjYWFjZjguLjM5YjA3MzQ5MWU0NTFlNTBl
MWJhNzdjZjA3OTU0NzJiNjhhMDg2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
ZXNzYWdlRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRs
CkBAIC0yNywzNCArMjcsMzQgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ29uc3RydWN0b3JU
ZW1wbGF0ZT1FdmVudAotICAgIF0gTWVzc2FnZUV2ZW50IDogRXZlbnQgewotICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcg
b3JpZ2luOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVdpbmRvdyBzb3VyY2U7Cisg
ICAgXSBpbnRlcmZhY2UgTWVzc2FnZUV2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6
ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgb3JpZ2lu
OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbGFzdEV2ZW50SWQ7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVdpbmRvdyBzb3VyY2U7CiAjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IsIENhY2hl
ZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVyXSBET01PYmplY3QgZGF0YTsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvciwgQ3VzdG9tR2V0dGVy
XSBBcnJheSBwb3J0czsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yLCBD
YWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTU9iamVj
dCBkYXRhOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IsIEN1c3RvbUdl
dHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5IHBvcnRzOwogCi0gICAgICAgIFtDdXN0b21d
IHZvaWQgaW5pdE1lc3NhZ2VFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdHlwZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1YmJsZUFyZywg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbmNlbGFibGVBcmcsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NT2JqZWN0IGRhdGFBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG9yaWdpbkFyZywg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbGFzdEV2ZW50SWRBcmcsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NV2luZG93IHNvdXJjZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBcnJheSBtZXNzYWdlUG9y
dHMpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIGluaXRNZXNzYWdlRXZlbnQoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGVBcmcsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
Ym9vbGVhbiBjYW5CdWJibGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxl
QXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTU9iamVjdCBkYXRhQXJnLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyBvcmlnaW5BcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGxhc3RFdmVu
dElkQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVdpbmRvdyBzb3VyY2VBcmcsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gQXJyYXkgbWVzc2FnZVBvcnRzKTsKIAotICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtp
dEluaXRNZXNzYWdlRXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHR5cGVBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1YmJsZUFyZywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTU9iamVjdCBkYXRhQXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG9yaWdpbkFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBsYXN0RXZlbnRJ
ZEFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyBzb3VyY2VBcmcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBBcnJheSB0cmFuc2ZlcmFibGVzKTsKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCB3ZWJraXRJbml0TWVzc2FnZUV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyB0eXBlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5CdWJi
bGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBET01PYmplY3QgZGF0YUFyZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyBvcmlnaW5BcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbGFz
dEV2ZW50SWRBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgc291cmNlQXJnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gQXJyYXkgdHJhbnNmZXJhYmxlcyk7CiAjZWxzZQogICAgICAg
ICAvLyBDb2RlIGdlbmVyYXRvciBmb3IgT2JqQyBiaW5kaW5ncyBkb2VzIG5vdCBzdXBwb3J0IGN1
c3RvbSBiaW5kaW5ncywgdGh1cyB0aGVyZSBpcyBubyBnb29kIHdheSB0bwogICAgICAgICAvLyBy
ZXR1cm4gYSB2YXJpYW50IHZhbHVlLiBBcyB3b3JrYXJvdW5kLCBleHBvc2UgdGhlIGRhdGEgYXR0
cmlidXRlIGFzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KQEAgLTYzLDE2ICs2MywxNiBAQCBtb2R1
bGUgZXZlbnRzIHsKICAgICAgICAgLy8gVGhlcmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4g
YXJyYXkgdmlhIHRoZSBPYmpDIGJpbmRpbmdzLCBzbyBmb3Igbm93IGp1c3QgZXhwb3NlIGEgc2lu
Z2xlIHBvcnQuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdlUG9ydCBtZXNzYWdl
UG9ydDsKIAotICAgICAgICB2b2lkIGluaXRNZXNzYWdlRXZlbnQoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJi
bGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBkYXRhQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBvcmlnaW5BcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIGxhc3RFdmVudElkQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyBzb3VyY2VBcmcsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gTWVzc2FnZVBvcnQgbWVzc2FnZVBvcnQpOworICAgICAgICB2b2lkIGluaXRNZXNzYWdl
RXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGVBcmcs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxl
QXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhQXJnLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBvcmlnaW5BcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGxhc3RFdmVudElkQXJnLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVdpbmRvdyBzb3VyY2VBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTWVzc2FnZVBvcnQgbWVzc2FnZVBvcnQpOwog
I2VuZGlmCiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01lc3NhZ2VQb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGwKaW5k
ZXggZjMxOGY3OTg3NDk5MzAxOTIwODgwMmE4OWIyMDIyNmNmOWY4ZTVjZS4uYzJlZmVhYjE0Yjgx
NTZlNzI2Nzc5ODY0YjMwNWJhOTExZGIyNDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL01lc3NhZ2VQb3J0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQu
aWRsCkBAIC0yNywxOSArMjcsMTkgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBNZXNzYWdlUG9y
dCB7CisgICAgXSBpbnRlcmZhY2UgTWVzc2FnZVBvcnQgewogLy8gV2UgbmVlZCB0byBoYXZlIHNv
bWV0aGluZyBhcyBhbiBPYmpDIGJpbmRpbmcsIGJlY2F1c2UgTWVzc2FnZVBvcnQgaXMgdXNlZCBp
biBNZXNzYWdlRXZlbnQsIHdoaWNoIGFscmVhZHkgaGFzIG9uZSwKIC8vIGJ1dCB3ZSBkb24ndCB3
YW50IHRvIGFjdHVhbGx5IGV4cG9zZSB0aGUgQVBJIHdoaWxlIGl0IGlzIGluIGZsdXguCiAjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAg
ICAgIFtDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5nIG1lc3NhZ2UsIGluIFtP
cHRpb25hbF0gQXJyYXkgbWVzc2FnZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHBvc3RN
ZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIEFycmF5IG1lc3NhZ2VQ
b3J0cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9t
XSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBbT3B0aW9u
YWxdIEFycmF5IHRyYW5zZmVyKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNz
YWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIEFycmF5IHRyYW5zZmVyKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc3RhcnQoKTsK
ICAgICAgICAgdm9pZCBjbG9zZSgpOwpAQCAtNTAsMTMgKzUwLDEzIEBAIG1vZHVsZSBldmVudHMg
ewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVu
dExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVu
dCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogI2VuZGlmCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmlkbAppbmRleCBjMWVmYmI0NjZiYTcy
NjNmNTE4YzE4MmFlYTkwMzZhY2YzMWVhMmQzLi45Zjk0ODZiOGU2Zjg5OWE5ZjYxMjFkMmRjOWI2
NDhlYTY2YTExM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaWRsCkBAIC0yNSw4ICsyNSw4
IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAg
ICAgICAgICBzY3JlZW5ZOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgICBjbGllbnRYOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAg
ICBjbGllbnRZOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBPSU5U
RVJfTE9DSywgVjhFbmFibGVkQXRSdW50aW1lPXBvaW50ZXJMb2NrXSBsb25nIHdlYmtpdE1vdmVt
ZW50WDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QT0lOVEVSX0xP
Q0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gbG9uZyB3ZWJraXRNb3ZlbWVudFk7
CisgICAgICAgIFtDb25kaXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1w
b2ludGVyTG9ja10gcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgd2Via2l0TW92ZW1lbnRYOworICAg
ICAgICBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9cG9pbnRl
ckxvY2tdIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdlYmtpdE1vdmVtZW50WTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgY3RybEtleTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgc2hpZnRLZXk7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGFsdEtleTsKQEAgLTM0LDIxICszNCwyMSBA
QCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0ICAgYnV0dG9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRXZlbnRUYXJnZXQgICAg
ICByZWxhdGVkVGFyZ2V0OwogICAgICAgICAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVyc10gdm9pZCBpbml0TW91c2VFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgdHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJi
bGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJsZSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NV2luZG93IHZpZXcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgZGV0YWls
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHNjcmVlblgsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGxvbmcgc2NyZWVuWSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBjbGllbnRYLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBsb25nIGNsaWVudFksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
Y3RybEtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBhbHRLZXksIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gc2hpZnRLZXksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
bWV0YUtleSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgYnV0dG9uLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBFdmVudFRhcmdldCByZWxhdGVkVGFyZ2V0KTsKKyAgICAgICAgW09i
akNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBpbml0TW91c2VFdmVudChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gYm9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2Vs
YWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGxvbmcgZGV0YWlsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblgsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc2NyZWVuWSwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9u
ZyBjbGllbnRYLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGNsaWVudFksIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGJvb2xlYW4gY3RybEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBh
bHRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gc2hpZnRLZXksIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGJvb2xlYW4gbWV0YUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
c2hvcnQgYnV0dG9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBFdmVudFRhcmdldCByZWxhdGVkVGFy
Z2V0KTsKIAogICAgICAgICAvLyBleHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nICAgICAgICAgICAgIG9mZnNldFg7CkBAIC02Myw0ICs2Myw0IEBAIG1vZHVsZSBldmVu
dHMgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNh
bGxiYWNrLmlkbAppbmRleCAxNjM4MTcxNGM4MDllYTdjYTQ3ODRjNmIzYjAzMTFiODk3OWY4MTc1
Li5lNjk3YzhlZjg5NmY0ODczMzUwYzAyYTYxN2YwZmI3MmU3MWYxZTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBt
b2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PU1VVEFUSU9OX09CU0VSVkVSUywKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE11dGF0aW9uQ2Fs
bGJhY2sgeworICAgIF0gaW50ZXJmYWNlIE11dGF0aW9uQ2FsbGJhY2sgewogICAgICAgICBbQ3Vz
dG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGluIE11dGF0aW9uUmVjb3JkQXJyYXkgbXV0YXRpb25z
LCBpbiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIG9ic2VydmVyKTsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbAppbmRleCAyNzY1ZGM5YzJhODc3OGMyYzJiZjMz
NjU5YjJlMzYzY2U4MjhhYjcxLi4yYTA2M2QwZTc2ZTYxZjZmYzk1OTEzMDk3N2Q1NDllZjRlNWVm
YzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaWRsCkBAIC0zMywxNSArMzMsMTUg
QEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICBhdHRyTmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IGF0dHJDaGFuZ2U7CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9p
ZCBpbml0TXV0YXRpb25FdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgdHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGUsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJsZSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gTm9kZSByZWxhdGVkTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHByZXZWYWx1ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5ld1ZhbHVl
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgYXR0ck5hbWUsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IGF0dHJDaGFuZ2UpOworICAgICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGluaXRNdXRhdGlvbkV2ZW50KFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBj
YW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIHJlbGF0ZWROb2RlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJldlZhbHVlLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgbmV3VmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBhdHRyTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgc2hvcnQgYXR0
ckNoYW5nZSk7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL011dGF0aW9uUmVjb3JkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29y
ZC5pZGwKaW5kZXggYTc4ODNjNTBmMGUwMGNhZWE4YzkzYjM4ZGViMTQyZGNjMTc3MWMwMy4uYmNl
MGI0MGU5NDczYTRlZDQ3NTIzNzc0Mjk0YjBkYjNjMzUzZWRiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TXV0YXRpb25SZWNvcmQuaWRsCkBAIC0yOSw5ICsyOSw5IEBACiAgKi8KIAogbW9kdWxlIGNvcmUg
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9P
QlNFUlZFUlMKLSAgICBdIE11dGF0aW9uUmVjb3JkIHsKKyAgICBdIGludGVyZmFjZSBNdXRhdGlv
blJlY29yZCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgdGFyZ2V0OwogCkBAIC00MSw4ICs0MSw4IEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgbmV4dFNpYmxp
bmc7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdHRyaWJ1dGVOYW1l
OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gRE9NU3RyaW5nIGF0dHJpYnV0ZU5hbWVzcGFjZTsKKyAgICAgICAgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhdHRyaWJ1
dGVOYW1lc3BhY2U7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBvbGRWYWx1ZTsKKyAgICAgICAgW1RyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRW
YWx1ZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1l
ZE5vZGVNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwKaW5kZXgg
N2VlNmI3NTY3N2FhMzI4ZGUxYjEzNGNmNDBjNTVkMjM1Y2FiZGNkZS4uMTFlMTk2ZDE1YjAyNGI1
YWQzZDQyNTk5ZDgwYzA3ZDVjZWMxOGJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05hbWVkTm9kZU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5p
ZGwKQEAgLTIwLDQwICsyMCw0MCBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCiAg
ICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAg
ICAgICBOYW1lZEdldHRlcgotICAgIF0gTmFtZWROb2RlTWFwIHsKKyAgICBdIGludGVyZmFjZSBO
YW1lZE5vZGVNYXAgewogCi0gICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgTm9kZSBnZXROYW1l
ZEl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWUpOwog
Ci0gICAgICAgIE5vZGUgc2V0TmFtZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIE5vZGUgbm9kZSkKKyAgICAgICAgTm9kZSBzZXROYW1lZEl0ZW0oW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBub2RlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKLSAgICAgICAgTm9kZSByZW1vdmVOYW1lZEl0ZW0oaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIE5vZGUgcmVtb3ZlTmFtZWRJ
dGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgTm9kZSBpdGVtKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAg
ICBOb2RlIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgICAgICAgIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7CiAKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgog
Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGUgZ2V0TmFtZWRJdGVt
TlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
bG9jYWxOYW1lKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlIGdl
dE5hbWVkSXRlbU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
RE9NU3RyaW5nIGxvY2FsTmFtZSkKICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgaW1wbGVtZW50
YXRpb24gZG9lcyB0YWtlIGFuIGV4Y2VwdGlvbmNvZGUgcGFyYW1ldGVyLgogICAgICAgICAgICAg
LypyYWlzZXMoRE9NRXhjZXB0aW9uKSovOwogCi0gICAgICAgIE5vZGUgc2V0TmFtZWRJdGVtTlMo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBub2RlKQorICAgICAgICBOb2Rl
IHNldE5hbWVkSXRlbU5TKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgbm9k
ZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGUgcmVtb3ZlTmFtZWRJdGVtTlMoaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKQor
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlIHJlbW92ZU5hbWVkSXRl
bU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIGxvY2FsTmFtZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAppbmRleCBmYzRhODgyYWJjYzQ2NThmZTliYWUyZjUx
NTViM2JlOTY5MmUxN2E3Li41MDBkZDhiYTczZTQ1ZGE3ZjMwYTA1ZjUzNTEyYzZjNDI2NTdiMGVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaWRsCkBAIC0yMCw3ICsyMCw3IEBACiAKIG1vZHVsZSBjb3JlIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0N1c3RvbUhlYWRlciwKICAgICAgICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTQ3VzdG9tUHVzaEV2ZW50SGFuZGxlclNj
b3BlLApAQCAtMzIsNyArMzIsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEpTSW5saW5lR2V0
T3duUHJvcGVydHlTbG90LAogICAgICAgICBPYmpDUG9seW1vcnBoaWMsCiAgICAgICAgIFY4RGVw
ZW5kZW50TGlmZXRpbWUKLSAgICBdIE5vZGUKKyAgICBdIGludGVyZmFjZSBOb2RlCiAjaWYgZGVm
aW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAg
ICAgOiBPYmplY3QsIEV2ZW50VGFyZ2V0CiAjZW5kaWYgLyogZGVmaW5lZChMQU5HVUFHRV9PQkpF
Q1RJVkVfQykgKi8KQEAgLTUxLDExICs1MSwxMSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAgICAgICAgID0g
MTE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9UQVRJT05fTk9ERSAgICAg
ICAgICAgICAgICAgID0gMTI7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgbm9kZU5hbWU7CisgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5vZGVOYW1lOwogCiAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0
aGUgc3BlYyBzYXlzIHRoaXMgY2FuIGFsc28gcmFpc2Ugb24gcmV0cmlldmFsLgotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICBub2RlVmFsdWUKLSAgICAgICAgICAg
ICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbm9kZVZhbHVlCisgICAgICAgICAgICAgICAgICAg
ICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgc2hvcnQgICBub2RlVHlwZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGUgICAgICAgICAgICAgcGFyZW50Tm9kZTsKQEAgLTY3LDQ2ICs2Nyw0NiBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXAgICAgIGF0dHJpYnV0
ZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCAgICAgICAgIG93bmVyRG9j
dW1lbnQ7CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgQ3VzdG9tXSBO
b2RlIGluc2VydEJlZm9yZShpbiBbQ3VzdG9tUmV0dXJuXSBOb2RlIG5ld0NoaWxkLAorICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBDdXN0b21dIE5vZGUgaW5zZXJ0QmVmb3Jl
KFtDdXN0b21SZXR1cm5dIGluIE5vZGUgbmV3Q2hpbGQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gTm9kZSByZWZDaGls
ZCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbT2JqQ0xlZ2Fj
eVVubmFtZWRQYXJhbWV0ZXJzLCBDdXN0b21dIE5vZGUgcmVwbGFjZUNoaWxkKGluIE5vZGUgbmV3
Q2hpbGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW0N1c3RvbVJldHVybl0gTm9kZSBvbGRDaGlsZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
Q3VzdG9tUmV0dXJuXSBpbiBOb2RlIG9sZENoaWxkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIE5vZGUgICAgICAgICAgICAgICByZW1vdmVDaGls
ZChpbiBbQ3VzdG9tUmV0dXJuXSBOb2RlIG9sZENoaWxkKQorICAgICAgICBbQ3VzdG9tXSBOb2Rl
ICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGQoW0N1c3RvbVJldHVybl0gaW4gTm9kZSBvbGRDaGls
ZCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSBO
b2RlICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQoaW4gW0N1c3RvbVJldHVybl0gTm9kZSBuZXdD
aGlsZCkKKyAgICAgICAgW0N1c3RvbV0gTm9kZSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkKFtD
dXN0b21SZXR1cm5dIGluIE5vZGUgbmV3Q2hpbGQpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICBib29sZWFuICAgICAgICAgICAgaGFzQ2hpbGROb2RlcygpOwot
ICAgICAgICBOb2RlICAgICAgICAgICAgICAgY2xvbmVOb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGJvb2xlYW4gZGVlcCk7CisgICAgICAgIE5vZGUgICAgICAgICAgICAgICBj
bG9uZU5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBkZWVwKTsK
ICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIG5vcm1hbGl6ZSgpOwogCiAgICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVyc10gYm9vbGVhbiBpc1N1cHBvcnRlZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgZmVhdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgdmVyc2lvbik7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIGJvb2xlYW4gaXNTdXBwb3J0ZWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIGZlYXR1cmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHZlcnNpb24pOwogCi0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAg
IG5hbWVzcGFjZVVSSTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyAgICAg
ICAgcHJlZml4Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBET01TdHJpbmcgICAgICAgIGxvY2FsTmFtZTsKKyAgICAgICAgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bmFtZXNwYWNlVVJJOworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAg
ICBwcmVmaXgKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBsb2NhbE5hbWU7CiAKICAgICAgICAgYm9vbGVhbiAgICAgICAg
ICAgIGhhc0F0dHJpYnV0ZXMoKTsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZl
bCAzOgogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgYmFzZVVSSTsKKyAgICAgICAgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBi
YXNlVVJJOwogCiAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0aGUgc3BlYyBzYXlzIHRoaXMg
Y2FuIGFsc28gcmFpc2Ugb24gcmV0cmlldmFsLgotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgdGV4dENvbnRlbnQKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01F
eGNlcHRpb24pOwogCi0gICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc1NhbWVOb2RlKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgb3RoZXIpOwotICAgICAgICBib29sZWFu
ICAgICAgICAgICAgaXNFcXVhbE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Tm9kZSBvdGhlcik7Ci0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyAgICAgICAgICBsb29rdXBQcmVmaXgoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKLSAg
ICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzRGVmYXVsdE5hbWVzcGFjZShpbiBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1l
c3BhY2VVUkkpOwotICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01T
dHJpbmcgICAgICAgICAgbG9va3VwTmFtZXNwYWNlVVJJKGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHByZWZpeCk7CisgICAg
ICAgIGJvb2xlYW4gICAgICAgICAgICBpc1NhbWVOb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIE5vZGUgb3RoZXIpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgaXNFcXVh
bE5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBvdGhlcik7CisgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgICBs
b29rdXBQcmVmaXgoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgYm9vbGVhbiAgICAg
ICAgICAgIGlzRGVmYXVsdE5hbWVzcGFjZShbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkkpOworICAgICAg
ICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgbG9v
a3VwTmFtZXNwYWNlVVJJKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHByZWZpeCk7CiAKICAgICAgICAgLy8gRG9jdW1lbnRQ
b3NpdGlvbgogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERPQ1VNRU5UX1BPU0lU
SU9OX0RJU0NPTk5FQ1RFRCA9IDB4MDE7CkBAIC0xMTYsMTAgKzExNiwxMCBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1FTlRfUE9TSVRJT05f
Q09OVEFJTkVEX0JZID0gMHgxMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBE
T0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQyA9IDB4MjA7CiAKLSAgICAg
ICAgdW5zaWduZWQgc2hvcnQgICAgIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgb3RoZXIpOworICAgICAgICB1bnNpZ25lZCBzaG9y
dCAgICAgY29tcGFyZURvY3VtZW50UG9zaXRpb24oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gTm9kZSBvdGhlcik7CiAKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET000Ci0gICAg
ICAgIGJvb2xlYW4gY29udGFpbnMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9k
ZSBvdGhlcik7CisgICAgICAgIGJvb2xlYW4gY29udGFpbnMoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gTm9kZSBvdGhlcik7CiAKICNpZiAwCiAgICAgICAgIERPTU9iamVjdCAgICAg
ICAgICBnZXRGZWF0dXJlKGluIERPTVN0cmluZyBmZWF0dXJlLCAKQEAgLTE0NCwxMCArMTQ0LDEw
IEBAIG1vZHVsZSBjb3JlIHsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwg
IUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBE
T01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1
cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAg
ICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogI2VuZGlmCkBAIC0xNjYsNCArMTY2LDQg
QEAgbW9kdWxlIGNvcmUgewogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVy
LmlkbAppbmRleCA1Y2FhNWZmMDNiZWU0OTVjOTJlZWFkNjZmZDU0MDQzYTA3YThhNTVmLi5lY2Fl
YTdhNzkxYjAzNzhhZWRhYjMwMjFiYWI2NWI0NDdiOTA1MjBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVG
aWx0ZXIuaWRsCkBAIC0yMSwxMiArMjEsMTIgQEAKIG1vZHVsZSB0cmF2ZXJzYWwgewogCiAgICAg
Ly8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTQ3VzdG9tVG9OYXRpdmVPYmpl
Y3QsCiAgICAgICAgIE9iakNQcm90b2NvbCwKICAgICAgICAgQ1BQUHVyZUludGVyZmFjZQotICAg
IF0gTm9kZUZpbHRlciB7CisgICAgXSBpbnRlcmZhY2UgTm9kZUZpbHRlciB7CiAgICAgICAgIC8v
IENvbnN0YW50cyByZXR1cm5lZCBieSBhY2NlcHROb2RlCiAgICAgICAgIGNvbnN0IHNob3J0ICAg
ICAgICAgICAgICAgRklMVEVSX0FDQ0VQVCAgICAgICAgICAgICAgICAgID0gMTsKICAgICAgICAg
Y29uc3Qgc2hvcnQgICAgICAgICAgICAgICBGSUxURVJfUkVKRUNUICAgICAgICAgICAgICAgICAg
PSAyOwpAQCAtNDcsOCArNDcsOCBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgbG9uZyAgICAgICBTSE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgPSAweDAw
MDAwNDAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfTk9UQVRJT04g
ICAgICAgICAgICAgICAgICA9IDB4MDAwMDA4MDA7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlw
dFN0YXRlXSBzaG9ydCBhY2NlcHROb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IE5vZGUgbik7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gc2hvcnQgYWNjZXB0Tm9k
ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG4pOwogCiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKaW5kZXggNWIzZjI4OGZiYTdhY2Nj
MTlkY2M3ZWI1YjcyNjZkYzU3Y2MwZDIzMi4uZTZlZGM4N2E4MjcxNWZhZmNlMGMyZDA2ZWU2ZDQ3
ZGYzMzIwNTI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKQEAgLTIxLDkgKzIx
LDkgQEAKIG1vZHVsZSB0cmF2ZXJzYWwgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2
ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rp
b24KLSAgICBdIE5vZGVJdGVyYXRvciB7CisgICAgXSBpbnRlcmZhY2UgTm9kZUl0ZXJhdG9yIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdzsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGVGaWx0ZXIgZmlsdGVyOwpAQCAtMzgsNCArMzgsNCBAQCBtb2R1bGUgdHJhdmVy
c2FsIHsKICAgICAgICAgdm9pZCBkZXRhY2goKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlTGlzdC5pZGwKaW5kZXggZTVkMGY5MDc0Yjk5ZGFlODE0OTgwMWFhNGJmNzM1Yzc2ZGJhY2I4
ZS4uMDdlMGE0ZDA4N2YyN2I2ZDk2MGUzOGMwZWVlOTgyNGE5YmZmMzA3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZUxpc3QuaWRsCkBAIC0yMCwxNyArMjAsMTcgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBJ
bmRleGVkR2V0dGVyLAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAgVjhEZXBlbmRlbnRM
aWZldGltZQotICAgIF0gTm9kZUxpc3QgeworICAgIF0gaW50ZXJmYWNlIE5vZGVMaXN0IHsKIAot
ICAgICAgICBOb2RlIGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgTm9kZSBpdGVtKFtJc0luZGV4LE9wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogCiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob3RhdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm90YXRpb24uaWRsCmluZGV4IDI5MTdjYjI2ZjlhZjM0MTYwMzBjODMw
MjUxYzc1MGFiZTdlNzZmMDcuLmU2MzRiYTk2ZTAzZDQyNzg4ZjlkM2RhMTVmNWFmZmE5MTFiMzc2
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob3RhdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vdGF0aW9uLmlkbApAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGNv
cmUgewogCiAgICAgaW50ZXJmYWNlIE5vdGF0aW9uIDogTm9kZSB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgcHVi
bGljSWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgc3lzdGVtSWQ7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHVibGljSWQ7Cisg
ICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc3lzdGVtSWQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVy
Zmxvd0V2ZW50LmlkbAppbmRleCAxMGI5NTA0ZjQwNTEyMDA3OGMzYzFjYmQxMjA3Nzc5ZjQ5Yzkx
MzhiLi4wMTI2MTdhNjBkNTA1ZWU0YmE2OTNhN2IzNTc0MDM5MDM3OTA3ZWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL092ZXJmbG93RXZlbnQuaWRsCkBAIC0yNSwyMiArMjUsMjIgQEAKIAogbW9kdWxlIGV2
ZW50cyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uc3RydWN0b3JUZW1w
bGF0ZT1FdmVudAotICAgIF0gT3ZlcmZsb3dFdmVudCA6IEV2ZW50IHsKKyAgICBdIGludGVyZmFj
ZSBPdmVyZmxvd0V2ZW50IDogRXZlbnQgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBI
T1JJWk9OVEFMID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVkVSVElDQUwgICA9
IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEJPVEggICAgICAgPSAyOwogICAgICAg
ICAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gdW5zaWduZWQgc2hvcnQgb3JpZW50OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBib29sZWFuIGhvcml6b250YWxPdmVyZmxv
dzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gYm9vbGVhbiB2ZXJ0aWNhbE92ZXJmbG93OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBvcmllbnQ7
CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gaG9yaXpvbnRhbE92ZXJmbG93OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZlcnRpY2FsT3ZlcmZs
b3c7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpF
Q1RJVkVfQwotICAgICAgICB2b2lkIGluaXRPdmVyZmxvd0V2ZW50KGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IG9yaWVudCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGhv
cml6b250YWxPdmVyZmxvdywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHZlcnRpY2FsT3ZlcmZsb3cpOworICAg
ICAgICB2b2lkIGluaXRPdmVyZmxvd0V2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIHVuc2lnbmVkIHNob3J0IG9yaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGhvcml6b250YWxPdmVy
ZmxvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBib29sZWFuIHZlcnRpY2FsT3ZlcmZsb3cpOwogI2VuZGlmCiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmlkbAppbmRl
eCA3NmM4NzI3Yjc3YjI2OTJiMDg1ZWYxODE1ZmNhYzRlZTEyNzY4NjE1Li5iNWRmMDM1ODhmYWM0
NzRmOTFiZDA4ZDNlYzAzNWQ1NzljMjNmNTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUGFnZVRyYW5zaXRpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VU
cmFuc2l0aW9uRXZlbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIGV2ZW50cyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1F
dmVudAotICAgIF0gUGFnZVRyYW5zaXRpb25FdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gYm9vbGVhbiBwZXJz
aXN0ZWQ7CisgICAgXSBpbnRlcmZhY2UgUGFnZVRyYW5zaXRpb25FdmVudCA6IEV2ZW50IHsKKyAg
ICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBwZXJzaXN0ZWQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3BTdGF0
ZUV2ZW50LmlkbAppbmRleCBjOTM0M2NhODBlZDE3OTI0MmIxZGI0ZjViMTY3ZWU4YzY2MDNhNTdk
Li5jMGZlZjAxMTFhOWUxNmM2ZTA5NzAzOWNlMTcwZTMxYTQwMTJlZjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1BvcFN0YXRlRXZlbnQuaWRsCkBAIC0yNywxMSArMjcsMTEgQEAKIG1vZHVsZSBldmVudHMg
ewogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBd
IFBvcFN0YXRlRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IsIENhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tR2V0dGVy
XSBET01PYmplY3Qgc3RhdGU7CisgICAgXSBpbnRlcmZhY2UgUG9wU3RhdGVFdmVudCA6IEV2ZW50
IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yLCBDYWNoZWRBdHRyaWJ1
dGUsIEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTU9iamVjdCBzdGF0ZTsKICAg
ICB9OwogI2VuZGlmCiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaWRsCmluZGV4IDAyNDk5YTJmMTFkOTdiM2ZlNjYzNDM3MTU2NzliN2RmZTZmMjQ1
MGUuLjJhZjhiNmQwM2UxMzlhNGZiNDNlZjI0NTk1MDBkOTNjYjNkY2MwZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCkBAIC0yNCwxMiArMjQsMTIg
QEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAxCiAKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmlu
ZyB0YXJnZXQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZGF0YQotICAg
ICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBb
VHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHRhcmdldDsKKyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBkYXRhCisg
ICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyBpbnRlcmZhY2UgTGlua1N0eWxlIGZyb20gRE9NIExldmVsIDIgU3R5bGUgU2hlZXRzCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0IHNoZWV0OwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwKaW5kZXggNTI1ZmE0YWU5M2YyZDdiMzNk
YTA1Mjc5NDA5YmViMTk1YmZhZWEyMS4uMThiZTg4Yjg0YmQwYzQ0MGU1N2VmMmFjYTg4NmY3OTc3
MTE1YTZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbApAQCAtMjUsMTMgKzI1
LDEzIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMK
LSAgICBdIFByb2dyZXNzRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIGJvb2xlYW4gbGVuZ3RoQ29tcHV0YWJs
ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gdW5zaWduZWQgbG9uZyBsb25nIGxvYWRlZDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gdW5zaWduZWQgbG9uZyBsb25nIHRv
dGFsOworICAgIF0gaW50ZXJmYWNlIFByb2dyZXNzRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
bGVuZ3RoQ29tcHV0YWJsZTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9y
XSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGxvYWRlZDsKKyAgICAgICAg
W0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsb25nIHRvdGFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAppbmRl
eCA2N2Y0YWVlMDcyYjE0NDAyOTU0OTgyNDAxYzY4NzU0MjQ2MWQyNDg4Li45NGU0ZDlkMWFkMzli
MGJjMGE3MGExNzI2MTllOTkwODI0ZmY1OWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTI0LDM3
ICsyNCwzNyBAQCBtb2R1bGUgcmFuZ2VzIHsKICAgICBpbnRlcmZhY2UgUmFuZ2UgewogCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHN0YXJ0Q29udGFpbmVyCi0gICAgICAgICAgICBn
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc3RhcnRPZmZzZXQKLSAg
ICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBlbmRD
b250YWluZXIKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyBlbmRPZmZzZXQKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBjb2xsYXBzZWQKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBjb21tb25BbmNlc3RvckNvbnRhaW5lcgotICAg
ICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gdm9pZCBzZXRTdGFydChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJl
Zk5vZGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgb2Zmc2V0KQorICAgICAgICBbT2JqQ0xlZ2FjeVVu
bmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldFN0YXJ0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIE5vZGUgcmVmTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBvZmZzZXQpCiAgICAgICAg
ICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgc2V0RW5kKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIE5vZGUgcmVmTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgb2Zmc2V0KQorICAg
ICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEVuZChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIHJlZk5vZGUsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIG9m
ZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBzZXRTdGFydEJlZm9yZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBOb2RlIHJlZk5vZGUpCisgICAgICAgIHZvaWQgc2V0U3RhcnRCZWZvcmUoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2Vz
KFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFN0YXJ0QWZ0
ZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlKQorICAgICAg
ICB2b2lkIHNldFN0YXJ0QWZ0ZXIoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9k
ZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRp
b24pOwotICAgICAgICB2b2lkIHNldEVuZEJlZm9yZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBOb2RlIHJlZk5vZGUpCisgICAgICAgIHZvaWQgc2V0RW5kQmVmb3JlKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNl
cyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmRBZnRl
cihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJlZk5vZGUpCisgICAgICAg
IHZvaWQgc2V0RW5kQWZ0ZXIoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBy
ZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24p
OwotICAgICAgICB2b2lkIGNvbGxhcHNlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGJvb2xlYW4gdG9TdGFydCkKKyAgICAgICAgdm9pZCBjb2xsYXBzZShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHRvU3RhcnQpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZWxlY3ROb2RlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIE5vZGUgcmVmTm9kZSkKKyAgICAgICAgdm9pZCBzZWxlY3ROb2RlKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJh
aXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZWxlY3RO
b2RlQ29udGVudHMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2Rl
KQorICAgICAgICB2b2lkIHNlbGVjdE5vZGVDb250ZW50cyhbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRp
b24sIERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gQ29tcGFyZUhvdwpAQCAtNjMsOCArNjMs
OCBAQCBtb2R1bGUgcmFuZ2VzIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRU5EX1RP
X0VORCAgICAgPSAyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTkRfVE9fU1RBUlQg
ICA9IDM7CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gc2hvcnQgY29t
cGFyZUJvdW5kYXJ5UG9pbnRzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIENvbXBh
cmVIb3cgaG93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gUmFuZ2Ugc291cmNlUmFuZ2Up
CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHNob3J0IGNvbXBhcmVCb3Vu
ZGFyeVBvaW50cyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBDb21wYXJlSG93IGhv
dywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFJhbmdlIHNvdXJjZVJhbmdlKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBkZWxldGVDb250ZW50
cygpCkBAIC03Myw5ICs3Myw5IEBAIG1vZHVsZSByYW5nZXMgewogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgY2xvbmVDb250ZW50cygp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBpbnNlcnRO
b2RlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgbmV3Tm9kZSkKKyAgICAg
ICAgdm9pZCBpbnNlcnROb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUg
bmV3Tm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFJhbmdlRXhjZXB0aW9u
KTsKLSAgICAgICAgdm9pZCBzdXJyb3VuZENvbnRlbnRzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIE5vZGUgbmV3UGFyZW50KQorICAgICAgICB2b2lkIHN1cnJvdW5kQ29udGVudHMo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBuZXdQYXJlbnQpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBSYW5nZUV4Y2VwdGlvbik7CiAgICAgICAgIFJhbmdl
IGNsb25lUmFuZ2UoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC05NCwx
NSArOTQsMTUgQEAgbW9kdWxlIHJhbmdlcyB7CiAKICAgICAgICAgLy8gZXh0ZW5zaW9ucwogCi0g
ICAgICAgIERvY3VtZW50RnJhZ21lbnQgY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBodG1sKQorICAgICAgICBEb2N1bWVu
dEZyYWdtZW50IGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBET01TdHJpbmcgaHRtbCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogCiAgICAgICAgIC8vIFdlYktpdCBleHRlbnNpb25zCiAKLSAgICAgICAgYm9vbGVhbiBp
bnRlcnNlY3RzTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJlZk5v
ZGUpCisgICAgICAgIGJvb2xlYW4gaW50ZXJzZWN0c05vZGUoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gTm9kZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0
aW9uLCBET01FeGNlcHRpb24pOwogCi0gICAgICAgIHNob3J0IGNvbXBhcmVOb2RlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcmVmTm9kZSkKKyAgICAgICAgc2hvcnQgY29t
cGFyZU5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByZWZOb2RlKQog
ICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIC8vIENvbXBhcmVSZXN1bHRzCkBAIC0xMTEsMTUgKzExMSwxNSBAQCBtb2R1bGUgcmFuZ2Vz
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9ERV9CRUZPUkVfQU5EX0FGVEVSID0g
MjsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9ERV9JTlNJREUgICAgICAgICAgID0g
MzsKIAotICAgICAgICBzaG9ydCBjb21wYXJlUG9pbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gTm9kZSByZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgb2Zmc2V0KQorICAgICAgICBzaG9ydCBj
b21wYXJlUG9pbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByZWZOb2Rl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBE
T01FeGNlcHRpb24pOwogCi0gICAgICAgIGJvb2xlYW4gaXNQb2ludEluUmFuZ2UoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIG9mZnNl
dCkKKyAgICAgICAgYm9vbGVhbiBpc1BvaW50SW5SYW5nZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBOb2RlIHJlZk5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgb2Zmc2V0KQogICAgICAgICAg
ICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQg
ZXhwYW5kKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB1bml0KQor
ICAgICAgICB2b2lkIGV4cGFuZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcgdW5pdCkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0
aW9uKTsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9K
QVZBU0NSSVBUCkBAIC0xMjcsNCArMTI3LDQgQEAgbW9kdWxlIHJhbmdlcyB7CiAjZW5kaWYKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlRXhjZXB0
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKaW5kZXggN2Vm
OGM0YTVhYjIxOTljZTk1MDAwMmIyMzhkMGM4ZTZiZjk5MWJiYi4uNWI3NjVjMmU3YmM4NmVjNTAz
NjI2MDEzMTMyZmNjODU4Njg2NTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlRXhjZXB0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24u
aWRsCkBAIC0xOSw5ICsxOSw5IEBACiAKIG1vZHVsZSByYW5nZXMgewogCi0gICAgZXhjZXB0aW9u
IFsKKyAgICBbCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFJhbmdlRXhjZXB0
aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBSYW5nZUV4Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKQEAgLTM3LDQgKzM3LDQgQEAgbW9kdWxlIHJh
bmdlcyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IElOVkFMSURfTk9ERV9UWVBFX0VS
UiA9IDI7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCmluZGV4IDRkYTY4MjA4MzEwNDcyZmRkNGE2
NGI0Y2IwODM4OTZiYTZiMzQ2MjYuLjNhN2FkZTNiM2YwZTE2NjhiYjI3NjdhNjE2ODM2MmFhZWM4
NTBjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIGNvcmUg
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDYWxsYmFjaywKLSAgICAgICAgQ29u
ZGl0aW9uYWw9UkVRVUVTVF9BTklNQVRJT05fRlJBTUUsCi0gICAgXSBSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFja3sKKyAgICAgICAgQ29uZGl0aW9uYWw9UkVRVUVTVF9BTklNQVRJT05fRlJB
TUUKKyAgICBdIGludGVyZmFjZSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjayB7CiAjaWYg
ZGVmaW5lZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5HCiAgICAgICAgIGJvb2xlYW4gaGFuZGxl
RXZlbnQoaW4gRE9NVGltZVN0YW1wIHRpbWUpOwogI2Vsc2UKQEAgLTQwLDQgKzQwLDQgQEAgbW9k
dWxlIGNvcmUgewogI2VuZGlmCiAgICAgICAgIAogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaWRsCmluZGV4IGMwNGMzZTE1ZDUwZTZjODQ3NDhhNTNiNjNmMTI2ZmEyYTM4YjI0
NGYuLjc5ZTY0N2VmMjVhN2MyZmM1NWFmNzEzNGY2NTc4ZjcyNTBjNDFjZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5pZGwKQEAgLTI2LDI1ICsyNiwyNSBAQAogCiBtb2R1bGUgY29yZSB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hBRE9XX0RPTSwK
ICAgICAgICAgQ29uc3RydWN0b3IoaW4gRWxlbWVudCBob3N0KSwKICAgICAgICAgQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBT
aGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU2hhZG93Um9v
dCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVu
dCBhY3RpdmVFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhcHBseUF1dGhvclN0
eWxlczsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gcmVzZXRTdHlsZUluaGVyaXRhbmNlOwog
Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlu
bmVySFRNTAotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBpbm5lckhUTUwK
KyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIERPTVNlbGVj
dGlvbiBnZXRTZWxlY3Rpb24oKTsKLSAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsKLSAgICAg
ICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgY2xhc3NOYW1lKTsKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxl
bWVudHNCeVRhZ05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHRhZ05hbWUpOwotICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsK
KyAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
Y2xhc3NOYW1lKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRhZ05hbWUpOworICAgICAgICBO
b2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKaW5kZXggMWUxOGQ4M2ZlMGFmNGMyYTVkNDMy
YTg1MGEwYmQwOGUzYzMyZWQyZi4uYjMyNzVlZjFhMmExYzMyNWY5ZDk0ZDY4NzI3MTViNzZiYmM3
ODE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCkBAIC0yOSw5ICsyOSw5
IEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDYWxsYmFjawotICAgIF0gU3RyaW5nQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFN0cmlu
Z0NhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZGF0
YSk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5pZGwKaW5kZXggNDczNmUyMmZlYjBhNzdmYWZm
YTBkM2Y1MzRjNmJlNTVkYzE1MWNlYi4uYTRiZWQ4NDVkNWNhZDc5NzU5N2RiM2Q5ODdkZDA1NzBh
ZGY1NTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmlkbApAQCAtMjMsMTMgKzIzLDEzIEBAIG1vZHVsZSBjb3Jl
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAgIFRleHQgc3BsaXRUZXh0KGlu
IFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBvZmZz
ZXQpCisgICAgICAgIFRleHQgc3BsaXRUZXh0KFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB3aG9sZVRleHQ7Ci0gICAg
ICAgIFRleHQgICAgICAgICAgICAgICByZXBsYWNlV2hvbGVUZXh0KGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb250ZW50KQorICAgICAgICBUZXh0ICAgICAgICAg
ICAgICAgcmVwbGFjZVdob2xlVGV4dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgY29udGVudCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHRFdmVudC5pZGwKaW5kZXggMzZmNTA3YzA2NjMxY2ZmMTc5MWU0YTU2YjFiNGM4NTFhNTU3MDQ4
Mi4uMThmYjM4NWM4OTA3ZDk1MWFlOGVhNmYxZDkxZTZmNTRhNjljMTRiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RleHRFdmVudC5pZGwKQEAgLTMwLDEyICszMCwxMiBAQCBtb2R1bGUgZXZlbnRzIHsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRhdGE7CiAKLSAgICAgICAgdm9pZCBp
bml0VGV4dEV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0
eXBlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJs
ZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01XaW5kb3cgdmlld0FyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZGF0YUFyZyk7Cisg
ICAgICAgIHZvaWQgaW5pdFRleHRFdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgdHlwZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29s
ZWFuIGNhbmNlbGFibGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NV2luZG93IHZpZXdBcmcsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IGRhdGFBcmcpOwogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaWRsCmluZGV4IGQyOTM3
YjM0ZTA2YmQ4OTdlNTk2ZjBkYzk4M2U4NzUzZGQyMGVjODAuLmFmYTYyOGI2MGIzMTUyMDk2NGYz
ZjYwMGJmMzM0YWVmNjIxYTI2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3Vj
aC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoLmlkbApAQCAtMjUsOSArMjUsOSBA
QAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1UT1VDSF9FVkVOVFMKLSAgICBdIFRvdWNoIHsKKyAgICBdIGludGVyZmFjZSBU
b3VjaCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNsaWVu
dFg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNsaWVudFk7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIHNjcmVlblg7CkBA
IC00MSw0ICs0MSw0IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgZmxvYXQgICAgICAgICAgICB3ZWJraXRSb3RhdGlvbkFuZ2xlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgICAgICAgICAgICB3ZWJraXRGb3JjZTsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmlkbAppbmRleCA0Yjc5NzU3ZjVhNTgwOGQyMzg2YTcwZDNh
YzI0YTcxZTI1YTVkMjAzLi5lMTNlMzAwYmE0NDAyYzYwYjM1MWQ0M2I2ZjljNDg0ZjAzMGUwNWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVs
ZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PVRPVUNIX0VWRU5UUwotICAgIF0gVG91Y2hFdmVudCA6IFVJRXZlbnQgeworICAgIF0gaW50ZXJm
YWNlIFRvdWNoRXZlbnQgOiBVSUV2ZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRv
dWNoTGlzdCB0b3VjaGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVG91Y2hMaXN0IHRh
cmdldFRvdWNoZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgY2hhbmdl
ZFRvdWNoZXM7CkBAIC0zNiwxOCArMzYsMTggQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFsdEtleTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gbWV0YUtleTsKIAotICAgICAgICB2b2lkIGluaXRUb3VjaEV2ZW50KGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFRvdWNoTGlzdCB0b3VjaGVzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFRvdWNo
TGlzdCB0YXJnZXRUb3VjaGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFRvdWNoTGlzdCBjaGFuZ2VkVG91Y2hlcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01XaW5kb3cgdmlldywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHNjcmVlblgsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGxvbmcgc2NyZWVuWSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBjbGllbnRYLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGNsaWVudFks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gYm9vbGVhbiBjdHJsS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gYWx0S2V5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
c2hpZnRLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBtZXRhS2V5KTsKKyAgICAgICAgdm9pZCBpbml0VG91Y2hF
dmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBUb3VjaExpc3QgdG91Y2hlcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBUb3VjaExpc3QgdGFyZ2V0VG91Y2hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBUb3VjaExpc3QgY2hhbmdlZFRvdWNo
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NV2luZG93IHZpZXcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBz
Y3JlZW5YLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgY2xpZW50WCwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9u
ZyBjbGllbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGFsdEtleSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBib29sZWFuIHNoaWZ0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gbWV0YUtleSk7CiAgICAgfTsKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ub3VjaExpc3QuaWRsCmluZGV4IDU0MjMyNWM3ODA2ZGQ4OTllMmRhMjBmMGRi
Y2RiZmUyYzlkZTY4ZjEuLmI4OWM0ZjhiOTMxNjAyYmM1MWZkYmU5MTBiN2Y0MDZkMGQzMmUwNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaWRsCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogbW9kdWxl
IGV2ZW50cyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
VE9VQ0hfRVZFTlRTLAogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBUb3VjaExpc3Qgewor
ICAgIF0gaW50ZXJmYWNlIFRvdWNoTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKIAogICAgICAgICBUb3VjaCBpdGVtKGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVXYWxrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4
IGQ5ZWQzNmVhYmQ4ZTgxNjZiMDRkNjIyMzU5MThhYWQxMjQ4ODYxOGMuLjk3Njk2ZWUyMzFiNGUy
YzhkNDlhMWIxMDcxYjBlMWU3NGZkYTZmNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlV2Fsa2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwK
QEAgLTIxLDE1ICsyMSwxNSBAQAogbW9kdWxlIHRyYXZlcnNhbCB7CiAKICAgICAvLyBJbnRyb2R1
Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0N1
c3RvbU1hcmtGdW5jdGlvbgotICAgIF0gVHJlZVdhbGtlciB7CisgICAgXSBpbnRlcmZhY2UgVHJl
ZVdhbGtlciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJvb3Q7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3c7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlczsgICAgICAgIAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgTm9kZSBjdXJyZW50Tm9kZQotICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgc2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2Rl
IHBhcmVudE5vZGUoKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBOb2RlIGZpcnN0
Q2hpbGQoKTsKQEAgLTQwLDQgKzQwLDQgQEAgbW9kdWxlIHRyYXZlcnNhbCB7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBuZXh0Tm9kZSgpOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5pZGwKaW5kZXggMzlhMmNhZjgzZWZjOWVhMzY2Zjc2YjU2Mzc5OTEyNTlj
NDI3M2Q2NS4uZjA0YjY4YTViODJlMDY2M2U0MTg0YzhkNTM0YWRhNTUzMjY1NmUxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9VSUV2ZW50LmlkbApAQCAtMjQsMTEgKzI0LDExIEBAIG1vZHVsZSBldmVudHMgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93ICAgICAgICAgICAgdmlldzsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgICAgIGRldGFpbDsKICAgICAg
ICAgCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgaW5pdFVJRXZl
bnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFu
IGNhbmNlbGFibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2aWV3LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBsb25nIGRldGFpbCk7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnNdIHZvaWQgaW5pdFVJRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVdpbmRv
dyB2aWV3LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGRldGFpbCk7CiAKICAgICAgICAgLy8gZXh0
ZW5zaW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAg
a2V5Q29kZTsKQEAgLTQwLDQgKzQwLDQgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICAgICB3aGljaDsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwKaW5kZXggNWU1
MjI1MGMzYTY1NGFjN2YwY2ZmMzkyZWMwZWM0MTViNjFkNjg4Ny4uZGZhM2VjZjdiODM0ZTFlZDJm
MWVjNGU2MzJhZjJiOGQxOWFhODgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1FdmVu
dAotICAgIF0gV2ViS2l0QW5pbWF0aW9uRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBhbmlt
YXRpb25OYW1lOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yXSBkb3VibGUgZWxhcHNlZFRpbWU7CisgICAgXSBpbnRlcmZhY2UgV2ViS2l0
QW5pbWF0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25z
dHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhbmltYXRpb25OYW1lOworICAg
ICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBk
b3VibGUgZWxhcHNlZFRpbWU7CiB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCmluZGV4IGMzMzhiZTI4ZGUxOTQ4MjJjZDFiYmY4YjU0
NDE0ZWVkMTcxZWRlZmQuLmY4YTY0YmI5OTA0YjFjZDBmOGYyZjMzOGFmNzcyOTUyZmM2ZTI5YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwKQEAg
LTI5LDE0ICsyOSwxNCBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTLAogICAgICAgICBD
dXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEKLSAgICBd
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIgeworICAgIF0gaW50ZXJmYWNlIFdlYktpdE11dGF0aW9u
T2JzZXJ2ZXIgewogICAgICAgICB2b2lkIG9ic2VydmUoaW4gTm9kZSB0YXJnZXQsIGluIERpY3Rp
b25hcnkgb3B0aW9ucykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICBzZXF1ZW5jZTxNdXRhdGlvblJlY29yZD4gdGFrZVJlY29yZHMoKTsKICAgICAgICAgdm9pZCBk
aXNjb25uZWN0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0TmFtZWRGbG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaWRsCmluZGV4IGE4NjQxY2E4NTZmMTA5MmUwODM5MjJlZGRkYWQ4ZjM0OGY0NmE3MGYuLjli
YmVhNGNiNGU0MmNiZjMzN2NhMDlkZDNlOTUyYWY4YjZlMDY5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJLaXROYW1lZEZsb3cuaWRsCkBAIC0yOCwxMyArMjgsMTMgQEAKICAqLwogCiBtb2R1bGUg
Y29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2Jq
ZWN0Ci0gICAgXSBXZWJLaXROYW1lZEZsb3cgeworICAgIF0gaW50ZXJmYWNlIFdlYktpdE5hbWVk
RmxvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb3ZlcnNldDsKICAgICAgICAgTm9kZUxpc3Qg
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUoaW4gTm9kZSBjb250ZW50Tm9kZSk7CiAgICAgICAgIE5v
ZGVMaXN0IGdldENvbnRlbnQoKTsKICAgICB9OwotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbAppbmRleCAzOTkwM2JkZjI2ZTI0NzRiMTQxMzBj
NzVjOGMzNzIxYmExMDI4ZTc0Li43YWJmMThhMmNlOGRjNWFjYzgyZjk3MzY5YTRkYjI1N2Q3NDZl
ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbApA
QCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIFdlYktpdFRy
YW5zaXRpb25FdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0
aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIHByb3BlcnR5TmFtZTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gZG91
YmxlIGVsYXBzZWRUaW1lOworICAgIF0gaW50ZXJmYWNlIFdlYktpdFRyYW5zaXRpb25FdmVudCA6
IEV2ZW50IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb3BlcnR5TmFtZTsKKyAgICAgICAgW0luaXRpYWxpemVk
QnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGVsYXBzZWRUaW1l
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwKaW5kZXggYjU3ZmQw
ZTliMDIwMDQ1OTUyNzVlNDZhNjVlNDM4NjAzNzdmZTgwOS4uOWViOTBmNTA5MzFkMzkwZDIxNmEx
MDkyNDVjY2JhZTkwNWM3OTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVs
RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmlkbApAQCAtMzUs
MzEgKzM1LDMxIEBAIG1vZHVsZSBldmVudHMgewogI2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICovCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAh
TEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICB2b2lkIGluaXRXaGVlbEV2ZW50KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgd2hlZWxEZWx0YVgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB3aGVl
bERlbHRhWSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93IHZpZXcsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc2NyZWVuWCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBs
b25nIHNjcmVlblksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBjbGllbnRYLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgY2xpZW50WSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBi
b29sZWFuIGN0cmxLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBhbHRLZXksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBzaGlmdEtl
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBib29sZWFuIG1ldGFLZXkpOworICAgICAgICB2b2lkIGluaXRXaGVlbEV2ZW50KFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgd2hlZWxEZWx0YVgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9u
ZyB3aGVlbERlbHRhWSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc2NyZWVuWCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBsb25nIHNjcmVlblksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBjbGllbnRYLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgY2xpZW50WSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBib29sZWFuIGN0cmxLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBhbHRLZXksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBz
aGlmdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBib29sZWFuIG1ldGFLZXkpOwogI2VuZGlmIC8qICFkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpICovCiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYm
IExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgdm9pZCBpbml0V2ViS2l0V2hlZWxFdmVudChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHdoZWVsRGVsdGFYLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGxvbmcgd2hlZWxEZWx0YVksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2aWV3LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBsb25nIHNjcmVlblgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzY3JlZW5ZLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxv
bmcgY2xpZW50WCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGNsaWVudFksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBj
dHJsS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gYWx0S2V5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2hp
ZnRLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBtZXRhS2V5KTsKKyAgICAgICAgdm9pZCBpbml0V2Vi
S2l0V2hlZWxFdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHdoZWVs
RGVsdGFYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgd2hlZWxEZWx0YVksIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVdpbmRv
dyB2aWV3LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzY3JlZW5Z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGxvbmcgY2xpZW50WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGNsaWVudFksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gYm9vbGVhbiBjdHJsS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gYWx0S2V5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGJvb2xlYW4gc2hpZnRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBtZXRhS2V5KTsKICNlbmRp
ZiAvKiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICovCiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9NYW5hZ2VyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaWRsCmluZGV4IDVlZTdiZWExODllNmU1ZDhmM2Qw
OGNjNmZmODVhN2Q1ZTNhMDMyMjYuLjY2MjAyMDdmM2RmMjliZTQ5NzM0NGUzZGY2Y2VlMmRkYTQ1
MDczNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaWRsCkBAIC0zMCw5ICsz
MCw5IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1VTkRPX01BTkFHRVIKLSAgICBdIFVuZG9NYW5hZ2VyIHsKKyAgICBdIGlu
dGVyZmFjZSBVbmRvTWFuYWdlciB7CiAgICAgICAgIHZvaWQgdW5kbygpOwogICAgICAgICB2b2lk
IHJlZG8oKTsKIApAQCAtNDAsNCArNDAsNCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQg
Y2xlYXJSZWRvKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCmluZGV4
IGI0NGViNDM3NTUyNDk5NTRmNTdiMzU5NGUxOTA0NGRlNDNlNGZmMjEuLjAxOTk3MzRiYzQzNDg5
NWMwYTY1MGQ0ZjQ2MmE5OGFiOGRmMTg2ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbApAQCAt
MzAsMjUgKzMwLDI1IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbCwKICAgICAgICAgQ3VzdG9tVG9K
U09iamVjdCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tQ29uc3Ry
dWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0yCi0gICAgXSBCbG9iIHsKKyAg
ICBdIGludGVyZmFjZSBCbG9iIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbG9uZyBzaXplOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5
cGU7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKICNpZiBkZWZpbmVkKEVO
QUJMRV9CTE9CKSAmJiBFTkFCTEVfQkxPQgotICAgICAgICBCbG9iIHNsaWNlKGluIFtPcHRpb25h
bF0gbG9uZyBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgbG9uZyBlbmQsIGluIFtPcHRp
b25hbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgY29udGVudFR5cGUpOworICAgICAgICBCbG9iIHNsaWNlKFtPcHRpb25hbF0g
aW4gbG9uZyBsb25nIHN0YXJ0LCBbT3B0aW9uYWxdIGluIGxvbmcgbG9uZyBlbmQsIFtPcHRpb25h
bCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBp
biBET01TdHJpbmcgY29udGVudFR5cGUpOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
IHx8ICFMQU5HVUFHRV9HT0JKRUNUCiAgICAgICAgIC8vIFByZWZpeGVkIHZlcnNpb24gaXMgZ29p
bmcgdG8gYmUgZGVwcmVjYXRlZC4KLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRdIEJsb2Igd2Via2l0U2xpY2UoaW4gW09wdGlvbmFsXSBsb25nIGxvbmcgc3RhcnQsIGlu
IFtPcHRpb25hbF0gbG9uZyBsb25nIGVuZCwgaW4gW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50VHlw
ZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBCbG9iIHdlYmtp
dFNsaWNlKFtPcHRpb25hbF0gaW4gbG9uZyBsb25nIHN0YXJ0LCBbT3B0aW9uYWxdIGluIGxvbmcg
bG9uZyBlbmQsIFtPcHRpb25hbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgY29udGVudFR5cGUpOwogI2VuZGlmCiAjZW5k
aWYKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbAppbmRleCA3
YzBkZTQzMDlkZmRhNWE2MGVkMTQzY2FhNTQ4YjM1OTk0MTI4ZDVlLi43YjAzNDJlODFjMzAyYTQ5
ZjEzZDY4NWJkODNkYjQxYTQ4OTViNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKQEAgLTI1
LDExICsyNSwxMSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0dlbmVyYXRlVG9K
U09iamVjdCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZSA6IEJsb2Igewor
ICAgIF0gaW50ZXJmYWNlIEZpbGUgOiBCbG9iIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBuYW1lOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpIHx8ICFMQU5H
VUFHRV9HT0JKRUNUCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRlIGxhc3RNb2RpZmll
ZERhdGU7CkBAIC0zOSw0ICszOSw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVFcnJvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVFcnJvci5pZGwKaW5kZXggMTU4ZDc4NDg4NGI1
ODI2NTFlYmIyMWM4YTJhM2Y1ZDdiNjRlZTMzMy4uZDM1NGEyM2VhZmUwMDI2Y2VlMzIzZGZmZGEy
M2E0MTE0ZmZjM2M2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlRXJy
b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUVycm9yLmlkbApAQCAtMjks
MTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1CTE9CfEZJTEVfU1lTVEVNLAogICAgICAgICBKU05vU3Rh
dGljVGFibGVzCi0gICAgXSBGaWxlRXJyb3IgeworICAgIF0gaW50ZXJmYWNlIEZpbGVFcnJvciB7
CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAgICAgICAgIC8vIEZJWE1FOiBT
b21lIG9mIGNvbnN0YW50IG5hbWVzIGFyZSBhbHJlYWR5IGRlZmluZWQgaW4gRE9NRXhjZXB0aW9u
LmggZm9yIE9iamVjdGl2ZS1DIGJpbmRpbmcgYW5kIHdlIGNhbm5vdCBoYXZlIHRoZSBzYW1lIG5h
bWVzIGhlcmUgKHRoZXkgYXJlIHRyYW5zbGF0ZWQgaW50byBhIGVudW0gaW4gdGhlIHNhbWUgbmFt
ZXNwYWNlKS4KICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDE7
CkBAIC01MCw0ICs1MCw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY29kZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVFeGNlcHRpb24uaWRsCmluZGV4IDMzMjQ0ZjlmYzJiZDU2YWNmNzI5
Zjc3MjM1NTliYmMzZGVhYTkwYmIuLmQxMDg0MjE3OTZmZWQwMTU2MDJkZjRjNTQ4N2M1ZmNiZmY4
NmUyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlRXhjZXB0aW9uLmlkbApAQCAtMjks
MTEgKzI5LDExIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGV4Y2VwdGlvbiBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1CTE9CfEZJTEVfU1lTVEVNLAogICAgICAgICBEb05vdENo
ZWNrQ29uc3RhbnRzLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlRXhjZXB0
aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBGaWxlRXhjZXB0aW9uIHsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICBjb2RlOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwpAQCAtNTgsNCArNTgsNCBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRZUEVfTUlTTUFUQ0hfRVJSID0gMTE7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBBVEhfRVhJU1RTX0VSUiA9IDEyOwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmlkbAppbmRleCAxNDEzOWE3NjM1
ZDMzMGQwNjA5ZTVjMmNjMmUxZjkxOWY3YTRjNzMwLi43ZjYzZTYxMzVjYjc4NWVjMWEzNTAxY2Fi
OTQ1MDUwMjZiMDgxMGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVM
aXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVMaXN0LmlkbApAQCAtMjUs
MTIgKzI1LDEyIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBG
aWxlTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgRmlsZUxpc3QgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIEZpbGUgaXRlbShpbiB1bnNp
Z25lZCBsb25nIGluZGV4KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlci5pZGwKaW5kZXggNTFmZTcxMjhiMzc0NmQzYjE5NmY5NzdjZDY1NTUxZDEzY2E1NDA2
Mi4uMmEzYTdmYTZiYTU5ZmEzNTg2YmY2MmFiYWJhNWY3NzI4YzY5MmM4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGVSZWFkZXIuaWRsCkBAIC0zMCwxNCArMzAsMTQgQEAKICAqLwogCiBtb2R1
bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUJM
T0IsCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAgICAgQ29uc3RydWN0b3IsCiAgICAg
ICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEV2ZW50VGFyZ2V0
LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlUmVhZGVyIHsKKyAgICBdIGlu
dGVyZmFjZSBGaWxlUmVhZGVyIHsKICAgICAgICAgLy8gcmVhZHkgc3RhdGVzCiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEVNUFRZID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgTE9BRElORyA9IDE7CkBAIC00OSw3ICs0OSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmlu
ZyhpbiBCbG9iIGJsb2IpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCByZWFkQXNUZXh0KGluIEJsb2IgYmxvYiwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcg
ZW5jb2RpbmcpCisgICAgICAgIHZvaWQgcmVhZEFzVGV4dChpbiBCbG9iIGJsb2IsIFtPcHRpb25h
bF0gaW4gRE9NU3RyaW5nIGVuY29kaW5nKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIHZvaWQgcmVhZEFzRGF0YVVSTChpbiBCbG9iIGJsb2IpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTU3LDE3ICs1NywxNyBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHZvaWQgYWJvcnQoKTsKIAogICAgICAgICAvLyBmaWxlIGRhdGEKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIERPTU9iamVjdCByZXN1bHQ7CisgICAgICAgIFtD
dXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01PYmplY3QgcmVzdWx0OwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBGaWxlRXJyb3IgZXJyb3I7CiAKICAgICAgICAgLy8gRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxd
IGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMo
RXZlbnRFeGNlcHRpb24pOwogCkBAIC03OCw0ICs3OCw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKICAgICAgICAgYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25sb2FkZW5kOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXJTeW5jLmlkbAppbmRleCA5MjBmMzY4NDA4ZjRjMGRlY2ZkOGYxNzE0NTEx
MTJmMmUyYTg0MDZkLi42MDcxZmYxZjU3ODdmYzkyOWM3MWFiZjgwM2QxOGFjODc1OTQ5NjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmlkbApAQCAtMjksMTggKzI5
LDE4IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1CTE9CLAogICAgICAgICBDb25zdHJ1Y3RvciwKICAgICAgICAgSlNO
b1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZVJlYWRlclN5bmMgeworICAgIF0gaW50ZXJmYWNlIEZp
bGVSZWFkZXJTeW5jIHsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IEFycmF5QnVmZmVyIHJlYWRBc0FycmF5QnVmZmVyKGluIEJsb2IgYmxvYikKICAgICAgICAgICAg
IHJhaXNlcyhGaWxlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIERPTVN0cmluZyByZWFkQXNCaW5hcnlTdHJpbmcoaW4gQmxvYiBibG9iKQogICAg
ICAgICAgICAgcmFpc2VzKEZpbGVFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gRE9NU3RyaW5nIHJlYWRBc1RleHQoaW4gQmxvYiBibG9iLCBpbiBb
T3B0aW9uYWxdIERPTVN0cmluZyBlbmNvZGluZykKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIERPTVN0cmluZyByZWFkQXNUZXh0KGluIEJsb2IgYmxvYiwgW09wdGlv
bmFsXSBpbiBET01TdHJpbmcgZW5jb2RpbmcpCiAgICAgICAgICAgICByYWlzZXMoRmlsZUV4Y2Vw
dGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBET01TdHJp
bmcgcmVhZEFzRGF0YVVSTChpbiBCbG9iIGJsb2IpCiAgICAgICAgICAgICByYWlzZXMoRmlsZUV4
Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL1dlYktpdEJsb2JCdWlsZGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0
QmxvYkJ1aWxkZXIuaWRsCmluZGV4IDhlYzEyODAyYTAyNTU4NjQ5NzMxYzYzNmE1MTBiOGUxNDhh
ZjNjZDQuLjZiNWM4ZTZmN2U5YzQ2MDY4MzM1MjBiZDZjYjUzNmE4OGZkY2Q5NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuaWRsCkBAIC0yOSwyMyArMjks
MjMgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUxFR0FDWV9XRUJLSVRfQkxPQl9CVUlMREVSLAogICAgICAgICBDb25z
dHJ1Y3RvciwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU05v
U3RhdGljVGFibGVzLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0g
ICAgXSBXZWJLaXRCbG9iQnVpbGRlciB7CisgICAgXSBpbnRlcmZhY2UgV2ViS2l0QmxvYkJ1aWxk
ZXIgewogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQotICAgICAgICBCbG9iIGdl
dEJsb2IoaW4gW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5l
ZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50VHlwZSk7CisgICAgICAgIEJsb2IgZ2V0
QmxvYihbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9
TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsKICNlbmRpZgogICAgICAgICB2
b2lkIGFwcGVuZChpbiBCbG9iPyBibG9iKTsKICNpZiBkZWZpbmVkKEVOQUJMRV9CTE9CKSAmJiBF
TkFCTEVfQkxPQgogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9p
ZCBhcHBlbmQoaW4gQXJyYXlCdWZmZXI/IGFycmF5QnVmZmVyKTsKICAgICAgICAgdm9pZCBhcHBl
bmQoaW4gQXJyYXlCdWZmZXJWaWV3PyBhcnJheUJ1ZmZlclZpZXcpOwogI2VuZGlmCi0gICAgICAg
IHZvaWQgYXBwZW5kKGluIERPTVN0cmluZyB2YWx1ZSwgaW4gW09wdGlvbmFsLCBUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBlbmRp
bmdzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgYXBwZW5kKGluIERPTVN0
cmluZyB2YWx1ZSwgW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVm
aW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBlbmRpbmdzKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01Gb3JtRGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmlkbApp
bmRleCA3M2VhYTY2MTg0MmM5OGM1MjBiOWU2ZGYxNGIyNTc0OTU0M2JmMmMzLi44ZWFkZDM0NTg4
M2U2MDc4M2NhMTQ0ZGU3ZTg4YzA2Nzk2NWJmMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTUZvcm1EYXRhLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTUZvcm1E
YXRhLmlkbApAQCAtMzAsMTggKzMwLDE4IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3Ry
dWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAg
ICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgICAgIEludGVyZmFjZU5hbWU9Rm9ybURh
dGEKLSAgICBdIERPTUZvcm1EYXRhIHsKKyAgICBdIGludGVyZmFjZSBET01Gb3JtRGF0YSB7CiAg
ICAgICAgIC8vIHZvaWQgYXBwZW5kKERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgdmFsdWUpOwog
ICAgICAgICAvLyB2b2lkIGFwcGVuZChET01TdHJpbmcgbmFtZSwgQmxvYiB2YWx1ZSwgb3B0aW9u
YWwgRE9NU3RyaW5nIGZpbGVuYW1lKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBhcHBlbmQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBmaWxlbmFtZSk7CisgICAgICAgIFtDdXN0b21d
IHZvaWQgYXBwZW5kKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBu
YW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZmlsZW5hbWUpOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRh
YmxlVG9rZW5MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuaWRsCmluZGV4IDkzYmY2N2Y2OTAxYTlhNmNjOTY0ZGQ5MTUwMzc4NjYwMDY1NTRkYzUuLjMy
OTU1ZWZhYTg5NTc5ZGJhYjY5NTVlZDIxY2ZmMDMxOGFiM2ViYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCkBAIC0yNCwxMSArMjQsMTEgQEAKIAog
bW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEluZGV4ZWRH
ZXR0ZXIsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBET01TZXR0YWJsZVRv
a2VuTGlzdCA6IERPTVRva2VuTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgRE9NU2V0dGFibGVUb2tl
bkxpc3QgOiBET01Ub2tlbkxpc3QgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVl
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRv
a2VuTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwKaW5kZXgg
Y2Y1N2UxYWVlZjk2ZTI5Njc1MDBlZTE3ZTUwZjQyZmQwODljNjcyYi4uZTIzMWQ5MGMzOTYwOTIw
YTg5NDdjODhkNmJiY2QwM2ZhNWJiYjNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9ET01Ub2tlbkxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0
LmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwK
ICAgICAgICAgSW5kZXhlZEdldHRlcgotICAgIF0gRE9NVG9rZW5MaXN0IHsKKyAgICBdIGludGVy
ZmFjZSBET01Ub2tlbkxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7CiAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgICAgICBib29sZWFuIGNv
bnRhaW5zKGluIERPTVN0cmluZyB0b2tlbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC00MCw0
ICs0MCw0IEBAIG1vZHVsZSBjb3JlIHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RPTVVSTC5pZGwKaW5kZXggZWQwNGMyM2Q1YzY3YjMxYzNiOTM3MzYyMDdmYjQwYWU5NmExNmFh
YS4uMmY0M2Q3N2U3YTU1OTBmYTBkMmY4MzMxZDgzMzI3ZjIwN2NkZjEyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NVVJMLmlkbApAQCAtMjUsMTggKzI1LDE4IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1CTE9CLAogICAgICAgICBD
b25zdHJ1Y3RvciwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAg
SW50ZXJmYWNlTmFtZT1VUkwKLSAgICBdIERPTVVSTCB7CisgICAgXSBpbnRlcmZhY2UgRE9NVVJM
IHsKICNpZiBkZWZpbmVkKEVOQUJMRV9NRURJQV9TVFJFQU0pICYmIEVOQUJMRV9NRURJQV9TVFJF
QU0KICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChpbiBN
ZWRpYVN0cmVhbT8gc3RyZWFtKTsKICNlbmRpZgogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCxUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHN0YXRpYyBET01T
dHJpbmcgY3JlYXRlT2JqZWN0VVJMKGluIEJsb2I/IGJsb2IpOwogICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIHZvaWQgcmV2b2tlT2JqZWN0VVJMKGluIERP
TVN0cmluZyB1cmwpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmlkbAppbmRleCA1MGUxODljNjU1NmQxNTUxM2Y1ZTA0YWI1NmI0ODlkNzAyNDg3
YTQ1Li4wNDM2MTM0YTFhNWE4ZTVkY2YxYTVhNjBmYzBlMDAyNzQyNmZkYjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbApAQCAtMjUsMjAgKzI1LDIwIEBACiAK
IG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBJbmRleGVk
R2V0dGVyLAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAgQ3VzdG9tQ2FsbCwKICAgICAg
ICAgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwKICAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1J
bXBsQmFzZVJvb3QsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKLSAgICBdIEhUTUxBbGxD
b2xsZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBIVE1MQWxsQ29sbGVjdGlvbiB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgW0N1c3Rv
bV0gTm9kZSBpdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOworICAgICAgICBbQ3VzdG9tXSBOb2RlIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIFtDdXN0b21dIE5v
ZGUgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1lKTsKIAogICAgICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgcmV0dXJuIGFuIEhUTUxBbGxDb2xsZWN0aW9uLgogICAgICAgICBOb2RlTGlzdCB0
YWdzKGluIERPTVN0cmluZyBuYW1lKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCA3YmQxNzRjNjNlNjhkNDExMWI4ZmU2MzYy
N2I0NWJkYmYwODhjMGVlLi4zN2I5YjQyZjg5Nzg4ZWViZjg4M2MwMmRmOWJjZmJlZjJhYzlmMDU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbApAQCAtMjEsMjEg
KzIxLDIxIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEFuY2hvckVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGNoYXJzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvb3JkczsK
LSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1ET1dOTE9BRF9BVFRSSUJVVEUsIFJlZmxl
Y3RdIERPTVN0cmluZyBkb3dubG9hZDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxd
IERPTVN0cmluZyBocmVmOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBo
cmVmbGFuZzsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcGluZzsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmVsOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyByZXY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNo
YXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0YXJnZXQ7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoYXJzZXQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGNvb3JkczsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURPV05MT0FEX0FUVFJJ
QlVURSwgUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBkb3dubG9hZDsKKyAgICAgICAgW1Jl
ZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBocmVmOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBocmVmbGFuZzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
cGluZzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVsOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyByZXY7CisgICAgICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHNoYXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0YXJnZXQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5
cGU7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpF
Q1RJVkVfQwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKICNlbmRp
ZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNU
SVZFX0MKQEAgLTQ3LDE1ICs0NywxNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvdG9jb2w7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc2VhcmNoOwogI2Vsc2UKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaGFzaDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaG9zdDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaG9zdG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHBhdGhuYW1lOwotICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBwb3J0OwotICAgICAg
ICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBwcm90b2NvbDsK
LSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgc2Vh
cmNoOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmlu
ZyBoYXNoOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0
cmluZyBob3N0OworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERP
TVN0cmluZyBob3N0bmFtZTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJp
YnV0ZSBET01TdHJpbmcgcGF0aG5hbWU7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBvcnQ7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb3RvY29sOworICAgICAgICBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBzZWFyY2g7CiAKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgb3JpZ2luOwor
ICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBvcmlnaW47CiAjZW5kaWYKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHRleHQ7CkBAIC03MCw0ICs3MCw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCmluZGV4
IDhmMTZhNDAwZmNmN2Y1OTY2YzkwNjc5MWEyNjc2Y2MwMTZlYjA4MTQuLjcwN2IxODViOTc0NDFj
ODUwZjcxMTJhOWY1NmFlYmI2MDlkODBlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFw
cGxldEVsZW1lbnQuaWRsCkBAIC0yMCwzMCArMjAsMzAgQEAKIAogbW9kdWxlIGh0bWwgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyLAogICAgICAg
ICBKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IsCiAgICAgICAgIEN1c3Rv
bUNhbGwKLSAgICBdIEhUTUxBcHBsZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgYWx0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBhcmNoaXZlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2Rl
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2RlQmFzZTsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OworICAgIF0gaW50ZXJmYWNl
IEhUTUxBcHBsZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgYWx0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhcmNoaXZl
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjb2RlOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjb2RlQmFzZTsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgaGVpZ2h0OwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBoc3BhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGhzcGFjZTsKICNlbHNlCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyBoc3BhY2U7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyBoc3BhY2U7CiAjZW5kaWYKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgb2JqZWN0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBv
YmplY3Q7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZB
U0NSSVBUCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZzcGFjZTsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdnNwYWNlOwogI2Vsc2UKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZzcGFjZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBsb25nIHZzcGFjZTsKICNlbmRpZgotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB3aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
d2lkdGg7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmlkbAppbmRleCBkZmI5YzliNWQ4YmIyODUzNzc1ZmNmNDlmZjY1MWQyMWQ3YWY2NjA2Li4xYzJl
MTQ1YWY0YmMxOTA5M2UzNDk2ZTdmM2M4ZjE5NzRmODViYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXJlYUVsZW1lbnQuaWRsCkBAIC0yMSwxNiArMjEsMTYgQEAKIG1vZHVsZSBodG1sIHsK
IAogICAgIGludGVyZmFjZSBIVE1MQXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgY29vcmRzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVS
TF0gRE9NU3RyaW5nIGhyZWY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBu
b0hyZWY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHBpbmc7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNoYXBlOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0YXJnZXQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFsdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
Y29vcmRzOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBub0hyZWY7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBpbmc7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHNoYXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyB0YXJnZXQ7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5H
VUFHRV9PQkpFQ1RJVkVfQwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBh
Y2Nlc3NLZXk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tl
eTsKICNlbmRpZgogICAgICAgICAvLyBJRSBFeHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKQEAgLTQ3LDQgKzQ3LDQgQEAgbW9kdWxlIGh0bWwgewog
I2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEF1ZGlvRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1l
bnQuaWRsCmluZGV4IDFhZGYwMWM0NjE2NjlmMjM3ZDFjNmJhMmRjYzJlZTA0ZTc4OGY4MjIuLmI4
MGYyZDZkZWU0NmE3NWYwNDRjZWJhYTI3ZjNjOWI3NzVlOGZlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAogbW9k
dWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBBY3RpdmVET01PYmpl
Y3QsCiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPLAotICAgICAgICBOYW1lZENvbnN0cnVjdG9y
PUF1ZGlvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjKQot
ICAgIF0gSFRNTEF1ZGlvRWxlbWVudCA6IEhUTUxNZWRpYUVsZW1lbnQgeworICAgICAgICBOYW1l
ZENvbnN0cnVjdG9yPUF1ZGlvKFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBET01T
dHJpbmcgc3JjKQorICAgIF0gaW50ZXJmYWNlIEhUTUxBdWRpb0VsZW1lbnQgOiBIVE1MTWVkaWFF
bGVtZW50IHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJSRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRs
CmluZGV4IGE2ZDIxNWQ1MzQxMGFmYTg3NDA1MjM2YjhiYWZiMjllODhkMWZhYmEuLmI1MDRhMTBh
ZDcyMTRiZTM2NGNmMzc5YmJmYWJlMjBhOGFkYzM1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QlJFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIEhUTUxCUkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIGNsZWFyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBjbGVhcjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFz
ZUVsZW1lbnQuaWRsCmluZGV4IDI3NTBjOWVlOGM0NGI4YmQ1Y2Y1ODcyNjI4MGEyN2UzMDNlNDI1
NzIuLjg5ZmM2NGYyMTYwMTBhYjZiZDU0OWMyZDI4NGI2MDAwZjQ1MWZjMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5pZGwKQEAgLTIwLDggKzIwLDggQEAKIG1vZHVsZSBo
dG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQmFzZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaHJlZjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OworICAgICAgICBbUmVmbGVjdCwg
VVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHRhcmdldDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGwKaW5kZXggOTViYzkyYzM3MDAzNGU3M2I3ZDFmNWIw
MWMzNGQwODhlYzA2NmVkNS4uOGI4MjNiM2Y4Njg2M2ZlNmNlZTQxOTkzNjM5NmM1NDFkYTY1MGJi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRsCkBAIC0y
MCwxMiArMjAsMTIgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQmFzZUZv
bnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBjb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZmFj
ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29sb3I7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2U7CiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgc2l6ZTsgLy8gdGhpcyBjaGFuZ2VkIHRvIGEgbG9uZywgYnV0
IG91ciBleGlzdGluZyBBUEkgaXMgYSBzdHJpbmcKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgc2l6ZTsgLy8gdGhpcyBjaGFuZ2VkIHRvIGEgbG9uZywgYnV0IG91ciBleGlz
dGluZyBBUEkgaXMgYSBzdHJpbmcKICNlbHNlCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
bG9uZyBzaXplOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGxvbmcgc2l6ZTsKICNlbmRp
ZgogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCmlu
ZGV4IGE2YjdmNTY3ZDk1ZTJiZjdkYjU1NmI5YWQ1OTljYWNmY2I5NDE3ZWIuLmIwNWEzOWIzNGUz
MzMxNzdiNjBhNTcwZjhlMTNkYmExMDgwYTAzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5pZGwKQEAgLTIxLDM5ICsyMSwzOSBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxCb2R5RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYUxpbms7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGJhY2tncm91bmQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGJnQ29sb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGxp
bms7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRleHQ7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZMaW5rOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBhTGluazsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgYmFja2dyb3VuZDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgYmdDb2xvcjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGluazsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdkxpbms7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8vIEV2ZW50
IGhhbmRsZXIgYXR0cmlidXRlcwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpT
V2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmJlZm9yZXVubG9hZDsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50
TGlzdGVuZXIgb25oYXNoY2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUs
IEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbm1lc3NhZ2U7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExp
c3RlbmVyIG9ub2ZmbGluZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dp
bmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25vbmxpbmU7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVy
IG9ucG9wc3RhdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dF
dmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ucmVzaXplOwotICAgICAgICBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnN0
b3JhZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExp
c3RlbmVyXSBFdmVudExpc3RlbmVyIG9udW5sb2FkOworICAgICAgICBbTm90RW51bWVyYWJsZSwg
SlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJlZm9yZXVu
bG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOworICAgICAgICBbTm90RW51bWVyYWJs
ZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1lc3Nh
Z2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ub2ZmbGluZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpT
V2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25vbmxpbmU7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ucG9wc3RhdGU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRv
d0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVzaXplOworICAgICAg
ICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnN0b3JhZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50
TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udW5sb2FkOwogCi0gICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9T1JJRU5UQVRJT05fRVZFTlRTLCBOb3RFbnVtZXJhYmxlLCBK
U1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5nZTsK
KyAgICAgICAgW0NvbmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5UUywgTm90RW51bWVyYWJsZSwg
SlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm9yaWVudGF0
aW9uY2hhbmdlOwogCiAgICAgICAgIC8vIE92ZXJyaWRlcyBvZiBFbGVtZW50IGF0dHJpYnV0ZXMg
KHdpdGggZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIGluIGJpbmRpbmdzKS4KLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVu
ZXIgb25ibHVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZl
bnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmZvY3Vz
OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5l
cl0gRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRv
d0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmx1cjsKKyAgICAgICAg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25lcnJvcjsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0
ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKKyAgICAgICAgW05vdEVudW1l
cmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25s
b2FkOwogCiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQuCi0gICAgICAgIC8vIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVy
IG9uYWZ0ZXJwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dp
bmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwcmludDsKLSAgICAgICAg
Ly8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50
TGlzdGVuZXIgb25yZWRvOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpT
V2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnVuZG87CisgICAgICAgIC8vIFtO
b3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uYWZ0ZXJwcmludDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZl
bnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwcmludDsKKyAgICAg
ICAgLy8gW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25yZWRvOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dF
dmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVuZG87CiAjZW5kaWYKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApp
bmRleCAwMmU5MWFiZWYwM2E1ZGVhODMwNDMzNWQ5NzczNzJiNzU1NTczODc0Li5lZGExYTU1NDhl
NzVlZTBhYjY1MTNjZThmODVjNmNlYjBiZDNlYzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbApAQCAtMjEsMzIgKzIxLDMyIEBACiBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBib29sZWFuIGF1dG9mb2N1czsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFu
IGRpc2FibGVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZv
cm07Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgZm9ybUFjdGlv
bjsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
Zm9ybUVuY3R5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIGZvcm1NZXRob2Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBmb3JtTm9WYWxpZGF0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
Zm9ybVRhcmdldDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsK
LSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlw
ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdmFsdWU7CisgICAgICAg
IFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAg
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybUVuY3R5cGU7
CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZv
cm1NZXRob2Q7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBmb3JtTm9WYWxp
ZGF0ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybVRhcmdldDsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5
KCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKKyAg
ICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJl
YXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAKICNpZiBkZWZpbmVkKExBTkdV
QUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgdm9pZCBjbGlj
aygpOwogI2VuZGlmCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuaWRsCmluZGV4IDJiZTk2YTU1NjI3ZGQyZGE4ODJlM2ZjZjNkMDNiMTk1OTM1YjRh
ZTYuLjM4NGJkY2YxMGRkZTJlMTRkYzA0MzhmYTBiOWJlOGM1ZTNlZGJiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCkBAIC0yNiwyMyArMjYsMjMgQEAKIAog
bW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdAotICAgIF0gSFRNTENhbnZhc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CisgICAgXSBpbnRlcmZhY2UgSFRNTENhbnZhc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKICAg
ICAgICAgYXR0cmlidXRlIGxvbmcgd2lkdGg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGhlaWdo
dDsKIAotICAgICAgICBbQ3VzdG9tXSBET01TdHJpbmcgdG9EYXRhVVJMKGluIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZSkKKyAgICAgICAgW0N1c3RvbV0gRE9NU3RyaW5n
IHRvRGF0YVVSTChbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxs
U3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGUpCiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdF
X0NQUCkgfHwgIUxBTkdVQUdFX0NQUAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgLy8gVGhlIGN1c3RvbSBiaW5kaW5n
IGlzIG5lZWRlZCB0byBoYW5kbGUgY29udGV4dCBjcmVhdGlvbiBhdHRyaWJ1dGVzLgotICAgICAg
ICBbQ3VzdG9tXSBET01PYmplY3QgZ2V0Q29udGV4dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgY29udGV4dElkKTsKKyAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0
IGdldENvbnRleHQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNv
bnRleHRJZCk7CiAjZW5kaWYKICNlbmRpZgogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKaW5kZXggZWZkOTFjNzJjMjYxYjQyNjkwMWRlMWMzN2Y1
MjNjZjMxODQyMzE3YS4uNTdjYmMxMWVjZTAxMTkyZDc4YWFlZjYxMmM2MmEyYjEzMDRjZjg3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKQEAgLTIwLDIxICsyMCwyMSBA
QAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSW5k
ZXhlZEdldHRlciwKICAgICAgICAgTmFtZWRHZXR0ZXIsCiAgICAgICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEJhc2VSb290LAogICAgICAgICBW
OERlcGVuZGVudExpZmV0aW1lLAogICAgICAgICBPYmpDUG9seW1vcnBoaWMKLSAgICBdIEhUTUxD
b2xsZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBIVE1MQ29sbGVjdGlvbiB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgTm9kZSBpdGVt
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwot
ICAgICAgICBbQ3VzdG9tXSBOb2RlIG5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5vZGUgaXRlbShbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgW0N1c3Rv
bV0gTm9kZSBuYW1lZEl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIG5hbWUpOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKLSAgICAgICAgTm9kZUxpc3QgdGFncyhpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5vZGVMaXN0IHRhZ3MoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWUpOwogI2VuZGlmCiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsCmlu
ZGV4IDFhOTMyNmZiZjEwMDY2OWFlZmE4YjE4MzIwMWI1MTIxZGIyOGI4MjIuLmExMjJhNzllZGVk
N2Y4ZDQxN2RlZWE0MGQwOWRjNDIzZTg2ZDdhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERMaXN0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RExpc3RFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxETGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIGJvb2xlYW4gY29tcGFjdDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwKaW5kZXggMWYzODEwNWY4MWJjMTE5NzU4MTczZjYx
ZWEwNjZjYmM1ZDA2OWViMy4uYWEwN2IzODYyM2RhNzgyMmM4ZDY4YjI0YjdkYmVhOTBmNDE0OThk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaWRsCkBAIC0y
OSw5ICsyOSw5IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIENvbmRpdGlvbmFsPURBVEFMSVNULAotICAgIF0gSFRNTERhdGFMaXN0RWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPURBVEFMSVNUCisgICAgXSBp
bnRlcmZhY2UgSFRNTERhdGFMaXN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIG9wdGlvbnM7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5pZGwKaW5kZXggNWFkOTUwOGM5
OTVhYjViNTZmNjZmNDdjNDAxNDcyYjk4YzQzMTQyOC4uMGQ0NjhhYTI2NGNlNzQyNWFhZjdjYmNl
MGY4Y2MwZGNiNGQwNWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNl
IEhUTUxEZXRhaWxzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBib29sZWFuIG9wZW47CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVh
biBvcGVuOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVj
dG9yeUVsZW1lbnQuaWRsCmluZGV4IGIwOTY5NzQ2YWY0MDQ4YjI3MjZiYjUzZDg3MmNiMmVhODQ2
YjJlNTkuLmNjMTRmZjhhN2Y2YWFmOTljMjkzODBiYTVmNmMwMmM5MGZhMTQ4NDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3
IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTERpcmVjdG9yeUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21w
YWN0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gY29tcGFjdDsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmlkbAppbmRleCA5MGZi
ODRmOGY1ZGViOWM4ZDJkNmNmYjI0OWE0NDcwNjZiOTc4NGNhLi4xNGI4NTQ1YzE1YWUzZmQxNDk0
YTk5MGUwNDcxYzZlNjRmMjgxMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEaXZFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhU
TUxEaXZFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YWxpZ247CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbApp
bmRleCBkZTliNTFkODRmN2NlZDBkY2NjMGIzMjQ4OGY2NmYyOGRjYzc1Mzc3Li5jMjYwYjFjYmQ1
Yjg2YjVmMjI5M2Y3ODY1NTU2YjhmMTFlNTc0MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuaWRsCkBAIC0yMCwxNCArMjAsMTQgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3RvbU5hbWVkR2V0dGVyLAogICAgICAgICBWOEN1
c3RvbVRvSlNPYmplY3QKLSAgICBdIEhUTUxEb2N1bWVudCA6IERvY3VtZW50IHsKKyAgICBdIGlu
dGVyZmFjZSBIVE1MRG9jdW1lbnQgOiBEb2N1bWVudCB7CiAgICAgICAgIFtKU0N1c3RvbSwgVjhD
dXN0b21dIHZvaWQgb3BlbigpOwogICAgICAgICB2b2lkIGNsb3NlKCk7Ci0gICAgICAgIFtDdXN0
b21dIHZvaWQgd3JpdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHRleHQpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHdyaXRlbG4oaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRleHQpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIHdy
aXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0ZXh0KTsKKyAg
ICAgICAgW0N1c3RvbV0gdm9pZCB3cml0ZWxuKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyB0ZXh0KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENv
bGxlY3Rpb24gZW1iZWRzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rp
b24gcGx1Z2luczsKQEAgLTM3LDcgKzM3LDcgQEAgbW9kdWxlIGh0bWwgewogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCBldmVudHVhbGx5IGJlIGF2YWlsYWJsZSAoaWYgdGhleSBhcmUg
d2FudGVkKSBmb3IgYWxsIGxhbmd1YWdlcy4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
dXN0b20sIERlbGV0YWJsZV0gSFRNTEFsbENvbGxlY3Rpb24gYWxsOworICAgICAgICAgICAgICAg
ICBbQ3VzdG9tLCBEZWxldGFibGVdIGF0dHJpYnV0ZSBIVE1MQWxsQ29sbGVjdGlvbiBhbGw7CiAj
ZW5kaWYKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CkBAIC00NywxOSArNDcsMTkgQEAgbW9kdWxl
IGh0bWwgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHdpZHRoOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRpcjsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVzaWdu
TW9kZTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0
ZSBET01TdHJpbmcgZGlyOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gYXR0cmlidXRlIERPTVN0cmluZyBkZXNpZ25Nb2RlOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGNvbXBhdE1vZGU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAgYm9vbGVhbiBoYXNGb2N1cygpOwogCiAg
ICAgICAgIC8vIERlcHJlY2F0ZWQgYXR0cmlidXRlcwotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBiZ0NvbG9yOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmZ0Nv
bG9yOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IERPTVN0cmluZyBhbGlua0NvbG9yOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBsaW5rQ29sb3I7Ci0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZsaW5rQ29sb3I7
CisgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGJnQ29sb3I7CisgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZnQ29sb3I7CisgICAgICAgICAgICAgICAgIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaW5rQ29sb3I7CisgICAgICAg
ICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxp
bmtDb2xvcjsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJp
YnV0ZSBET01TdHJpbmcgdmxpbmtDb2xvcjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmlkbAppbmRleCA0ZjVmMjM2ZjY3NWQzYWI4ZDY1M2FlYTk0YzNmNjUyODcx
MTVmYjU1Li4xZjI4YjVlZGFiYjJkYTAyOWFlNzQ2NGVkN2U3MTk0ZmM4ZjdlYTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmlkbApAQCAtMjAsNzIgKzIwLDcyIEBACiAKIG1vZHVsZSBo
dG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlVG9OYXRp
dmVPYmplY3QsCiAgICAgICAgIEpTQ3VzdG9tUHVzaEV2ZW50SGFuZGxlclNjb3BlLAogICAgICAg
ICBWOEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIEhUTUxFbGVtZW50IDogRWxlbWVudCB7CisgICAg
XSBpbnRlcmZhY2UgSFRNTEVsZW1lbnQgOiBFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgLy8g
aWh0LmNvbSByZWxpZXMgb24gaWQgcmV0dXJuaW5nIHRoZSBlbXB0eSBzdHJpbmcgd2hlbiBubyBp
ZCBpcyBwcmVzZW50LiAKICAgICAgICAgICAgICAgICAgLy8gT3RoZXIgYnJvd3NlcnMgZG8gdGhp
cyBhcyB3ZWxsLiBTbyB3ZSBkb24ndCBjb252ZXJ0IG51bGwgdG8gSlMgbnVsbC4KLSAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQ7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRpdGxlOwotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsYW5nOworICAgICAgICAgICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICAgICAgICAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGU7CisgICAgICAgICAgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmc7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgICAgIHRyYW5zbGF0ZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgZGlyOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3Q9Y2xhc3NdIERPTVN0cmluZyBjbGFzc05hbWU7CisgICAgICAgICAgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcjsKKyAgICAgICAgICAgICAgICAgW1JlZmxlY3Q9
Y2xhc3NdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2xhc3NOYW1lOwogICAgICAgICAgICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0IGNsYXNzTGlzdDsKIAogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgdGFiSW5kZXg7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICBkcmFnZ2FibGU7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdlYmtpdGRyb3B6b25lOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gaGlkZGVuOwotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAg
ICAgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdGRyb3B6b25lOwor
ICAgICAgICAgICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gaGlkZGVuOworICAg
ICAgICAgICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAK
ICAgICAgICAgLy8gRXh0ZW5zaW9ucwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKLSAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJUZXh0Ci0gICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG91dGVySFRN
TAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBvdXRlclRleHQKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0
ZSBET01TdHJpbmcgaW5uZXJIVE1MCisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJUZXh0CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgb3V0ZXJIVE1MCisgICAgICAgICAgICAgICAgICAgICBz
ZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgb3V0ZXJUZXh0CisgICAgICAgICAgICAgICAg
ICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBFbGVtZW50IGluc2VydEFk
amFjZW50RWxlbWVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
d2hlcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIEVsZW1lbnQgZWxlbWVudCkKKyAgICAgICAgRWxlbWVudCBp
bnNlcnRBZGphY2VudEVsZW1lbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHdoZXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBFbGVtZW50IGVsZW1lbnQpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBpbnNlcnRBZGphY2VudEhUTUwo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHdoZXJlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgaHRtbCkKKyAgICAgICAgdm9pZCBpbnNlcnRBZGphY2VudEhUTUwoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHdoZXJlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcgaHRtbCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2
b2lkIGluc2VydEFkamFjZW50VGV4dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgd2hlcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0ZXh0KQorICAgICAgICB2b2lkIGlu
c2VydEFkamFjZW50VGV4dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgd2hlcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0ZXh0KQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IGNoaWxkcmVuOwogCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIGNvbnRlbnRFZGl0YWJsZQotICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50RWRpdGFibGUKKyAgICAg
ICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0NvbnRlbnRFZGl0YWJsZTsKIAogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBzcGVsbGNoZWNrOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQyAvLyBObyBPYmplY3RpdmUtQyBi
aW5kaW5ncyB5ZXQuCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlD
Uk9EQVRBLCBSZWZsZWN0XSBib29sZWFuIGl0ZW1TY29wZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1U
eXBlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwg
UmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaXRlbUlkOworICAgICAgICAgICAgICAgICBbQ29uZGl0
aW9uYWw9TUlDUk9EQVRBLCBSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBpdGVtU2NvcGU7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZXR0
YWJsZVRva2VuTGlzdCBpdGVtVHlwZTsKKyAgICAgICAgICAgICAgICAgW0NvbmRpdGlvbmFsPU1J
Q1JPREFUQSwgUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGl0ZW1JZDsKIAotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gRE9NU2V0dGFi
bGVUb2tlbkxpc3QgaXRlbVJlZjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOworICAgICAgICBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tl
bkxpc3QgaXRlbVJlZjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1Qcm9wOwogCiAjaWYgZGVmaW5lZChF
TkFCTEVfTUlDUk9EQVRBKSAmJiBFTkFCTEVfTUlDUk9EQVRBCi0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24g
cHJvcGVydGllczsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBwcm9wZXJ0aWVzOwogI2VuZGlmCiAjZW5k
aWYKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAogI2lmICFk
ZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIEN1c3RvbV0g
RE9NT2JqZWN0IGl0ZW1WYWx1ZQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBLCBD
dXN0b21dIGF0dHJpYnV0ZSBET01PYmplY3QgaXRlbVZhbHVlCisgICAgICAgICAgICAgICAgICAg
ICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogI2VuZGlmCiAKQEAgLTk2LDQgKzk2
LDQgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkIGNsaWNrKCk7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCmluZGV4IGI2ZTNjMTY2
YTYxN2I4MGI3OWZlMmRkOTU5NmI5MGU4ZWU3MTZkMzQuLjc4MThkNTYwMzEyODQwZTI2ZTA2Njhl
ZjZiYmMwOWQwMjJhMDVjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50
LmlkbApAQCAtMjAsMjQgKzIwLDI0IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDdXN0b21OYW1lZFNldHRlciwKICAgICAgICAgSlNDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yLAogICAgICAgICBDdXN0b21DYWxsCi0gICAg
XSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGFsaWduOworICAgIF0gaW50ZXJmYWNlIEhUTUxFbWJlZEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0g
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OworICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCi0gICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBsb25nIGhlaWdodDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGxvbmcgaGVpZ2h0OwogI2Vu
ZGlmCi0gICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICBhdHRyaWJ1
dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB0eXBlOworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmM7CisgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB3aWR0aDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsK
ICNlbHNlCi0gICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHdpZHRoOworICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfU1ZH
KSAmJiBFTkFCTEVfU1ZHCkBAIC00Nyw0ICs0Nyw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVs
ZFNldEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbAppbmRleCBkNjdiM2Y2NDcyYzYxMmExNmRlNjkzMjk3NjIxNmNjZmRkYjY3ZDIwLi43NDRl
YmY3MDA0ZTE5NDViNzg5MDQzN2QwYjJhY2ExMGZhMTAwYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKQEAgLTIwLDkgKzIwLDkgQEAKIG1vZHVsZSBo
dG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MRmllbGRTZXRFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyBuYW1lOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIApA
QCAtMzIsNiArMzIsNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gIGNoZWNr
VmFsaWRpdHkoKTsKLSAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5n
IGVycm9yKTsKKyAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGVy
cm9yKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvbnRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50Lmlk
bAppbmRleCAxNDE4MTZkMWQyY2EwYTEzOWUzOGRlZjY5ZGE4M2QyODgxNTQ3NDYxLi4xZjIxYzk3
YTVjNzk4YzRmNWViZmM0NGM1N2M2N2QyODY2MzhkNzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9udEVsZW1lbnQuaWRsCkBAIC0yMCw5ICsyMCw5IEBACiBtb2R1bGUgaHRtbCB7CiAKICAg
ICBpbnRlcmZhY2UgSFRNTEZvbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgZmFjZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgc2l6ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29sb3I7Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZhY2U7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpemU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmlkbAppbmRleCBiNmE1MzZjMDg5NmZiZjJhYmMzYTFk
NDc5ZmEyNGVhMzFiZmNlMTE5Li4yNThhNGJjYzE0ZTJjYmRiMjZiMzU3ZDYyMjg1YTA4ZmJlNTA1
YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCkBAIC0yMCwxOSAr
MjAsMTkgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEN1c3RvbU5hbWVkR2V0dGVyCi0gICAgXSBIVE1M
Rm9ybUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1h
Y2NlcHRfY2hhcnNldF0gRE9NU3RyaW5nIGFjY2VwdENoYXJzZXQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgYWN0aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBhdXRvY29tcGxldGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVuY3R5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVuY29kaW5nOwotICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBtZXRob2Q7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBub1ZhbGlkYXRlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyB0YXJnZXQ7CisgICAgXSBpbnRlcmZhY2UgSFRNTEZvcm1FbGVtZW50IDogSFRN
TEVsZW1lbnQgeworICAgICAgICBbUmVmbGVjdD1hY2NlcHRfY2hhcnNldF0gYXR0cmlidXRlIERP
TVN0cmluZyBhY2NlcHRDaGFyc2V0OworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGFjdGlvbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YXV0b2NvbXBsZXRlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRl
IERPTVN0cmluZyBlbmN0eXBlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0
cmlidXRlIERPTVN0cmluZyBlbmNvZGluZzsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgbWV0aG9kOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4g
bm9WYWxpZGF0ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0
OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBlbGVtZW50czsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOwpAQCAtNDUsNCArNDUsNCBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgcmVzZXQoKTsKICAgICAgICAgYm9vbGVhbiBj
aGVja1ZhbGlkaXR5KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmlkbAppbmRleCBmNDBmN2IxYzUzYjg1ZWQ4NjNjNGUyNWM3YjkxMjhhZGI4MTI2
YTI1Li5hMTc3MDJlMDg4MWQwNTJjMDIxNGM3NTFjMjg3NjkxMDY5NWM3MjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwKQEAgLTIyLDE3ICsyMiwxNyBAQCBtb2R1
bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKIAotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmcmFtZUJvcmRlcjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbG9uZ0Rlc2M7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1hcmdpbkhlaWdodDsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWFyZ2luV2lkdGg7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
Ym9vbGVhbiBub1Jlc2l6ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
c2Nyb2xsaW5nOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNy
YzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZnJhbWVCb3JkZXI7Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvbmdEZXNjOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBtYXJnaW5IZWlnaHQ7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1hcmdpbldpZHRoOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJv
b2xlYW4gbm9SZXNpemU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNj
cm9sbGluZzsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmM7
CiAKICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gRG9jdW1lbnQgY29udGVudERvY3Vt
ZW50OworICAgICAgICBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
b2N1bWVudCBjb250ZW50RG9jdW1lbnQ7CiAKICAgICAgICAgLy8gRXh0ZW5zaW9ucwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93IGNvbnRlbnRXaW5kb3c7CkBAIC00NCwxMSAr
NDQsMTEgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAjZW5kaWYKIAotICAgICAgICBhdHRyaWJ1
dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIEN1c3RvbVNldHRlcl0gRE9NU3RyaW5nIGxvY2F0
aW9uOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgQ3VzdG9tU2V0dGVyXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGxvY2F0aW9uOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CiAKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5p
ZGwKaW5kZXggYTNkNGIzZWM0MmNlNTY2NzVhYzVhYzk0ODg1MDAxNTk3ZmU5OGU2OC4uZjYwMmMw
YTE1MThkYWFiODEwNGEyZTY1MWFmNGI4ZmUwN2M5MjUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCkBAIC0yMCwzOCArMjAsMzggQEAKIAogbW9kdWxl
IGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3RvbU5hbWVkR2V0
dGVyCi0gICAgXSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2xzOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyByb3dzOworICAgIF0gaW50ZXJmYWNlIEhUTUxGcmFtZVNldEVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNvbHM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJvd3M7CiAKICNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIC8vIEV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwotICAgICAgICBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmJl
Zm9yZXVubG9hZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBv
bm1lc3NhZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVu
dExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ub2ZmbGluZTsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25vbmxp
bmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3Rl
bmVyXSBFdmVudExpc3RlbmVyIG9ucG9wc3RhdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ucmVzaXplOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0g
RXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9udW5sb2FkOworICAgICAg
ICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmJlZm9yZXVubG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93
RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25oYXNoY2hhbmdlOworICAg
ICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbm1lc3NhZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ub2ZmbGluZTsKKyAgICAgICAg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25vbmxpbmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlz
dGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucG9wc3RhdGU7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ucmVzaXplOworICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVy
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udW5s
b2FkOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9T1JJRU5UQVRJT05fRVZFTlRT
LCBOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25v
cmllbnRhdGlvbmNoYW5nZTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5U
UywgTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbm9yaWVudGF0aW9uY2hhbmdlOwogCiAgICAgICAgIC8vIE92ZXJyaWRlcyBvZiBF
bGVtZW50IGF0dHJpYnV0ZXMgKHdpdGggZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIGluIGJpbmRp
bmdzKS4KLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlz
dGVuZXJdIEV2ZW50TGlzdGVuZXIgb25ibHVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZl
bnRMaXN0ZW5lciBvbmZvY3VzOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpT
V2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uYmx1cjsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKyAgICAgICAgW05vdEVudW1lcmFibGUs
IEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25mb2N1czsK
KyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25sb2FkOwogCiAgICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCB5ZXQu
Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3Rl
bmVyXSBFdmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25iZWZv
cmVwcmludDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25yZWRvOwotICAgICAgICAvLyBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnVu
ZG87CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYWZ0ZXJwcmludDsKKyAgICAgICAgLy8gW05vdEVudW1l
cmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25i
ZWZvcmVwcmludDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0
ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWRvOworICAgICAgICAvLyBbTm90RW51
bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bnVuZG87CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSFJFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxl
bWVudC5pZGwKaW5kZXggMjNhNTdkYTEwZDFiZTRiMDZjYjg3NzA1MTdhYWQwMThjMDc2NjhlZC4u
MGVlOTMwYjQzMzk4ODAxZDdhYTQ2MDhkZDU3M2M4YTU2OWI2OGE2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxIUkVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsMTAgQEAKIG1vZHVsZSBodG1sIHsK
IAogICAgIGludGVyZmFjZSBIVE1MSFJFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBib29sZWFuIG5vU2hhZGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIHNpemU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRo
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIG5vU2hhZGU7CisgICAgICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHNpemU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHdpZHRoOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxIZWFkRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFk
RWxlbWVudC5pZGwKaW5kZXggNTliZGJmMGU3ZWI5NmU0ZGYzMTI4ZDFmMDI0ZWY3OGU5N2VmNTdl
YS4uNzJhOTM2MDIzNDZjYmFkOGMxZTVmYTVmZmQ1YzZiN2UyYTRjNWQwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0
bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxIZWFkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcHJvZmlsZTsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZmlsZTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuaWRsCmluZGV4IGU0MTljMWM3ZGFh
MDI5Njg0NWJkNzBlOWU3Nzg1ZDM0YTljZmExOTguLjE3ZjBiOGRkMTdhZmM2YWIyNjYwYjc0NjNl
YTNlNWVmMGMxZjcxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRp
bmdFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVu
dC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBI
VE1MSGVhZGluZ0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBhbGlnbjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSHRtbEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVs
ZW1lbnQuaWRsCmluZGV4IDAzYzY2MWNjODJjMzk2NjZlYzMyMGZjMDQ3MGZmNWY0NDk4OTEwMjcu
LjgyZDdiNzVmYTlkMjNlOTZmMzZmYzMzMjBlMmViMWFmY2FjZjdkOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxIdG1sRWxlbWVudC5pZGwKQEAgLTIwLDggKzIwLDggQEAKIG1vZHVsZSBodG1s
IHsKIAogICAgIGludGVyZmFjZSBIVE1MSHRtbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZlcnNpb247Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgbWFuaWZlc3Q7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0
dHJpYnV0ZSBET01TdHJpbmcgbWFuaWZlc3Q7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwKaW5kZXggMmRiZjM4ZGJlZDMxNzYwODkwZjE3
OTVhMWJkZDE2Y2Y1ZTk5ZmI5ZC4uYWQzYzY3MjQ5YjRhODc3M2RjYTY1YjBiOGRmMDdjODBiNDlm
ODg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5pZGwKQEAgLTIx
LDIyICsyMSwyMiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxJRnJhbWVF
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZnJhbWVC
b3JkZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhlaWdodDsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbG9uZ0Rlc2M7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1hcmdpbkhlaWdodDsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWFyZ2luV2lkdGg7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIHNhbmRib3g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgQ29uZGl0aW9uYWw9
SUZSQU1FX1NFQU1MRVNTXSBib29sZWFuIHNlYW1sZXNzOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBzY3JvbGxpbmc7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwg
VVJMXSBET01TdHJpbmcgc3JjOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBzcmNkb2M7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOwor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZnJhbWVCb3JkZXI7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhlaWdodDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgbG9uZ0Rlc2M7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG1hcmdpbkhlaWdodDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
bWFyZ2luV2lkdGg7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNhbmRib3g7CisgICAgICAg
IFtSZWZsZWN0LCBDb25kaXRpb25hbD1JRlJBTUVfU0VBTUxFU1NdIGF0dHJpYnV0ZSBib29sZWFu
IHNlYW1sZXNzOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzY3JvbGxp
bmc7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmNkb2M7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0
eUZvck5vZGVdIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKKyAgICAgICAgW0NoZWNrU2VjdXJp
dHlGb3JOb2RlXSByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgY29udGVudERvY3VtZW50Owog
CiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVdp
bmRvdyBjb250ZW50V2luZG93OwpAQCAtNDksNCArNDksNCBAQCBtb2R1bGUgaHRtbCB7CiAjZW5k
aWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5p
ZGwKaW5kZXggZDg5M2I2YzBjOTExOTc5M2ZmYmMxNjBkMjMxZTRjYzE0OWRlMWI1OC4uNzgzNzUx
ODg4NTU1YTVlYWRlMWEzYmNiMGUwYjY0MGQ4MWIzZjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuaWRsCkBAIC0yMCwyNiArMjAsMjYgQEAKIAogbW9kdWxlIGh0bWwg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9i
amVjdAotICAgIF0gSFRNTEltYWdlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGFsdDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYm9yZGVyOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjcm9zc09yaWdpbjsKKyAgICBd
IGludGVyZmFjZSBIVE1MSW1hZ2VFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgYWx0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBib3JkZXI7Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNyb3NzT3JpZ2luOwogICAgICAg
ICBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9u
ZyBoc3BhY2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBpc01hcDsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBsb25nRGVzYzsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBsb25nIHZzcGFjZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBsb25nIGhzcGFj
ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGlzTWFwOworICAgICAgICBb
UmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvbmdEZXNjOworICAgICAgICBbUmVm
bGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdXNlTWFwOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGxv
bmcgdnNwYWNlOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICAgICAgCiAgICAg
ICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29t
cGxldGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCxVUkxdIERPTVN0cmluZyBsb3dzcmM7
CisgICAgICAgIFtSZWZsZWN0LFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBsb3dzcmM7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG5hdHVyYWxIZWlnaHQ7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nIG5hdHVyYWxXaWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgeDsKQEAgLTUyLDQgKzUyLDQgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4
IGUzMjZjZTdiZTI2MWUwODAxMzM3OTNiYTJhNjUwODY1OTFiMDVjNWYuLjgxZTQxMmFlOTFkMTYw
MzRhZjE5NDgyNzA2ZjI0OTA2ZGFlNDhjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbApAQCAtMjIsODMgKzIyLDgzIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBp
bnRlcmZhY2UgSFRNTElucHV0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXB0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGF1dG9jb21wbGV0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9m
b2N1czsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoZWNrZWRdIGJvb2xlYW4gZGVmYXVs
dENoZWNrZWQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2VwdDsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWx0OworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhdXRvY29tcGxldGU7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CisgICAgICAgIFtSZWZsZWN0PWNoZWNrZWRd
IGF0dHJpYnV0ZSBib29sZWFuIGRlZmF1bHRDaGVja2VkOwogICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBjaGVja2VkOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBkaXJO
YW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpck5hbWU7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1dGUgRmlsZUxpc3QgZmls
ZXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgZm9ybUFjdGlv
bjsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
Zm9ybUVuY3R5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIGZvcm1NZXRob2Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBmb3JtTm9WYWxpZGF0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
Zm9ybVRhcmdldDsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBm
b3JtQWN0aW9uOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERP
TVN0cmluZyBmb3JtRW5jdHlwZTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgZm9ybU1ldGhvZDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBib29sZWFuIGZvcm1Ob1ZhbGlkYXRlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBmb3JtVGFyZ2V0OwogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoZWln
aHQ7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGluZGV0ZXJtaW5hdGU7Ci0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKLSAgICAgICAgYXR0
cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWluOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gbXVsdGlwbGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHBh
dHRlcm47Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHBsYWNlaG9sZGVy
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVhZE9ubHk7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZXF1aXJlZDsKKyAgICAgICAgW0NvbmRpdGlv
bmFsPURBVEFMSVNUXSByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgbGlzdDsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbWF4OworICAgICAgICBhdHRyaWJ1dGUg
bG9uZyBtYXhMZW5ndGggc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1pbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBi
b29sZWFuIG11bHRpcGxlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBu
YW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBwYXR0ZXJuOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBwbGFjZWhvbGRlcjsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHJlYWRPbmx5OworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gcmVxdWlyZWQ7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJ
VkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmlidXRlIFtPYmpDSW1w
bGVtZW50ZWRBc1Vuc2lnbmVkTG9uZ10gRE9NU3RyaW5nIHNpemU7IC8vIERPTSBsZXZlbCAyIGNo
YW5nZWQgdGhpcyB0byBhIGxvbmcsIGJ1dCBPYmpDIEFQSSBpcyBhIHN0cmluZworICAgICAgICBb
T2JqQ0ltcGxlbWVudGVkQXNVbnNpZ25lZExvbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgc2l6ZTsg
Ly8gRE9NIGxldmVsIDIgY2hhbmdlZCB0aGlzIHRvIGEgbG9uZywgYnV0IE9iakMgQVBJIGlzIGEg
c3RyaW5nCiAjZWxzZQogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzaXplOyAvLyBD
aGFuZ2VkIHN0cmluZyAtPiBsb25nIC0+IHVuc2lnbmVkIGxvbmcKICNlbmRpZgotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgc3RlcDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0
IG9mIERPTSBsZXZlbCAyCi0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0
dHJpYnV0ZSBET01TdHJpbmcgc3JjOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBzdGVwOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERP
TVN0cmluZyB0eXBlOyAvLyByZWFkb25seSBkcm9wcGVkIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIK
KyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVm
YXVsdFZhbHVlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERP
TVN0cmluZyB2YWx1ZTsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9D
UFAKLSAgICAgICAgYXR0cmlidXRlIERhdGUgdmFsdWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICNlbmRpZgotICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIHZhbHVlQXNO
dW1iZXIgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgZG91
YmxlIHZhbHVlQXNOdW1iZXIgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9p
ZCBzdGVwVXAoaW4gW09wdGlvbmFsXSBsb25nIG4pIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHN0ZXBEb3duKGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzdGVwVXAoW09wdGlvbmFsXSBpbiBsb25nIG4pIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHN0ZXBEb3duKFtPcHRpb25hbF0gaW4gbG9uZyBu
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRl
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAg
ICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFs
aWRpdHkoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0
cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShb
VHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBE
T01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBs
YWJlbHM7CiAKICAgICAgICAgdm9pZCBzZWxlY3QoKTsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0
b21dIGxvbmcgc2VsZWN0aW9uU3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25n
IHNlbGVjdGlvbkVuZDsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIERPTVN0cmluZyBzZWxl
Y3Rpb25EaXJlY3Rpb247CisgICAgICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlv
blN0YXJ0OworICAgICAgICBbQ3VzdG9tXSBhdHRyaWJ1dGUgbG9uZyBzZWxlY3Rpb25FbmQ7Cisg
ICAgICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBET01TdHJpbmcgc2VsZWN0aW9uRGlyZWN0aW9uOwog
I2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gbG9uZyBzdGFydCwg
aW4gbG9uZyBlbmQpOwogI2Vsc2UKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRTZWxlY3Rpb25S
YW5nZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIGVuZCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKTsKKyAgICAgICAgW0N1c3Rv
bV0gdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBsb25nIHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGVuZCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgZGlyZWN0
aW9uKTsKICNlbmRpZgogCiAgICAgICAgIC8vIE5vbi1zdGFuZGFyZCBhdHRyaWJ1dGVzCi0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPURJUkVDVE9SWV9VUExPQUQsIFJlZmxlY3RdIGJvb2xlYW4gd2Via2l0
ZGlyZWN0b3J5OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBpbmNyZW1lbnRhbDsKLSAgICAg
ICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gsIFJlZmxlY3QsIFY4RW5hYmxl
ZEF0UnVudGltZV0gYm9vbGVhbiB3ZWJraXRTcGVlY2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9SU5QVVRfU1BFRUNILCBSZWZsZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGJvb2xl
YW4gd2Via2l0R3JhbW1hcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1JTlBVVF9T
UEVFQ0gsIE5vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb253ZWJraXRzcGVlY2hjaGFuZ2U7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWduOworICAgICAgICBb
Q29uZGl0aW9uYWw9RElSRUNUT1JZX1VQTE9BRCwgUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4g
d2Via2l0ZGlyZWN0b3J5OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB1
c2VNYXA7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBpbmNyZW1lbnRhbDsK
KyAgICAgICAgW0NvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSCwgUmVmbGVjdCwgVjhFbmFibGVkQXRS
dW50aW1lXSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRTcGVlY2g7CisgICAgICAgIFtDb25kaXRp
b25hbD1JTlBVVF9TUEVFQ0gsIFJlZmxlY3QsIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRl
IGJvb2xlYW4gd2Via2l0R3JhbW1hcjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUlOUFVUX1NQRUVD
SCwgTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRzcGVlY2hj
aGFuZ2U7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9P
QkpFQ1RJVkVfQwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NL
ZXk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKICNl
bmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JK
RUNUSVZFX0MKQEAgLTEwNiw3ICsxMDYsNyBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKIAogI2lm
ICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCi0g
ICAgICAgIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBE
T01TdHJpbmcgdmFsdWUpOworICAgICAgICB2b2lkIHNldFZhbHVlRm9yVXNlcihbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHZhbHVlKTsKICNlbmRpZgogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKQEAgLTExNiw2
ICsxMTYsNiBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKIAogICAgICAgICAvLyBTZWUgaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbC1tZWRpYS1jYXB0dXJlLwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPU1FRElBX0NBUFRVUkVdIERPTVN0cmluZyBjYXB0dXJlOworICAgICAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfQ0FQVFVSRV0gYXR0cmlidXRlIERPTVN0cmluZyBjYXB0dXJlOwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW50ZW50RWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnRlbnRFbGVtZW50LmlkbAppbmRl
eCA2MDhjNWFjZGQ4MzhkZjU4NGYyYjc3NGJkMjU4YzkyNzZiYzgyMDJmLi4xNjdiM2JjZGQ1MDA0
MWQxYjM1N2MzZWQ3YmY0MTc3ODcyYjlkMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnRlbnRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnRlbnRFbGVtZW50LmlkbApAQCAtMjUsMTQgKzI1LDE0IEBACiAKIG1vZHVsZSBodG1sIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UU19U
QUcKLSAgICBdIEhUTUxJbnRlbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhY3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBE
T01TdHJpbmcgaHJlZjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGl0
bGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGRpc3Bvc2l0aW9uOwor
ICAgIF0gaW50ZXJmYWNlIEhUTUxJbnRlbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhY3Rpb247CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJp
YnV0ZSBET01TdHJpbmcgaHJlZjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdGl0bGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpc3Bvc2l0
aW9uOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxLZXlnZW5FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1l
bnQuaWRsCmluZGV4IGZjNmYyNWM4MTQxMzQ2MzU1NThlMzQ0MDk2OGQ0ZmJlY2U1MDI5NTYuLjU2
ZWY3ZDMxMDQzZTcwNzJhYjRlZjViMGMyYWMxOTAzM2JlYTkzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaWRsCkBAIC0zMSwxMiArMzEsMTIgQEAKIG1vZHVsZSBo
dG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MS2V5Z2VuRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY2hhbGxlbmdlOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgYm9vbGVhbiBhdXRvZm9jdXM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGNoYWxsZW5nZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2Fi
bGVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGtleXR5cGU7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGtleXR5cGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG5hbWU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBl
OwogCkBAIC00NCw5ICs0NCw5IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxp
ZGl0eSgpOwotICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7
CisgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGVycm9yKTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbAppbmRleCAyZGM1NDFiMThiMzQyYzQ4
MWNkNTc4MjA4NDU3M2FjM2ZiNjY4YmNiLi4zMjFkMjk5ZWM3NmU2ZGEzMWJlNWQwNmY5N2IyY2Qy
Y2YwZjc3MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5pZGwKQEAgLTIwLDgg
KzIwLDggQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTElFbGVtZW50IDog
SFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBl
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgdmFsdWU7ICAgIAorICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIGxvbmcgdmFsdWU7ICAgIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmlkbAppbmRleCBiZjc5NjgwZjhmMGRhMTAyN2RmZTY3OTJkNzc1
OTQ3Y2YxMzdlZjBhLi4zYTk2NzcwMDM4NzYxM2ZjYTQxOTQ5OTdhNWIxMTE3NDdlNmJlN2FhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwKQEAgLTIyLDExICsyMiwx
MSBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTExhYmVsRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBm
b3JtOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9yXSBET01TdHJpbmcgaHRtbEZvcjsK
KyAgICAgICAgW1JlZmxlY3Q9Zm9yXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGh0bWxGb3I7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRWxlbWVudCBjb250cm9sOwogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2Vzc0tleTsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5OwogI2VuZGlmCiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGwKaW5kZXggYmY3NTVhNWJi
ODk5MzhlYmU0NTgxNTQzYzZhMTM1ZTAwOGYyZGZjMy4uYTNlMDU2N2VhNTRjYWZkMDRiZGZhNDlm
MTBjMWNiNmQwMGU1NmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVn
ZW5kRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVu
dC5pZGwKQEAgLTIyLDEwICsyMiwxMCBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2Ug
SFRNTExlZ2VuZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFs
aWduOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVD
VElWRV9DCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFjY2Vzc0tleTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5OwogI2VuZGlm
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExp
bmtFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbApp
bmRleCA4ZDE2ZjI1ZTg4NTE0ZGY2N2FlMjg3ODE4YWU4NDYyMzNiYTEyNDk2Li5kM2U2MTAxODk0
YWYyMTI5NTVlZTc0NzgwNjk0ODRkZjVjOGNmYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TGlua0VsZW1lbnQuaWRsCkBAIC0yMiwxOCArMjIsMTggQEAKIG1vZHVsZSBodG1sIHsKIAogICAg
IGludGVyZmFjZSBIVE1MTGlua0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxlZDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxd
IERPTVN0cmluZyBocmVmOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBo
cmVmbGFuZzsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWVkaWE7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJlbDsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmV2OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNoYXJzZXQ7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJl
ZjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJlZmxhbmc7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyByZWw7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHJldjsKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdV
QUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIERPTVNldHRhYmxlVG9r
ZW5MaXN0IHNpemVzOworICAgICAgICBbQ3VzdG9tXSBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tl
bkxpc3Qgc2l6ZXM7CiAjZW5kaWYKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgdGFyZ2V0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXQ7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAKICAgICAgICAgLy8gRE9NIExldmVs
IDIgU3R5bGUKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQgc2hlZXQ7CkBA
IC00NCw0ICs0NCw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCmluZGV4IDc4MTFjOWE5ZmRmNDM4Y2I5
MjA5YTI2MzczZTY3Yjg4MDY3YTViNmUuLmU1NzY0Y2I5NTA2MDdmYWUyMDk3MWFlNGI3ODY5YWE5
NWY2YmEyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCkBAIC0yMiw3
ICsyMiw3IEBAIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTWFwRWxlbWVudCA6
IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IGFyZWFzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwKaW5kZXggMzE3NGZh
Y2JjM2M1YzZjYWIxZGNhMTUxMmYxM2NiY2E4YjAzMmViNy4uY2IxMTJmYzZlMmQzYTU2ZTQ4YjVj
YjliMTYwOGRmOGY5NDI1NDg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVF
bGVtZW50LmlkbApAQCAtMjMsMTcgKzIzLDE3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9p
ZCBzdGFydCgpOwogICAgICAgICB2b2lkIHN0b3AoKTsKICAgICAgICAgCi0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJlaGF2aW9yOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBkaXJlY3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGhlaWdodDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSB1bnNpZ25lZCBsb25nIGhzcGFj
ZTsKLSAgICAgICAgYXR0cmlidXRlIGxvbmcgbG9vcCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25nIHNjcm9sbEFtb3VudCBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25nIHNjcm9sbERlbGF5IHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFu
IHRydWVTcGVlZDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSB1bnNpZ25lZCBsb25nIHZz
cGFjZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJlaGF2aW9yOworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBiZ0NvbG9yOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyBkaXJlY3Rpb247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGhlaWdodDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGhzcGFjZTsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcgbG9vcCBzZXRyYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcgc2Nyb2xsQW1vdW50IHNldHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxEZWxheSBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHRy
dWVTcGVlZDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHZzcGFj
ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2lkdGg7CiAKICAgICAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGUgZm9sbG93aW5nIGV2ZW50IGhhbmRsZXIgYXR0cmli
dXRlcwogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDk3ODgKQEAgLTQxLDQgKzQxLDQgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvLyBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmZpbmlzaDsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25zdGFydDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaWRsCmluZGV4IGFjMGZhNDY3YjQwNDllMTYzZTkwY2I2YjYzZmEzMzdhY2JjMmUy
NjQuLjBmMDMwNWRiYzY1OWFiOGM4MDU1OTc3YjllY2IwMzBkMGY1Y2YyNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbApAQCAtMjQsMTcgKzI0LDE3IEBACiAgKi8K
IAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1WSURFTywKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0Ci0gICAgXSBIVE1M
TWVkaWFFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIEhUTUxNZWRpYUVs
ZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKICAgICAvLyBlcnJvciBzdGF0ZQogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBNZWRpYUVycm9yIGVycm9yOwogCiAgICAgLy8gbmV0d29yayBzdGF0ZQotICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbVVJMXSBET01TdHJpbmcgY3VycmVudFNyYzsKKyAgICBbUmVmbGVjdCwgVVJMXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAgICBbVVJMXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGN1cnJlbnRTcmM7CiAgICAgCiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVUV09S
S19FTVBUWSA9IDA7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTkVUV09SS19JRExFID0gMTsK
QEAgLTQ3LDkgKzQ3LDkgQEAgbW9kdWxlIGh0bWwgewogICAgIHZvaWQgbG9hZCgpIAogICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjaWYgZGVmaW5lZChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAmJiBFTkFCTEVfRU5DUllQVEVEX01FRElBCi0gICAgRE9NU3RyaW5nIGNhblBsYXlUeXBl
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBlLCBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZywgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRV
bmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcga2V5U3lzdGVtKTsKKyAgICBET01TdHJp
bmcgY2FuUGxheVR5cGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IHR5cGUsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nLCBUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBrZXlTeXN0ZW0p
OwogI2Vsc2UKLSAgICBET01TdHJpbmcgY2FuUGxheVR5cGUoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUpOworICAgIERPTVN0cmluZyBjYW5QbGF5VHlwZShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZSk7CiAjZW5kaWYK
IAogICAgIC8vIHJlYWR5IHN0YXRlCkBAIC02Myw3ICs2Myw3IEBAIG1vZHVsZSBodG1sIHsKIAog
ICAgIC8vIHBsYXliYWNrIHN0YXRlCiAgICAgYXR0cmlidXRlIGZsb2F0IGN1cnJlbnRUaW1lCi0g
ICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHNldHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGluaXRpYWxUaW1l
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzdGFydFRpbWU7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGZsb2F0IGR1cmF0aW9uOwpAQCAtNzMsMTcgKzczLDE3IEBAIG1vZHVsZSBodG1s
IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgVGltZVJhbmdlcyBwbGF5ZWQ7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFRpbWVSYW5nZXMgc2Vla2FibGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZW5kZWQ7Ci0gICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9wbGF5
OwotICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBsb29wOworICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgYm9vbGVhbiBhdXRvcGxheTsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xl
YW4gbG9vcDsKICAgICB2b2lkIHBsYXkoKTsKICAgICB2b2lkIHBhdXNlKCk7CiAKICAgICAvLyBj
b250cm9scwogICAgIGF0dHJpYnV0ZSBib29sZWFuIGNvbnRyb2xzOwogICAgIGF0dHJpYnV0ZSBm
bG9hdCB2b2x1bWUgCi0gICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBtdXRl
ZDsKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9bXV0ZWRdIGJvb2xlYW4gZGVmYXVsdE11dGVkOwor
ICAgIFtSZWZsZWN0PW11dGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZhdWx0TXV0ZWQ7CiAKICAg
ICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogICAgIGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdFByZXNl
cnZlc1BpdGNoOwpAQCAtOTIsMTIgKzkyLDEyIEBAIG1vZHVsZSBodG1sIHsKICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiB3ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGU7CiAKICAgICAvLyBUaGUgbnVt
YmVyIG9mIGJ5dGVzIGNvbnN1bWVkIGJ5IHRoZSBtZWRpYSBkZWNvZGVyLgotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUVESUFfU1RBVElTVElDU10gdW5zaWduZWQgbG9uZyB3
ZWJraXRBdWRpb0RlY29kZWRCeXRlQ291bnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25k
aXRpb25hbD1NRURJQV9TVEFUSVNUSUNTXSB1bnNpZ25lZCBsb25nIHdlYmtpdFZpZGVvRGVjb2Rl
ZEJ5dGVDb3VudDsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RBVElTVElDU10gcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2Via2l0QXVkaW9EZWNvZGVkQnl0ZUNvdW50OworICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVEFUSVNUSUNTXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB3ZWJraXRWaWRlb0RlY29kZWRCeXRlQ291bnQ7CiAKICNpZiBkZWZpbmVkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICYmIEVOQUJMRV9NRURJQV9TT1VSQ0UKICAgICAvLyBVUkwgcGFzc2Vk
IHRvIHNyYyBhdHRyaWJ1dGUgdG8gZW5hYmxlIHRoZSBtZWRpYSBzb3VyY2UgbG9naWMuCi0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3VyY2UsIFVSTF0g
RE9NU3RyaW5nIHdlYmtpdE1lZGlhU291cmNlVVJMOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9
bWVkaWFTb3VyY2UsIFVSTF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB3ZWJraXRNZWRp
YVNvdXJjZVVSTDsKIAogICAgIC8vIE1hbmFnZXMgSURzIGZvciBhcHBlbmRpbmcgbWVkaWEgdG8g
dGhlIHNvdXJjZS4KICAgICBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSB2b2lkIHdl
YmtpdFNvdXJjZUFkZElkKGluIERPTVN0cmluZyBpZCwgaW4gRE9NU3RyaW5nIHR5cGUpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKQEAgLTEyMiwzNCArMTIyLDM0IEBAIG1vZHVsZSBodG1sIHsKICAg
ICBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
T1VSQ0VfQ0xPU0VEID0gMDsKICAgICBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTT1VSQ0VfT1BFTiA9IDE7CiAgICAgW1Y4RW5hYmxlZEF0UnVu
dGltZT1tZWRpYVNvdXJjZV0gY29uc3QgdW5zaWduZWQgc2hvcnQgU09VUkNFX0VOREVEID0gMjsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJjZV0g
dW5zaWduZWQgc2hvcnQgd2Via2l0U291cmNlU3RhdGU7CisgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZT1tZWRpYVNvdXJjZV0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHdlYmtpdFNv
dXJjZVN0YXRlOwogCi0gICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3Vy
Y2VdIEV2ZW50TGlzdGVuZXIgb253ZWJraXRzb3VyY2VvcGVuOwotICAgIGF0dHJpYnV0ZSBbVjhF
bmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSBFdmVudExpc3RlbmVyIG9ud2Via2l0c291cmNl
ZW5kZWQ7Ci0gICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3VyY2VdIEV2
ZW50TGlzdGVuZXIgb253ZWJraXRzb3VyY2VjbG9zZTsKKyAgICBbVjhFbmFibGVkQXRSdW50aW1l
PW1lZGlhU291cmNlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdHNvdXJjZW9wZW47
CisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJjZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb253ZWJraXRzb3VyY2VlbmRlZDsKKyAgICBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlh
U291cmNlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdHNvdXJjZWNsb3NlOwogI2Vu
ZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICYmIEVOQUJMRV9FTkNS
WVBURURfTUVESUEKLSAgICBbVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSB2b2lk
IHdlYmtpdEdlbmVyYXRlS2V5UmVxdWVzdChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJl
YXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcga2V5U3lzdGVtLCBpbiBbT3B0aW9u
YWxdIFVpbnQ4QXJyYXkgaW5pdERhdGEpCisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0
ZWRNZWRpYV0gdm9pZCB3ZWJraXRHZW5lcmF0ZUtleVJlcXVlc3QoW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGtleVN5c3Rl
bSwgW09wdGlvbmFsXSBpbiBVaW50OEFycmF5IGluaXREYXRhKQogICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7Ci0gICAgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gdm9p
ZCB3ZWJraXRBZGRLZXkoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVk
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGtleVN5c3RlbSwgaW4gVWludDhBcnJheSBrZXksIGlu
IFtPcHRpb25hbF0gVWludDhBcnJheSBpbml0RGF0YSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051
bGxTdHJpbmddIERPTVN0cmluZyBzZXNzaW9uSWQpCisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1l
bmNyeXB0ZWRNZWRpYV0gdm9pZCB3ZWJraXRBZGRLZXkoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGtleVN5c3RlbSwgaW4g
VWludDhBcnJheSBrZXksIFtPcHRpb25hbF0gaW4gVWludDhBcnJheSBpbml0RGF0YSwgW09wdGlv
bmFsPURlZmF1bHRJc051bGxTdHJpbmddIGluIERPTVN0cmluZyBzZXNzaW9uSWQpCiAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRl
ZE1lZGlhXSB2b2lkIHdlYmtpdENhbmNlbEtleVJlcXVlc3QoaW4gW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGtleVN5c3RlbSwg
aW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyBzZXNzaW9uSWQpCisg
ICAgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gdm9pZCB3ZWJraXRDYW5jZWxL
ZXlSZXF1ZXN0KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxT
dHJpbmddIGluIERPTVN0cmluZyBrZXlTeXN0ZW0sIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3Ry
aW5nXSBpbiBET01TdHJpbmcgc2Vzc2lvbklkKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAKLSAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0g
RXZlbnRMaXN0ZW5lciBvbndlYmtpdGtleWFkZGVkOwotICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBFdmVudExpc3RlbmVyIG9ud2Via2l0a2V5ZXJyb3I7
Ci0gICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIEV2ZW50
TGlzdGVuZXIgb253ZWJraXRrZXltZXNzYWdlOwotICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRS
dW50aW1lPWVuY3J5cHRlZE1lZGlhXSBFdmVudExpc3RlbmVyIG9ud2Via2l0bmVlZGtleTsKKyAg
ICBbVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbndlYmtpdGtleWFkZGVkOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVk
TWVkaWFdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0a2V5ZXJyb3I7CisgICAgW1Y4
RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b253ZWJraXRrZXltZXNzYWdlOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVk
aWFdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0bmVlZGtleTsKICNlbmRpZgogCiAj
aWYgZGVmaW5lZChFTkFCTEVfVklERU9fVFJBQ0spICYmIEVOQUJMRV9WSURFT19UUkFDSwotICAg
IFtWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFja10gVGV4dFRyYWNrIGFkZFRleHRU
cmFjayhpbiBET01TdHJpbmcga2luZCwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgbGFiZWwsIGlu
IFtPcHRpb25hbF0gRE9NU3RyaW5nIGxhbmd1YWdlKQorICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9
d2Via2l0VmlkZW9UcmFja10gVGV4dFRyYWNrIGFkZFRleHRUcmFjayhpbiBET01TdHJpbmcga2lu
ZCwgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgbGFiZWwsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5n
IGxhbmd1YWdlKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFja10gVGV4dFRyYWNr
TGlzdCB0ZXh0VHJhY2tzOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFj
a10gcmVhZG9ubHkgYXR0cmlidXRlIFRleHRUcmFja0xpc3QgdGV4dFRyYWNrczsKICNlbmRpZgog
Ci0gICAgYXR0cmlidXRlIFtSZWZsZWN0LCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgbWVkaWFHcm91cDsKLSAgICBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gTWVkaWFDb250cm9s
bGVyIGNvbnRyb2xsZXI7CisgICAgW1JlZmxlY3QsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgbWVkaWFHcm91cDsKKyAgICBbQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1
dGUgTWVkaWFDb250cm9sbGVyIGNvbnRyb2xsZXI7Cit9OwogfTsKLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lbnVFbGVtZW50LmlkbAppbmRleCBmZjE0NzU0YzAxZTI1Mzc5ZTdmYmZjZTlmMTY5
ZTY0Njk1N2IwMzIxLi4yNTI2YTkzYWUyZWE0ZWY1MTdjMDM1NjY0YzI4YmU0MGE0ZmVhN2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3IEBA
CiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTE1lbnVFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29tcGFjdDsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGNvbXBhY3Q7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbAppbmRleCBmNGZmYjJkNDJj
YjI2NmZmYTBiNDU0MzAwODViM2RiYzkxYzRhZGQ1Li5kZDM3ZjE0N2U5M2JhMGVkNGUyMjIzNjBi
ZmFiNmJhM2ZhNmU1NmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRs
CkBAIC0yMCwxMCArMjAsMTAgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1M
TWV0YUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGNvbnRlbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1odHRwX2VxdWl2
XSBET01TdHJpbmcgaHR0cEVxdWl2OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzY2hlbWU7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbnRlbnQ7CisgICAgICAg
IFtSZWZsZWN0PWh0dHBfZXF1aXZdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHR0cEVxdWl2OworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBzY2hlbWU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaWRsCmluZGV4IDdjMTFmZTRjZTZhMjBhODMxNjYx
NjkxYmQ0ZDQxZTZiNzMyNzhmY2QuLjI4YTJhYzYzMWIxYTk2ODg3MWQ0YjNjYTVhMmZkYzY0NGIw
OTg3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmlkbApAQCAtMTgs
MjIgKzE4LDIyIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1NRVRFUl9UQUcKLSAgICBdIEhUTUxNZXRlckVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgSFRNTE1ldGVyRWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSB2YWx1ZQotICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAg
ICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBkb3VibGUgbWluCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBtYXgKLSAgICAgICAgICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgIHNl
dHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZG91Ymxl
IGxvdwotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgaGlnaAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgb3B0aW11bQot
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAgICAgfTsKLX0KK307CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTW9kRWxlbWVudC5pZGwKaW5kZXggYWQ4MjgxYzQ1MDI4Mzk2ZjA4MjgxZjc3ZmVl
M2FhYWM1ZDFiN2JiNy4uNWZlZWViMmQ2ZGNhYzRjOTYyZDg3ZjViYWUwY2JhYTJkMjc3YzNiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5pZGwKQEAgLTIwLDggKzIwLDggQEAK
IG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTW9kRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBjaXRlOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBkYXRlVGltZTsKKyAgICAgICAg
W1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBjaXRlOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBkYXRlVGltZTsKICAgICB9OwogICAgIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsCmluZGV4IDhkMWQzYTQ2ZjZmZTQ3
Zjg3MjU0YjI3OGYxMjZhZTY5MTQ2OTJkZGQuLjVjZmZmMDMyNTg3MTk2OWE0YzhiZWU0YmFlYzA3
YTU3ZDg1OGVlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmlkbApA
QCAtMjAsMTAgKzIwLDEwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTE9M
aXN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBi
b29sZWFuIGNvbXBhY3Q7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21w
YWN0OwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzdGFydDsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBib29sZWFuIHJldmVyc2VkOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gcmV2ZXJz
ZWQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwKaW5kZXgg
ZjEwNTVmZGI4OTNmYmZkNWMyOTYzYmI5OWViNGZiYWVjZmM4OTAwZC4uNzQxYmU2YmRkM2FkZTM1
NTI1NGY2NDI1Njk3NGI5NzQ5YjJhMTlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5pZGwKQEAgLTIwLDM2ICsyMCwzNiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tTmFtZWRTZXR0ZXIsCiAgICAgICAg
IEpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciwKICAgICAgICAgQ3VzdG9t
Q2FsbAotICAgIF0gSFRNTE9iamVjdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgXSBpbnRl
cmZhY2UgSFRNTE9iamVjdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgY29kZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFyY2hpdmU7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJvcmRlcjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29kZUJhc2U7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvZGVUeXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3QsIFVSTF0gRE9NU3RyaW5nIGRhdGE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9v
bGVhbiBkZWNsYXJlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWln
aHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyBoc3BhY2U7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHN0YW5kYnk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIHR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1h
cDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHZzcGFjZTsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGNvZGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGFsaWduOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhcmNoaXZl
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBib3JkZXI7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvZGVCYXNlOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBjb2RlVHlwZTsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0g
YXR0cmlidXRlIERPTVN0cmluZyBkYXRhOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJv
b2xlYW4gZGVjbGFyZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgaGVp
Z2h0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGxvbmcgaHNwYWNlOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyBzdGFuZGJ5OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB1c2VN
YXA7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyB2c3BhY2U7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBW
YWxpZGl0eVN0YXRlIHZhbGlkaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsK
LSAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAg
ICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVu
ZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAgLy8g
SW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
aGVja1NlY3VyaXR5Rm9yTm9kZV0gRG9jdW1lbnQgY29udGVudERvY3VtZW50OworICAgICAgICBb
Q2hlY2tTZWN1cml0eUZvck5vZGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCBjb250ZW50
RG9jdW1lbnQ7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9TVkcpICYmIEVOQUJMRV9TVkcKICNpZiAh
ZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DIHx8
IGRlZmluZWQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJiYgRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUwpAQCAtNjMsNCArNjMsNCBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5p
ZGwKaW5kZXggNzVjZWFkMGZiZjliMDVkYzU0NGU2MTBjMmVkMmExYWE5MDZlOTQ4Ny4uOWNkNTJj
ZjkwMGJmMjc5ZWFkZTA4ZjUwNzNmNjBkMTlhOGY3NTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRt
bCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTE9wdEdyb3VwRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsYWJlbDsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBsYWJlbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAppbmRleCBiN2IzNDg5ZWFiZTA4ZGY5MjFjMWUyNzc1OGU1YWY5ZWMw
N2ZjNjQ3Li43MWRkYzViNTA2MjZmYTJkZTE3ZTZiMTQyOTVmNWU1NzUyZWU3YjBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbApAQCAtMjAsMjMgKzIwLDIzIEBA
CiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QsCi0gICAgICAgIE5hbWVkQ29uc3RydWN0b3I9T3B0aW9uKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgZGF0YSwgaW4gW09wdGlv
bmFsPURlZmF1bHRJc051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZSwgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBkZWZhdWx0U2VsZWN0ZWQsIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2VsZWN0ZWQpLAorICAgICAgICBOYW1lZENvbnN0
cnVjdG9yPU9wdGlvbihbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5n
IGRhdGEsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgdmFsdWUs
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gZGVmYXVsdFNlbGVjdGVk
LCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHNlbGVjdGVkKSwKICAg
ICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KLSAgICBdIEhUTUxPcHRpb25FbGVtZW50
IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlz
YWJsZWQ7CisgICAgXSBpbnRlcmZhY2UgSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGxhYmVsOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9c2VsZWN0ZWRd
IGJvb2xlYW4gZGVmYXVsdFNlbGVjdGVkOworICAgICAgICBbUmVmbGVjdD1zZWxlY3RlZF0gYXR0
cmlidXRlIGJvb2xlYW4gZGVmYXVsdFNlbGVjdGVkOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVh
biBzZWxlY3RlZDsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKIAogI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAjZW5k
aWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgaW5kZXg7CiAgICAgfTsKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKaW5kZXgg
MDQ3NmU2NWZjNzk0ZDUzMzg4MjNhN2E1MjFiM2U0NWY5N2I1ZWZmNi4uMzZhNWYzMDNmMWIwZGVi
ZDJjM2I4NmFmMDliODNhNmUyZTkyMjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbnNDb2xsZWN0aW9uLmlkbApAQCAtMjAsMTggKzIwLDE4IEBACiAKIG1vZHVsZSBodG1s
IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVP
YmplY3QsCiAgICAgICAgIEN1c3RvbUluZGV4ZWRTZXR0ZXIKLSAgICBdIEhUTUxPcHRpb25zQ29s
bGVjdGlvbiA6IEhUTUxDb2xsZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24gOiBIVE1MQ29sbGVjdGlvbiB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBs
b25nIHNlbGVjdGVkSW5kZXg7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSB1
bnNpZ25lZCBsb25nIGxlbmd0aAotICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbV0gYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGQoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gSFRNTE9wdGlvbkVsZW1lbnQgb3B0aW9uLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAg
ICBbQ3VzdG9tXSB2b2lkIGFkZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBIVE1M
T3B0aW9uRWxlbWVudCBvcHRpb24sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAgICAgICAgICAgICAgcmFpc2VzIChET01FeGNl
cHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHJlbW92ZShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCByZW1vdmUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBp
bmRleCk7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9P
QkpFQ1RJVkVfQwogICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7IApA
QCAtMzksNCArMzksNCBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmlkbAppbmRleCAzNTc2MWMzMzVj
ZDg2ZTRlMTM1MGI4ZDI1NTJjYjNiZjQzMWYyYWY3Li4yM2Y0NWUzNGY1Zjc0MjRjZTU2NWU2NmE2
ZWFlYzA3OTg4ZjY5NjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRw
dXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50
LmlkbApAQCAtMjQsMjAgKzI0LDIwIEBACiAKIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2Ug
SFRNTE91dHB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ3Vz
dG9tXSBET01TZXR0YWJsZVRva2VuTGlzdCBodG1sRm9yOworICAgICAgICBbQ3VzdG9tXSBhdHRy
aWJ1dGUgRE9NU2V0dGFibGVUb2tlbkxpc3QgaHRtbEZvcjsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBu
YW1lOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKLSAgICAg
ICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVmYXVsdFZh
bHVlOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyB2YWx1ZTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgZGVmYXVsdFZhbHVlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0
cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiB3aWxsVmFsaWRhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0
YXRlIHZhbGlkaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKLSAgICAgICAg
dm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRV
bmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAgICB2b2lkIHNl
dEN1c3RvbVZhbGlkaXR5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmddIGluIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwKaW5kZXggMjQ2ZTllOTllZDA1MDA4ZGRmZmZl
MThiNjE0ZWRiOGYxOTlmOTcyMS4uMTUwZTkxZTkwMGY1NGExOTQ3M2I1M2EwMGUxMmVhZDYyNTM4
MTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5pZGwK
QEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MUGFy
YWdyYXBoRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFsaWduOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQYXJhbUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVt
ZW50LmlkbAppbmRleCAxZjBjMGRlZDY0ZjQ3OWY2Y2JkNDdkMGEyMjU3NjY0Y2Q1M2E4OGJlLi4y
NTU1M2M0MzQzOTI5OTZmNWFlOWYyYTNmNzhhYTIxNTk2M2Q3YTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwKQEAgLTIwLDEwICsyMCwxMCBAQAogbW9kdWxlIGh0
bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxQYXJhbUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIHZhbHVlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyB2YWx1ZVR5cGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyB2YWx1ZVR5cGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKaW5kZXggYWUxMzdmMDI0ZjYwN2Y4YmIzOGI2N2U3YmEx
ODljOWEyZjYyYWNkZS4uZWViOWRhOWI2NzY5MDViOGYwZjQ4Y2E5NTMzM2MzNTZiNWFkYTM2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5pZGwKQEAgLTIzLDEwICsyMywxMCBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIEhUTUxQcmVFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogICAgICAgICAvLyBGSVhNRTogRE9NIHNwZWMgc2F5cyB0aGF0IHdpZHRoIHNob3VsZCBi
ZSBvZiB0eXBlIERPTVN0cmluZwogICAgICAgICAvLyBzZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODk5MgotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcg
d2lkdGg7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICAgICAg
CiAgICAgICAgIC8vIEV4dGVuc2lvbnMKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29s
ZWFuIHdyYXA7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiB3cmFwOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmlk
bAppbmRleCBhY2U0ZGVmODM2ZmM2ZGM0NTIzMGRkZmM0NmNhNmYzMjFmNTU0YTQ3Li4yYTAwN2U1
ZWY3NzAwYTVlOGFlOWRjYTk0YjJjNmI0YTljOTRmZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwKQEAgLTE4LDE1ICsxOCwxNSBAQAogICovCiAKIG1v
ZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
UFJPR1JFU1NfVEFHCi0gICAgXSBIVE1MUHJvZ3Jlc3NFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgIF0gaW50ZXJmYWNlIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHZhbHVlCi0gICAg
ICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBkb3VibGUgICAgICAgICAgICAgICAgbWF4Ci0gICAgICAgICAgICAgICAgICAgICBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBkb3VibGUgICAg
ICAgICAgICAgICAgcG9zaXRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgTm9kZUxp
c3QgICAgICAgICAgICAgIGxhYmVsczsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCmluZGV4IGQyYzhlMzEyNzVl
YzlmM2Y2NTZkY2UxY2VjODYwZjhlMmY2NDIyNjUuLjQyZGIyNTM4YjRkNjdmMmJhNmE3ZGVkZGYw
MWEyMTdhNTVlNzlkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbi5pZGwKQEAgLTMwLDEyICszMCwxMiBAQAogCiBtb2R1bGUgaHRtbCB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAog
ICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAg
ICAgICAgTmFtZWRHZXR0ZXIKLSAgICBdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6IEhUTUxD
b2xsZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBI
VE1MQ29sbGVjdGlvbiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKICAgICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCkBA
IC00NCw0ICs0NCw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8gRklYTUU6IEhUTUw1IHNw
ZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgogICAgICAg
ICBOb2RlTGlzdCBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOwogICAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwKaW5kZXggZmExYmNkYjU3NDIz
NTdiZTJiODhlM2M5MzgyZmMwN2MxYWM2MmUyMy4uMTA3MmQyZjNiNzVjMWY3NTQ4ZDA5NTIzZTg0
MGU3ZDMzYjQ0ZWE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVF
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRs
CkBAIC0yMCw2ICsyMCw2IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFF1
b3RlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBV
UkxdIERPTVN0cmluZyBjaXRlOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGNpdGU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaWRsCmluZGV4IGE0MWUxMDQzZTZkYzlmNzFkODhlY2VmNDEzZGQ2MmRkMmIzOWE0
YmIuLmQwMTA4ZGNhYWMzMmNmNWEzYzA5NGJiYTU0M2RhYThkNWFiNzRmNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yMCwxNCArMjAsMTQgQEAKIG1v
ZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MU2NyaXB0RWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgdGV4dDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxG
b3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50OwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OworICAgICAgICBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OworICAgICAgICBbUmVm
bGVjdD1mb3JdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHRtbEZvcjsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgZXZlbnQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGNoYXJzZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFzeW5jOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyB0eXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBjcm9zc09yaWdpbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRlZmVy
OworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgY3Jvc3NPcmlnaW47CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDZhMWFlMDNkMTRiZWI1MWRj
MDEwNDE5N2U4NzVlYTc3NjZiNGJiMTkuLjk2ZTY1N2EzZDJkOWRlN2FhYjQ4NDczY2NhMzQzMDdh
MmM4MjlkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBA
IC0yMCwxNiArMjAsMTYgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEN1c3RvbUluZGV4ZWRTZXR0ZXIK
LSAgICBdIEhUTUxTZWxlY3RFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgXSBpbnRlcmZhY2UgSFRNTFNlbGVjdEVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRv
Zm9jdXM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBh
dHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVp
cmVkOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gcmVxdWlyZWQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBsb25nIHNpemU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBl
OwpAQCAtNDAsMTIgKzQwLDEyIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8gZm9yIGNvbXBh
dGliaWxpdHkgd2Uga2VlcCBET00gTGV2ZWwgMSBkZWZpbml0aW9uLgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7CiAjZWxzZQotICAgICAgICBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGggc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNl
bmRpZgotICAgICAgICBOb2RlIGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgTm9kZSBuYW1lZEl0ZW0oaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOwotICAgICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGFkZChpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBIVE1MRWxlbWVudCBlbGVtZW50LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBIVE1MRWxlbWVudCBi
ZWZvcmUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIGl0ZW0oW0lzSW5kZXgs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAg
ICAgICAgTm9kZSBuYW1lZEl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIG5hbWUpOworICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lk
IGFkZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBIVE1MRWxlbWVudCBlbGVtZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBIVE1MRWxlbWVudCBiZWZvcmUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAg
ICAgICAvLyBJbiBKYXZhU2NyaXB0LCB3ZSBzdXBwb3J0IGJvdGggb3B0aW9uIGluZGV4IGFuZCBv
cHRpb24gb2JqZWN0IHBhcmFtZXRlcnMuCiAgICAgICAgIC8vIEFzIG9mIHRoaXMgd3JpdGluZyB0
aGlzIGNhbm5vdCBiZSBhdXRvLWdlbmVyYXRlZC4KQEAgLTU1LDE0ICs1NSwxNCBAQCBtb2R1bGUg
aHRtbCB7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9u
IHNlbGVjdGVkT3B0aW9uczsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0ZWRJbmRleDsK
LSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFs
dWU7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHZhbHVlOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0
ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CiAg
ICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOwotICAgICAgICB2b2lkIHNldEN1c3RvbVZh
bGlkaXR5KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyBlcnJvcik7CisgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHko
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4g
RE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3Qg
bGFiZWxzOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU291cmNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmlkbAppbmRleCBkYzcwNzE0MGE2MjhmMzcxOGIxYjZjZTk5YTQ1ODI0MDU4ZGQ5NzM1Li5j
ZDY3Y2I0NzRmNTkxZWFiNmJhZDE5YmQ1NTA4MDU5N2Y5ZTcxNzQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmlkbApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAog
bW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVZJREVP
LAotICAgIF0gSFRNTFNvdXJjZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgYXR0cmlidXRl
IFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CisgICAgWworICAgICAgICBDb25kaXRpb25h
bD1WSURFTworICAgIF0gaW50ZXJmYWNlIEhUTUxTb3VyY2VFbGVtZW50IDogSFRNTEVsZW1lbnQg
eworICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOwogICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgdHlwZTsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOwogfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFuRWxlbWVudC5pZGwKaW5kZXggZDZkNGU1
OWViZTUxNmViY2RkZGFmMWIwOWRkYjg5ODg3Y2QzY2Q5Zi4uYWIyOGNiMGQzNWQ5YmU4MTc0ZTdl
OTZjYTk2MjQ5YTk4OWYwMDMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3BhbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50
LmlkbApAQCAtMjksNCArMjksNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIEhUTUxT
cGFuRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGwKaW5kZXggMWI5YWJkNDdhNWMyYjI1ZGZjYzk4NDcw
MjAyOTFmNjkwZWYxOGU2NC4uMDM5ZGE3MGExNzVjODg3ZTBhZDkzMWI2MGQ2NGFkNDAyYWRjNTc3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaWRsCkBAIC0yMiwxMiAr
MjIsMTIgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxTdHlsZUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwotICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVNUWUxFX1NDT1BFRCwgVjhFbmFibGVkQXRSdW50
aW1lPXN0eWxlU2NvcGVkXSBib29sZWFuIHNjb3BlZDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgbWVkaWE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHR5cGU7CisgICAgICAgIFtDb25kaXRpb25hbD1TVFlMRV9TQ09QRUQsIFY4RW5hYmxlZEF0
UnVudGltZT1zdHlsZVNjb3BlZF0gYXR0cmlidXRlIGJvb2xlYW4gc2NvcGVkOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZQog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3R5bGVTaGVldCBzaGVldDsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmlk
bAppbmRleCAwNzU5NTM5NzgzZDQ0M2ZjOTY3NTcxYjI3OTMzMTgzY2EzZjljZDEyLi5jMTg2YzNi
OTY1ZTY5NzQyMzhjMmJjMWE0ZjE2N2VmOThhYjljZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmlkbApAQCAtMjAsMTAgKzIwLDEwIEBACiAK
IG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IDogSFRNTEVs
ZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAg
ICBdIGludGVyZmFjZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwKaW5kZXgg
YWUyODZmNGQ2MDI3MTY1YjJiNDk1NmQxYTc2YzM2N2I2N2QxYTFlMC4uNzFkOGI0MzliYzViMDFi
YTMzM2EzYzc0NjE3YjVjNWQxODE3ODk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVDZWxsRWxlbWVudC5pZGwKQEAgLTIyLDIwICsyMiwyMCBAQCBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgSFRNTFRhYmxlQ2VsbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNlbGxJbmRleDsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgYWJicjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGF4
aXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJnQ29sb3I7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyXSBET01TdHJpbmcgY2g7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdD1jaGFyb2ZmXSBET01TdHJpbmcgY2hPZmY7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFiYnI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGFsaWduOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBh
eGlzOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBiZ0NvbG9yOworICAg
ICAgICBbUmVmbGVjdD1jaGFyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoOworICAgICAgICBbUmVm
bGVjdD1jaGFyb2ZmXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoT2ZmOwogICAgICAgICBhdHRyaWJ1
dGUgbG9uZyBjb2xTcGFuOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBo
ZWFkZXJzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBub1dyYXA7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhlYWRlcnM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGhlaWdodDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29s
ZWFuIG5vV3JhcDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgcm93U3BhbjsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2NvcGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHZBbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgd2lkdGg7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNjb3Bl
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB2QWxpZ247CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmlkbAppbmRleCBhNmU2NjU0
MDEyYjQ1Y2NkMzMxZTYzYWI2NDk2ZGNlOTY1ZTkwODIzLi4wY2JkZTgyMGY1NWVmZDIxMTljZjll
ODI4YjU0NDUxOTY0OWVlMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNvbEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29s
RWxlbWVudC5pZGwKQEAgLTIxLDEyICsyMSwxMiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIEhUTUxUYWJsZUNvbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3Q9Y2hhcl0gRE9NU3RyaW5nIGNoOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y2hhcm9m
Zl0gRE9NU3RyaW5nIGNoT2ZmOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3Q9Y2hhcl0gYXR0cmlidXRlIERPTVN0cmluZyBjaDsK
KyAgICAgICAgW1JlZmxlY3Q9Y2hhcm9mZl0gYXR0cmlidXRlIERPTVN0cmluZyBjaE9mZjsKICAg
ICAgICAgYXR0cmlidXRlIGxvbmcgc3BhbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgdkFsaWduOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3
aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdkFsaWduOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwKaW5kZXggMTkwODYxYTdm
ZTQ5Mjc1OTU2MjBjMDI4NGFkMWNiODJkMTM1MGYxNi4uNDcyZTQ3ZWM2MmJhYjY2MGViOGY2YWNi
NWZjMDdhZmQ4NTM2NDBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQu
aWRsCkBAIC0yMSwyMyArMjEsMjMgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBI
VE1MVGFibGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQgY2FwdGlvbiBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZCBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudCB0Rm9vdCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0
ZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudCBjYXB0aW9uIHNldHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICBhdHRyaWJ1dGUgSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgdEhlYWQgc2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxl
bWVudCB0Rm9vdCBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gcm93czsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IEhUTUxDb2xsZWN0aW9uIHRCb2RpZXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGFsaWduOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiZ0Nv
bG9yOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBib3JkZXI7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNlbGxQYWRkaW5nOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjZWxsU3BhY2luZzsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGJvcmRlcjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2VsbFBh
ZGRpbmc7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNlbGxTcGFjaW5n
OwogCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZyYW1lOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBmcmFtZTsKIAotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBydWxlczsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgc3VtbWFyeTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgd2lkdGg7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJ1bGVzOwor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzdW1tYXJ5OworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsKIAogICAgICAgICBIVE1MRWxlbWVu
dCBjcmVhdGVUSGVhZCgpOwogICAgICAgICB2b2lkIGRlbGV0ZVRIZWFkKCk7CkBAIC00Nyw4ICs0
Nyw4IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSFRNTEVsZW1lbnQgY3JlYXRlQ2FwdGlvbigp
OwogICAgICAgICB2b2lkIGRlbGV0ZUNhcHRpb24oKTsKIAotICAgICAgICBIVE1MRWxlbWVudCBp
bnNlcnRSb3coaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBpbmRleCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgZGVsZXRlUm93KGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBIVE1MRWxlbWVudCBpbnNlcnRSb3coW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgZGVsZXRl
Um93KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaW5kZXgpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVSb3dFbGVtZW50LmlkbAppbmRleCBiMTZkNzU0YWZlNTQzMTU4ODhkNzhjNTdlNDZkZmI5
MjZlZTliYjMxLi44MGM0NTE3OGVkMzFiZGRlMmI3OTM1ZTE0MmE4YjZjYTAzNzc4MzMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKQEAgLTI0LDEzICsy
NCwxMyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJv
d0luZGV4OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzZWN0aW9uUm93SW5kZXg7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBjZWxsczsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJnQ29sb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dD1jaGFyXSBET01TdHJpbmcgY2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyb2Zm
XSBET01TdHJpbmcgY2hPZmY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHZBbGlnbjsKLSAgICAgICAgSFRNTEVsZW1lbnQgaW5zZXJ0Q2VsbChpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCBkZWxldGVDZWxsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcg
aW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YmdDb2xvcjsKKyAgICAgICAgW1JlZmxlY3Q9Y2hhcl0gYXR0cmlidXRlIERPTVN0cmluZyBjaDsK
KyAgICAgICAgW1JlZmxlY3Q9Y2hhcm9mZl0gYXR0cmlidXRlIERPTVN0cmluZyBjaE9mZjsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdkFsaWduOworICAgICAgICBIVE1M
RWxlbWVudCBpbnNlcnRDZWxsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcg
aW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGRlbGV0ZUNlbGwoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5pZGwKaW5kZXggODhmNTMzNjliZGNiYjAzZjZlNTlmN2I0YjYyNzUw
N2RmYmRhZTRiYS4uZGU5OThlNDcxNDYzYWNlZjg5ZDY3ZDljNzI1NmRiODUxOWNkMGM1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5pZGwKQEAg
LTIwLDE2ICsyMCwxNiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0Ci0gICAgXSBIVE1MVGFibGVTZWN0
aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyXSBET01TdHJp
bmcgY2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyb2ZmXSBET01TdHJpbmcgY2hP
ZmY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHZBbGlnbjsKKyAgICBd
IGludGVyZmFjZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0
PWNoYXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2g7CisgICAgICAgIFtSZWZsZWN0PWNoYXJvZmZd
IGF0dHJpYnV0ZSBET01TdHJpbmcgY2hPZmY7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZBbGlnbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0
aW9uIHJvd3M7Ci0gICAgICAgIEhUTUxFbGVtZW50IGluc2VydFJvdyhpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCBkZWxldGVSb3coaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBp
bmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIEhUTUxFbGVtZW50IGluc2VydFJv
dyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGluZGV4KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBkZWxldGVSb3coW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4
IDcyOWU2ZGFlNmJjMGMxOTllMWVhMTdlZWVjNmE3YzYyZjFjOWE5ODIuLmNlOThjZTYxMDQ4MjJh
NGYxNWIyNGQ1NzA4NzgwMjdkNDk2YTJlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbApAQCAtMjIsMjkgKzIyLDI5IEBACiBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1czsKICAgICAgICAgYXR0cmlidXRlIGxvbmcg
Y29sczsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZGlyTmFtZTsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBkaXJOYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1M
Rm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgYXR0cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcGxhY2Vo
b2xkZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZWFkT25seTsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVpcmVkOworICAgICAgICBhdHRy
aWJ1dGUgbG9uZyBtYXhMZW5ndGggc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHBsYWNlaG9sZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IGJvb2xlYW4gcmVhZE9ubHk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBy
ZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgcm93czsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgd3JhcDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgd3JhcDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5
cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5n
IGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWU7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIHRleHRMZW5ndGg7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFs
aWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7Ci0g
ICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKKyAgICAgICAg
dm9pZCBzZXRDdXN0b21WYWxpZGl0eShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRl
ZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAKQEAgLTU1LDEzICs1NSwxMyBAQCBtb2R1
bGUgaHRtbCB7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0Vf
T0JKRUNUSVZFX0MKICAgICAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbiBsb25nIHN0YXJ0
LCBpbiBsb25nIGVuZCk7CiAjZWxzZQotICAgICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc3RhcnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBl
bmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBET01TdHJp
bmcgZGlyZWN0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgZW5kLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIGRpcmVj
dGlvbik7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExB
TkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNz
S2V5OwogI2VuZGlmCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGl0bGVF
bGVtZW50LmlkbAppbmRleCBlNjkxZjdiMTMxYzkzODRlNDM3MTc2ZDU3NGJkNGIzYWJiNjRlMmM0
Li44NGIwMDZhMDhlM2Q5MWJjZjRiZWM1YWYzMDRlNzc3OWRlNTlkMGEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBo
dG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MVGl0bGVFbGVtZW50IDogSFRNTEVsZW1lbnQgewot
ICAgICAgICBhdHRyaWJ1dGUgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgICAg
ICAgICAgICB0ZXh0OworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICAgICAgIHRleHQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCmluZGV4IDAxMDdkZjVhM2Q0YTY3YjAyYjI3MzQy
YWQ5MDY4MzUzYTQ0YjJhZGYuLjk4ZWMyODc3Y2ViOGFhMjU3ZDFiMjFhZmY5ZmNiMTJiMjhlZDE2
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbApAQCAtMjQsMTUg
KzI0LDE1IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICAgICAgVjhFbmFibGVkQXRSdW50
aW1lPXdlYmtpdFZpZGVvVHJhY2sKLSAgICBdIEhUTUxUcmFja0VsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOworICAg
IF0gaW50ZXJmYWNlIEhUTUxUcmFja0VsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIFtS
ZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGtpbmQ7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjbGFuZzsKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBib29sZWFuIGRlZmF1bHQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVh
biBkZWZhdWx0OwogCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTkUgPSAwOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FESU5HID0gMTsKQEAgLTQzLDQgKzQzLDQgQEAg
bW9kdWxlIGh0bWwgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUZXh0VHJhY2sgdHJh
Y2s7CiB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsCmlu
ZGV4IDIyMWRjY2E1ODE0NDNkN2U1OTlmNTgyYjAzYjE4Y2Q1NmM3OWU5MzMuLmM4ZTAzY2NjMjA5
YzVjZjRiZmUxMzlmYWI3ZDA0NWMyOGMxMDQyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VUxpc3RFbGVtZW50LmlkbApAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxVTGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4g
Y29tcGFjdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93
bkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRs
CmluZGV4IDllNGY5MGFmYTlhNzljYWIwZDFjMmQ0YWJiNmE1ODdhOWExYTNiMTkuLmU2ZTQyMDU1
ZjMwMTgyOTgyNzM0MTNjNGNiMzFjMzBlMWQ4MjQwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxVbmtub3duRWxlbWVudC5pZGwKQEAgLTMyLDQgKzMyLDQgQEAgbW9kdWxlIGh0bWwgewog
ICAgIGludGVyZmFjZSBIVE1MVW5rbm93bkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCmluZGV4IDk3
YTE3Nzk2ZTkwNjNkNWMxZjA0ZDE4N2U0ZDZmZTNkMGNiYjViYTQuLmE1OTVmZmE3ZWU5YzlmZjdk
MDE4OTk4ZTU5YzAyM2U0YTQ2OWMzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbApAQCAtMjQsMTUgKzI0LDE1IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1WSURFTywKICAgICAgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0Ci0gICAgXSBIVE1MVmlkZW9FbGVtZW50IDogSFRNTE1l
ZGlhRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyB3
aWR0aDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSB1bnNpZ25lZCBsb25nIGhlaWdodDsK
KyAgICBdIGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50IDogSFRNTE1lZGlhRWxlbWVudCB7Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGhlaWdodDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdmlkZW9XaWR0aDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdmlkZW9IZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdCwgVVJMXSBET01TdHJpbmcgcG9zdGVyOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHBvc3RlcjsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiB3ZWJraXRTdXBwb3J0c0Z1bGxzY3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIHdlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuOwpAQCAtNDYsMTAgKzQ2LDEw
IEBAIG1vZHVsZSBodG1sIHsKIAogICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIGZyYW1lcyB0aGF0
IGhhdmUgYmVlbiBkZWNvZGVkIGFuZCBtYWRlIGF2YWlsYWJsZSBmb3IKICAgICAgICAgLy8gcGxh
eWJhY2suCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUVESUFfU1RB
VElTVElDU10gdW5zaWduZWQgbG9uZyB3ZWJraXREZWNvZGVkRnJhbWVDb3VudDsKKyAgICAgICAg
W0NvbmRpdGlvbmFsPU1FRElBX1NUQVRJU1RJQ1NdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIHdlYmtpdERlY29kZWRGcmFtZUNvdW50OwogCiAgICAgICAgIC8vIFRoZSBudW1iZXIg
b2YgZGVjb2RlZCBmcmFtZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBieSB0aGUgcGxheWVyCiAg
ICAgICAgIC8vIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIGR1cmluZyBwbGF5YmFjay4KLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NRURJQV9TVEFUSVNUSUNTXSB1bnNp
Z25lZCBsb25nIHdlYmtpdERyb3BwZWRGcmFtZUNvdW50OworICAgICAgICBbQ29uZGl0aW9uYWw9
TUVESUFfU1RBVElTVElDU10gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2Via2l0
RHJvcHBlZEZyYW1lQ291bnQ7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRGF0YS5p
ZGwKaW5kZXggZjJlYTBjYTZiNzM2YzI5YTkzMjdiY2RlYzg0ZTVjYTcyYjkwMWJhYy4uOGMyN2Y3
Yzc5ODM1MjE5ZDJmMzQxMTJmMTIwZjVmYzZmOTQ5NGE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZURhdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VE
YXRhLmlkbApAQCAtMjgsOSArMjgsOSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdAotICAgIF0gSW1hZ2VEYXRhIHsK
KyAgICBdIGludGVyZmFjZSBJbWFnZURhdGEgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OwogI2lm
ICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCkBA
IC0zOCw0ICszOCw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5pZGwKaW5kZXggZDNmMzM0ODViOWM5ZTgx
ZjQwOTdkMmUwNjBiYjY1MjMxMjNhYWZjZi4uNDdmNGM2MmIyNTJhZWU4NGY3YjY1YWJjODdlNTk3
MTg3MTcxMTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xs
ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbApAQCAt
MjQsMTkgKzI0LDE5IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1WSURFTywKICAgICAgICAgQ29uc3RydWN0b3IsCiAg
ICAgICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEpTR2VuZXJh
dGVUb0pTT2JqZWN0LAogICAgICAgICBFdmVudFRhcmdldAotICAgIF0gTWVkaWFDb250cm9sbGVy
IHsKKyAgICBdIGludGVyZmFjZSBNZWRpYUNvbnRyb2xsZXIgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgVGltZVJhbmdlcyBidWZmZXJlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFRpbWVSYW5nZXMgc2Vla2FibGU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJs
ZSBkdXJhdGlvbjsKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBjdXJyZW50VGltZQotICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBw
YXVzZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIHBsYXllZDsKQEAg
LTQ3LDE3ICs0NywxNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUg
cGxheWJhY2tSYXRlOwogCiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgdm9sdW1lCi0gICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2Vz
IChET01FeGNlcHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBtdXRlZDsKIAogICAg
ICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3Rl
bmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lk
IHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQp
CiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFcnJvci5pZGwKaW5kZXggOGViOWQ1NDAyOTQ2NTAzNGRkNDNkZjgxOWZk
ZGNkMTE1MTY3Mjc1Mi4uYTcwYmJhNjQwNTY3MDdiNDA0Y2JmNzMyYTcxZjA2NWQ1NGJmOWY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaWRsCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAog
bW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1WSURFTwotICAgIF0gTWVkaWFFcnJvciB7CisgICAgXSBpbnRlcmZhY2UgTWVkaWFFcnJvciB7
CiAgICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUVESUFfRVJSX0FCT1JURUQgPSAxOwog
ICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE1FRElBX0VSUl9ORVRXT1JLID0gMjsKICAg
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9FUlJfREVDT0RFID0gMzsKQEAgLTM2
LDQgKzM2LDQgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhS2V5RXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUtleUVycm9yLmlkbAppbmRleCA1NWI5YjA0ZDBmN2Y1NzNlMzk0MDZlMmExMTFiNDc2
YWFkOTJiODkzLi44NDdiY2ZlZDY2MGEyMzI1NGFjYzc4MDJjMzM1NDQ3MmE0ZjVjMTdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhS2V5RXJyb3IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwKQEAgLTI0LDEwICsyNCwxMCBAQAogICov
CiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9RU5DUllQVEVEX01FRElBLAotICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlw
dGVkTWVkaWEsIAotICAgIF0gTWVkaWFLZXlFcnJvciB7CisgICAgICAgIFY4RW5hYmxlZEF0UnVu
dGltZT1lbmNyeXB0ZWRNZWRpYQorICAgIF0gaW50ZXJmYWNlIE1lZGlhS2V5RXJyb3IgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9LRVlFUlJfVU5LTk9XTiA9IDE7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE1FRElBX0tFWUVSUl9DTElFTlQgPSAyOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9LRVlFUlJfU0VSVklDRSA9IDM7CkBAIC0zNiw0
ICszNiw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUVE
SUFfS0VZRVJSX0RPTUFJTiA9IDY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCBjb2RlOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUtleUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFdmVu
dC5pZGwKaW5kZXggYjEzODdkY2ZjNDcwMDdhZDc1ZTgyZmRmYzgzYTlkN2JlYmU3MzY1Ny4uMWIy
Y2U5NTI4MGY2MDYyN2EzZGUyZTJkNzI2MWI3NzFlNjVjZmE4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhS2V5RXZlbnQuaWRsCkBAIC0yNSwxOCArMjUsMTggQEAKIAogbW9kdWxlIGh0bWwgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUVOQ1JZUFRFRF9N
RURJQSwKICAgICAgICAgVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhLAogICAgICAg
ICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50IAotICAgIF0gTWVkaWFLZXlFdmVudCA6IEV2ZW50
IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gRE9NU3RyaW5nIGtleVN5c3RlbTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIHNlc3Npb25JZDsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gVWlu
dDhBcnJheSBpbml0RGF0YTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXpl
ZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gVWludDhBcnJheSBtZXNzYWdlOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgZGVm
YXVsdFVSTDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gTWVkaWFLZXlFcnJvciBlcnJvckNvZGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHVuc2lnbmVkIHNob3J0IHN5
c3RlbUNvZGU7CisgICAgXSBpbnRlcmZhY2UgTWVkaWFLZXlFdmVudCA6IEV2ZW50IHsKKyAgICAg
ICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGtleVN5c3RlbTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9y
XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlc3Npb25JZDsKKyAgICAgICAgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgVWludDhBcnJheSBp
bml0RGF0YTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25s
eSBhdHRyaWJ1dGUgVWludDhBcnJheSBtZXNzYWdlOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGVmYXVsdFVSTDsK
KyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1
dGUgTWVkaWFLZXlFcnJvciBlcnJvckNvZGU7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHN5c3RlbUNvZGU7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9O
b2RlTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuaWRsCmluZGV4
IDhlZDU3YmFjZGMxN2U4NzA5MjY5NzEyOWQxNmMzOTczMDgwNDFiZjYuLmY2NzllNDg0ZGFhNWNk
ZTViNDI2MDdlNDA5OGMxOGY5OTg0NDFkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFkaW9Ob2RlTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb05vZGVM
aXN0LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKLSAgICAgICAgSW5k
ZXhlZEdldHRlciwKLSAgICBdIFJhZGlvTm9kZUxpc3QgOiBOb2RlTGlzdCB7CisgICAgICAgIElu
ZGV4ZWRHZXR0ZXIKKyAgICBdIGludGVyZmFjZSBSYWRpb05vZGVMaXN0IDogTm9kZUxpc3Qgewog
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOwogICAgIH07Ci19Cit9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRNZXRyaWNzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dE1ldHJpY3MuaWRsCmluZGV4IDFhMzE1YmFjMjFlMjE2NjQ0OWI4NTkwYmE2
MjYxOTljNGZhN2Y4Y2MuLjU4ZmUyNWIzZWMzN2UzMGM4ZTU4NDI1ZGVhNDgwYTIyY2Y0MTQxZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJpY3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJpY3MuaWRsCkBAIC0yOSw0ICsyOSw0IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHdpZHRoOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmlkbAppbmRleCBjMzdjMzYwZGJjYTQx
MTgzNDdlOTMyM2I0MWJlMjJhNTRjOTg1ZjU2Li45NjY5MTAwOTllOWVmYWE1ZGNhOGNmYzgwMzIx
YmY4Y2IyODMyMzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5pZGwKQEAgLTI1LDkgKzI1
LDkgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVZJREVPCi0gICAgXSBUaW1lUmFuZ2VzIHsKKyAgICBdIGludGVyZmFjZSBU
aW1lUmFuZ2VzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwogICAgICAgICBmbG9hdCBzdGFydChpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAg
ICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwpAQCAtMzUsNCArMzUsNCBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaWRsCmluZGV4IDYwMWJmYWZlZGM1YjkxNTRk
NTg3ZTY3Y2E3MmM1ZTdmOTJlYzU4YzcuLmJhNjI0M2Q0ZWIzYjAwN2RhYjZlOGY0MmJmMTYwYmQ2
NTVkZTU3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmlkbApAQCAtMjIsOSAr
MjIsOSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBWYWxpZGl0eVN0YXRlIHsKKyAgICBdIGludGVyZmFj
ZSBWYWxpZGl0eVN0YXRlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAg
ICAgICB2YWx1ZU1pc3Npbmc7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgdHlwZU1pc21hdGNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAg
ICAgICAgIHBhdHRlcm5NaXNtYXRjaDsKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIGN1c3RvbUVycm9yOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHZhbGlkOwogICAgIH07
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJhY2suaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsCmluZGV4IGQwZjE1OWI4Mzg3
ZjAzMDY0ZWE0YmY5YTViYzFkZWY1YmVmZTI0MDcuLjQyMjc5MzAyMTg4ODE3Zjk3ODBkNmI4ZWYy
ZjQ5NjUwMWUwYWQxYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVm9pZENhbGxi
YWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZvaWRDYWxsYmFjay5pZGwKQEAgLTI0
LDEwICsyNCwxMCBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdCwKICAgICAgICAgT21pdENvbnN0cnVj
dG9yCi0gICAgXSBWb2lkQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFZvaWRDYWxsYmFjayB7
CiAgICAgICAgIHZvaWQgaGFuZGxlRXZlbnQoKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbAppbmRleCAyNmRkMzQxYmJkNDY3ZjU5MTYw
MzBhMmNjY2RiYWMyMWY1NDRjZTg2Li43ZTUxYmQyY2FkODcyOTk3YzNhZGE5NzFkMDkyZjg5Mjli
Y2U0YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZl
ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaWRsCkBA
IC0yNSwxNCArMjUsMTQgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAgICAgICBDdXN0b21D
b25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIEpT
Tm9TdGF0aWNUYWJsZXMKLSAgICBdIEFycmF5QnVmZmVyIHsKKyAgICBdIGludGVyZmFjZSBBcnJh
eUJ1ZmZlciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgYnl0ZUxlbmd0aDsKLSAg
ICAgICAgQXJyYXlCdWZmZXIgc2xpY2UoaW4gbG9uZyBiZWdpbiwgaW4gW09wdGlvbmFsXSBsb25n
IGVuZCk7CisgICAgICAgIEFycmF5QnVmZmVyIHNsaWNlKGluIGxvbmcgYmVnaW4sIFtPcHRpb25h
bF0gaW4gbG9uZyBlbmQpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmlkbAppbmRleCAwZTkzNGU2Y2I0ODFiNTY2YTI2NTFm
Njk2MmRkNTQ4NTEzMmM2MmY2Li4xMTk0NGQ4NWVhNjRlMzM5ZWQ3NjJkODAxZWIxMGRkOTg5Njdk
Nzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlclZp
ZXcuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5p
ZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgSlNOb1N0YXRp
Y1RhYmxlcywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBBcnJheUJ1ZmZlclZpZXcg
eworICAgIF0gaW50ZXJmYWNlIEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBBcnJheUJ1ZmZlciBidWZmZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGJ5dGVMZW5ndGg7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5pZGwKaW5kZXggNDk2ZDRjMWIxNDkzMDliMjAxYTky
MTg2YzUwZjc1ZjljNjU4ZGRiMi4uNTA3MTE5NjQ4ZjRiOTVhMDY0YzNhN2ZhYzg0NmJkODA1M2Qx
MTYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGll
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50Lmlk
bApAQCAtMjcsMTEgKzI3LDExIEBAIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBDYW52
YXNHcmFkaWVudCB7CiAKLSAgICAgICAgdm9pZCBhZGRDb2xvclN0b3AoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgb2Zmc2V0LCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbG9yKQorICAg
ICAgICB2b2lkIGFkZENvbG9yU3RvcChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgY29sb3IpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsCmluZGV4IGU1YWEwMzYwYjk5MGM2ZDA1Y2U5NjIzZTc5
NDc5Y2QxNTM4NjBhZjEuLmJlNjhiNTQ2NWExZTE2MjU3NjdiNTNjNDQ0NTI5ZWM0ODlhNTAzZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsCkBAIC0y
OCw1ICsyOCw1IEBAIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgQ2FudmFzUGF0dGVybiB7
CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbAppbmRleCBiOTM3MzkzMWY2ZjY1ZjYzZjIzNDdi
NzEyNzI4NDliZTExZDQ4ZTkzLi43NjU1M2JjMDlhMTQxNjQzMWRjZGZhOTliM2M5Y2JjMDkxZTA5
ZTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmlkbApAQCAtMjUsMTQgKzI1LDE0IEBACiAKIG1vZHVsZSBodG1sIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAg
ICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlLAogICAgICAgICBKU0N1c3RvbVRvSlNPYmplY3QK
LSAgICBdIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgeworICAgIF0gaW50ZXJmYWNlIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ2FudmFz
RWxlbWVudCBjYW52YXM7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKaW5kZXggY2Zm
YThkYWI5ZjNlNjdmMjMyNDNhYmExYjEwOWNhMDNlNGZjYjk5ZS4uNjMxMjdkMjk3NjNkYmNhMTg4
ZTQ3ODRmY2VlNTI2NjMxYmNiMWE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0zMCwxNDMgKzMwLDE0
MyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgc2F2ZSgpOwogICAgICAgICB2b2lkIHJl
c3RvcmUoKTsKIAotICAgICAgICB2b2lkIHNjYWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGZsb2F0IHN4LAotICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGZsb2F0IHN5KTsKLSAgICAgICAgdm9pZCByb3RhdGUoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgYW5nbGUpOwotICAgICAgICB2b2lkIHRyYW5zbGF0
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB0eCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgdHkpOwot
ICAgICAgICB2b2lkIHRyYW5zZm9ybShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBm
bG9hdCBtMTEsCi0gICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IG0xMiwKLSAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgbTIxLAotICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBtMjIsCi0gICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGR4LAotICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCBkeSk7Ci0gICAgICAgIHZvaWQgc2V0VHJhbnNmb3JtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IG0xMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgbTEyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBtMjEsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IG0yMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgZHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGR5KTsKKyAgICAgICAgdm9pZCBzY2FsZShbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzeCwKKyAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzeSk7CisgICAgICAgIHZv
aWQgcm90YXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGFuZ2xlKTsK
KyAgICAgICAgdm9pZCB0cmFuc2xhdGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgdHgsCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHR5KTsKKyAgICAgICAgdm9pZCB0cmFuc2Zvcm0oW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgbTExLAorICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBtMTIsCisgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IG0yMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxv
YXQgbTIyLAorICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCBkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgZHkpOworICAgICAgICB2b2lkIHNldFRyYW5zZm9ybShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBtMTEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IG0xMiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgbTIxLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBmbG9hdCBtMjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGR4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBkeSk7CiAK
ICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGdsb2JhbEFscGhhOwotICAgICAgICBhdHRyaWJ1dGUg
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBnbG9iYWxDb21wb3NpdGVPcGVyYXRp
b247CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjsKIAotICAgICAgICBDYW52YXNHcmFkaWVudCBjcmVh
dGVMaW5lYXJHcmFkaWVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeTAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZs
b2F0IHgxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5MSkKKyAgICAgICAgQ2FudmFzR3Jh
ZGllbnQgY3JlYXRlTGluZWFyR3JhZGllbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgeDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCB4MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeTEpCiAgICAgICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIENhbnZhc0dyYWRpZW50IGNyZWF0
ZVJhZGlhbEdyYWRpZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5MCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxv
YXQgcjAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgxLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB5MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgcjEpCisgICAgICAgIENhbnZh
c0dyYWRpZW50IGNyZWF0ZVJhZGlhbEdyYWRpZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IHgwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gZmxvYXQgcjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgxLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgcjEp
CiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgYXR0cmlidXRl
IGZsb2F0IGxpbmVXaWR0aDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbGluZUNhcDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nXSBET01TdHJpbmcgbGluZUpvaW47CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxpbmVDYXA7CisgICAgICAgIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxpbmVKb2luOwogICAgICAgICBhdHRy
aWJ1dGUgZmxvYXQgbWl0ZXJMaW1pdDsKIAogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgc2hhZG93
T2Zmc2V0WDsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHNoYWRvd09mZnNldFk7CiAgICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCBzaGFkb3dCbHVyOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBzaGFkb3dDb2xvcjsKKyAgICAgICAgW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgc2hhZG93Q29sb3I7CiAKICAgICAg
ICAgLy8gRklYTUU6IFRoZXNlIGF0dHJpYnV0ZXMgc2hvdWxkIGFsc28gYmUgaW1wbGVtZW50ZWQg
Zm9yIFY4LgogI2lmICEoZGVmaW5lZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5HKQotICAgICAg
ICBhdHRyaWJ1dGUgW0N1c3RvbV0gQXJyYXkgd2Via2l0TGluZURhc2g7CisgICAgICAgIFtDdXN0
b21dIGF0dHJpYnV0ZSBBcnJheSB3ZWJraXRMaW5lRGFzaDsKICAgICAgICAgYXR0cmlidXRlIGZs
b2F0IHdlYmtpdExpbmVEYXNoT2Zmc2V0OwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBjbGVhclJl
Y3QoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxv
YXQgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IGhlaWdodCk7Ci0gICAgICAgIHZvaWQgZmlsbFJlY3QoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwKLSAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LAotICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHdpZHRoLAotICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IGhlaWdodCk7CisgICAgICAgIHZvaWQgY2xlYXJSZWN0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHgsCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHdpZHRoLAorICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBoZWlnaHQpOwor
ICAgICAgICB2b2lkIGZpbGxSZWN0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHgsCisgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeSwKKyAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBoZWlnaHQpOwogCiAgICAgICAgIHZvaWQg
YmVnaW5QYXRoKCk7CiAgICAgICAgIHZvaWQgY2xvc2VQYXRoKCk7Ci0gICAgICAgIHZvaWQgbW92
ZVRvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0gICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOwotICAg
ICAgICB2b2lkIGxpbmVUbyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4
LAotICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBm
bG9hdCB5KTsKLSAgICAgICAgdm9pZCBxdWFkcmF0aWNDdXJ2ZVRvKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IGNweCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGNweSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBmbG9hdCB5KTsKLSAgICAgICAgdm9pZCBiZXppZXJDdXJ2ZVRvKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGNwMXgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBjcDF5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
ZmxvYXQgY3AyeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IGNwMnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7Ci0g
ICAgICAgIHZvaWQgYXJjVG8oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQg
eDEsCi0gICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
ZmxvYXQgeTEsCi0gICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeDIsCi0gICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgeTIsCi0gICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgcmFkaXVzKQotICAgICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHJlY3QoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeCwKLSAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IHksCi0gICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCB3aWR0aCwKLSAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGhlaWdodCk7Ci0gICAgICAgIHZvaWQgYXJjKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0gICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHksCi0gICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHJhZGl1cywKLSAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc3RhcnRB
bmdsZSwKLSAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
ZmxvYXQgZW5kQW5nbGUsCi0gICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gYW50aWNsb2Nrd2lzZSkKKyAgICAgICAgdm9pZCBtb3ZlVG8oW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CisgICAgICAgIHZv
aWQgbGluZVRvKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsCisgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkp
OworICAgICAgICB2b2lkIHF1YWRyYXRpY0N1cnZlVG8oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZmxvYXQgY3B4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgY3B5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGZsb2F0IHkpOworICAgICAgICB2b2lkIGJlemllckN1cnZlVG8oW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgY3AxeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGNwMXksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBj
cDJ4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZmxvYXQgY3AyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKKyAgICAgICAg
dm9pZCBhcmNUbyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4MSwKKyAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5
MSwKKyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB4MiwKKyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBmbG9hdCB5MiwKKyAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCByYWRpdXMpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIHZvaWQgcmVjdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB4LAorICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgeSwKKyAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IHdpZHRoLAorICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gZmxvYXQgaGVpZ2h0KTsKKyAgICAgICAgdm9pZCBhcmMoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwKKyAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgcmFkaXVzLAorICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzdGFydEFuZ2xlLAor
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBl
bmRBbmdsZSwKKyAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gYm9vbGVhbiBhbnRpY2xvY2t3aXNlKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOwogICAgICAgICB2b2lkIGZpbGwoKTsKICAgICAgICAgdm9pZCBzdHJva2UoKTsKICAgICAg
ICAgdm9pZCBjbGlwKCk7Ci0gICAgICAgIGJvb2xlYW4gaXNQb2ludEluUGF0aChpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7CisgICAgICAg
IGJvb2xlYW4gaXNQb2ludEluUGF0aChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CiAKICAgICAgICAgLy8gdGV4dAogICAgICAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGZvbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dEFs
aWduOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHRCYXNlbGluZTsKIAotICAgICAg
ICBUZXh0TWV0cmljcyBtZWFzdXJlVGV4dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgdGV4dCk7CisgICAgICAgIFRleHRNZXRyaWNzIG1lYXN1cmVUZXh0KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0ZXh0KTsKIAogICAgICAgICAv
LyBvdGhlcgogCi0gICAgICAgIHZvaWQgc2V0QWxwaGEoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgYWxwaGEpOwotICAgICAgICB2b2lkIHNldENvbXBvc2l0ZU9wZXJhdGlv
bihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29tcG9zaXRlT3Bl
cmF0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRBbHBoYShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCBhbHBoYSk7CisgICAgICAgIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9u
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBjb21wb3NpdGVPcGVy
YXRpb24pOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCi0g
ICAgICAgIHZvaWQgc2V0TGluZVdpZHRoKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGZsb2F0IHdpZHRoKTsKLSAgICAgICAgdm9pZCBzZXRMaW5lQ2FwKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjYXApOwotICAgICAgICB2b2lkIHNldExpbmVKb2lu
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBqb2luKTsKLSAgICAg
ICAgdm9pZCBzZXRNaXRlckxpbWl0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZs
b2F0IGxpbWl0KTsKKyAgICAgICAgdm9pZCBzZXRMaW5lV2lkdGgoW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gZmxvYXQgd2lkdGgpOworICAgICAgICB2b2lkIHNldExpbmVDYXAoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNhcCk7CisgICAgICAgIHZv
aWQgc2V0TGluZUpvaW4oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5n
IGpvaW4pOworICAgICAgICB2b2lkIHNldE1pdGVyTGltaXQoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gZmxvYXQgbGltaXQpOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBjbGVhclNo
YWRvdygpOwogCi0gICAgICAgIHZvaWQgZmlsbFRleHQoaW4gRE9NU3RyaW5nIHRleHQsIGluIGZs
b2F0IHgsIGluIGZsb2F0IHksIGluIFtPcHRpb25hbF0gZmxvYXQgbWF4V2lkdGgpOwotICAgICAg
ICB2b2lkIHN0cm9rZVRleHQoaW4gRE9NU3RyaW5nIHRleHQsIGluIGZsb2F0IHgsIGluIGZsb2F0
IHksIGluIFtPcHRpb25hbF0gZmxvYXQgbWF4V2lkdGgpOworICAgICAgICB2b2lkIGZpbGxUZXh0
KGluIERPTVN0cmluZyB0ZXh0LCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBbT3B0aW9uYWxdIGlu
IGZsb2F0IG1heFdpZHRoKTsKKyAgICAgICAgdm9pZCBzdHJva2VUZXh0KGluIERPTVN0cmluZyB0
ZXh0LCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBbT3B0aW9uYWxdIGluIGZsb2F0IG1heFdpZHRo
KTsKIAotICAgICAgICB2b2lkIHNldFN0cm9rZUNvbG9yKGluIERPTVN0cmluZyBjb2xvciwgaW4g
W09wdGlvbmFsXSBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29sb3IoaW4g
ZmxvYXQgZ3JheUxldmVsLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9p
ZCBzZXRTdHJva2VDb2xvcihpbiBET01TdHJpbmcgY29sb3IsIFtPcHRpb25hbF0gaW4gZmxvYXQg
YWxwaGEpOworICAgICAgICB2b2lkIHNldFN0cm9rZUNvbG9yKGluIGZsb2F0IGdyYXlMZXZlbCwg
W09wdGlvbmFsXSBpbiBmbG9hdCBhbHBoYSk7CiAgICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29sb3Io
aW4gZmxvYXQgciwgaW4gZmxvYXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQgYSk7CiAgICAgICAg
IHZvaWQgc2V0U3Ryb2tlQ29sb3IoaW4gZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxvYXQgeSwg
aW4gZmxvYXQgaywgaW4gZmxvYXQgYSk7CiAKLSAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4g
RE9NU3RyaW5nIGNvbG9yLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFscGhhKTsKLSAgICAgICAgdm9p
ZCBzZXRGaWxsQ29sb3IoaW4gZmxvYXQgZ3JheUxldmVsLCBpbiBbT3B0aW9uYWxdIGZsb2F0IGFs
cGhhKTsKKyAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4gRE9NU3RyaW5nIGNvbG9yLCBbT3B0
aW9uYWxdIGluIGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4gZmxv
YXQgZ3JheUxldmVsLCBbT3B0aW9uYWxdIGluIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBz
ZXRGaWxsQ29sb3IoaW4gZmxvYXQgciwgaW4gZmxvYXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQg
YSk7CiAgICAgICAgIHZvaWQgc2V0RmlsbENvbG9yKGluIGZsb2F0IGMsIGluIGZsb2F0IG0sIGlu
IGZsb2F0IHksIGluIGZsb2F0IGssIGluIGZsb2F0IGEpOwogCi0gICAgICAgIHZvaWQgc3Ryb2tl
UmVjdChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LAotICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGZsb2F0IHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gZmxvYXQgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBmbG9hdCBsaW5lV2lkdGgpOworICAgICAgICB2b2lkIHN0cm9rZVJlY3QoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksCisgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB3
aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0g
aW4gZmxvYXQgbGluZVdpZHRoKTsKIAogICAgICAgICB2b2lkIGRyYXdJbWFnZShpbiBIVE1MSW1h
Z2VFbGVtZW50PyBpbWFnZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkKICAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKQEAgLTE5MCwxMiArMTkwLDEyIEBAIG1vZHVsZSBodG1sIHsK
ICNlbmRpZgogCiAgICAgICAgIHZvaWQgZHJhd0ltYWdlRnJvbVJlY3QoaW4gSFRNTEltYWdlRWxl
bWVudCBpbWFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxd
IGZsb2F0IHN4LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHN5LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHN3
LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbF0gZmxvYXQgZHgsIGluIFtPcHRpb25hbF0gZmxvYXQgZHksIGluIFtPcHRp
b25hbF0gZmxvYXQgZHcsIGluIFtPcHRpb25hbF0gZmxvYXQgZGgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgY29tcG9zaXRlT3BlcmF0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGZsb2F0IHN4
LCBbT3B0aW9uYWxdIGluIGZsb2F0IHN5LCBbT3B0aW9uYWxdIGluIGZsb2F0IHN3LCBbT3B0aW9u
YWxdIGluIGZsb2F0IHNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bF0gaW4gZmxvYXQgZHgsIFtPcHRpb25hbF0gaW4gZmxvYXQgZHksIFtPcHRpb25hbF0gaW4gZmxv
YXQgZHcsIFtPcHRpb25hbF0gaW4gZmxvYXQgZGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgY29tcG9zaXRlT3BlcmF0aW9uKTsKIAotICAg
ICAgICB2b2lkIHNldFNoYWRvdyhpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBm
bG9hdCBibHVyLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBjb2xvciwgaW4gW09wdGlvbmFsXSBm
bG9hdCBhbHBoYSk7Ci0gICAgICAgIHZvaWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBm
bG9hdCBoZWlnaHQsIGluIGZsb2F0IGJsdXIsIGluIGZsb2F0IGdyYXlMZXZlbCwgaW4gW09wdGlv
bmFsXSBmbG9hdCBhbHBoYSk7CisgICAgICAgIHZvaWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRo
LCBpbiBmbG9hdCBoZWlnaHQsIGluIGZsb2F0IGJsdXIsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5n
IGNvbG9yLCBbT3B0aW9uYWxdIGluIGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9pZCBzZXRTaGFk
b3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4gZmxv
YXQgZ3JheUxldmVsLCBbT3B0aW9uYWxdIGluIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBz
ZXRTaGFkb3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwg
aW4gZmxvYXQgciwgaW4gZmxvYXQgZywgaW4gZmxvYXQgYiwgaW4gZmxvYXQgYSk7CiAgICAgICAg
IHZvaWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQsIGluIGZsb2F0
IGJsdXIsIGluIGZsb2F0IGMsIGluIGZsb2F0IG0sIGluIGZsb2F0IHksIGluIGZsb2F0IGssIGlu
IGZsb2F0IGEpOwogCkBAIC0yMDksMjUgKzIwOSwyNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IHZvaWQgd2Via2l0UHV0SW1hZ2VEYXRhSEQoaW4gSW1hZ2VEYXRhPyBpbWFnZWRhdGEsIGluIGZs
b2F0IGR4LCBpbiBmbG9hdCBkeSwgaW4gZmxvYXQgZGlydHlYLCBpbiBmbG9hdCBkaXJ0eVksIGlu
IGZsb2F0IGRpcnR5V2lkdGgsIGluIGZsb2F0IGRpcnR5SGVpZ2h0KQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgQ2FudmFzUGF0dGVybiBjcmVhdGVQYXR0ZXJu
KGluIEhUTUxDYW52YXNFbGVtZW50PyBjYW52YXMsIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgcmVwZXRpdGlvblR5cGUpCisgICAgICAgIENhbnZhc1BhdHRlcm4gY3JlYXRl
UGF0dGVybihpbiBIVE1MQ2FudmFzRWxlbWVudD8gY2FudmFzLCBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZ10gaW4gRE9NU3RyaW5nIHJlcGV0aXRpb25UeXBlKQogICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOwotICAgICAgICBDYW52YXNQYXR0ZXJuIGNyZWF0ZVBhdHRlcm4oaW4gSFRN
TEltYWdlRWxlbWVudD8gaW1hZ2UsIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgcmVwZXRpdGlvblR5cGUpCisgICAgICAgIENhbnZhc1BhdHRlcm4gY3JlYXRlUGF0dGVybihp
biBIVE1MSW1hZ2VFbGVtZW50PyBpbWFnZSwgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGluIERP
TVN0cmluZyByZXBldGl0aW9uVHlwZSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgSW1hZ2VEYXRhIGNyZWF0ZUltYWdlRGF0YShpbiBJbWFnZURhdGE/IGltYWdl
ZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgSW1hZ2VE
YXRhIGNyZWF0ZUltYWdlRGF0YShpbiBmbG9hdCBzdywgaW4gZmxvYXQgc2gpCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGN1
c3RvbSBzdHJva2VTdHlsZTsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGN1c3RvbSBmaWxs
U3R5bGU7CisgICAgICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBjdXN0b20gc3Ryb2tlU3R5bGU7Cisg
ICAgICAgIFtDdXN0b21dIGF0dHJpYnV0ZSBjdXN0b20gZmlsbFN0eWxlOwogCiAgICAgICAgIC8v
IHBpeGVsIG1hbmlwdWxhdGlvbgotICAgICAgICBJbWFnZURhdGEgZ2V0SW1hZ2VEYXRhKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN4LCBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCBzeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBzdywgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc2gpCisgICAgICAgIEltYWdlRGF0YSBnZXRJbWFnZURh
dGEoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3gsIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN3LCBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzaCkKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogCi0gICAgICAgIEltYWdlRGF0YSB3ZWJraXRHZXRJbWFnZURhdGFIRChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBzeCwgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc3ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBzdywgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc2gpCisgICAgICAgIEltYWdlRGF0
YSB3ZWJraXRHZXRJbWFnZURhdGFIRChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCBzeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3ksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCBzdywgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxv
YXQgc2gpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZmxvYXQgd2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpbzsKQEAgLTIz
NSw1ICsyMzUsNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHdl
YmtpdEltYWdlU21vb3RoaW5nRW5hYmxlZDsKICAgICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKaW5kZXggM2Y0ZGNkZjRkOTc0YzQ5MTg2NDNkYzMx
ZmRjZjdlZjA3MTliOGQzNC4uNzgwZTc1NjFlNzAxM2JjNGYxNWVlODQyM2FkNjYyMGFhYWQ0Nzhm
YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbApAQCAtMjUsMTIgKzI1
LDEyIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTMsCiAg
ICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBd
IERhdGFWaWV3IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIGludGVyZmFjZSBEYXRhVmlldyA6
IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIC8vIEFsbCB0aGVzZSBtZXRob2RzIHJhaXNlIGFu
IGV4Y2VwdGlvbiBpZiB0aGV5IHdvdWxkIHJlYWQgb3Igd3JpdGUgYmV5b25kIHRoZSBlbmQgb2Yg
dGhlIHZpZXcuCiAKICAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgY3VzdG9tIGNvZGUgYmVjYXVz
ZSBvdXIgY29kZSBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydCBpbnQ4X3QgdHlwZS4KQEAgLTQx
LDE5ICs0MSwxOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBn
ZXRVaW50OCgpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gc2hvcnQgZ2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBieXRl
T2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBzaG9ydCBnZXRJbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZz
ZXQsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHVuc2lnbmVk
IHNob3J0IGdldFVpbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25h
bF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHVu
c2lnbmVkIHNob3J0IGdldFVpbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIFtPcHRp
b25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGxvbmcgZ2V0SW50MzIoaW4g
dW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5k
aWFuKQorICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBsb25nIGdldEludDMyKGluIHVuc2ln
bmVkIGxvbmcgYnl0ZU9mZnNldCwgW09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikK
ICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdW5zaWduZWQgbG9uZyBnZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zm
c2V0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSB1bnNpZ25lZCBsb25nIGdldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5
dGVPZmZzZXQsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gVXNlIGN1c3RvbSBjb2RlIHRv
IGhhbmRsZSBOYU4gY2FzZSBmb3IgSlNDLgotICAgICAgICBbSlNDdXN0b20sIFN0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgZ2V0RmxvYXQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgIFtKU0N1c3RvbSwgU3Ry
aWN0VHlwZUNoZWNraW5nXSBmbG9hdCBnZXRGbG9hdDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9m
ZnNldCwgW09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0pTQ3VzdG9tLCBTdHJpY3RUeXBlQ2hlY2tp
bmddIGRvdWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgW0pTQ3VzdG9tLCBTdHJpY3RU
eXBlQ2hlY2tpbmddIGRvdWJsZSBnZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNl
dCwgW09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29k
ZSBiZWNhdXNlIG91ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IHVpbnQ4X3QgdHlw
ZS4KQEAgLTY0LDE4ICs2NCwxOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIFtDdXN0b21dIHZv
aWQgc2V0VWludDgoKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0SW50MTYoaW4gdW5zaWduZWQgbG9uZyBi
eXRlT2Zmc2V0LCBpbiBzaG9ydCB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVu
ZGlhbikKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRJbnQxNihpbiB1bnNp
Z25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHNob3J0IHZhbHVlLCBbT3B0aW9uYWxdIGluIGJvb2xl
YW4gbGl0dGxlRW5kaWFuKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldFVpbnQxNihpbiB1bnNpZ25lZCBsb25n
IGJ5dGVPZmZzZXQsIGluIHVuc2lnbmVkIHNob3J0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldFVp
bnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHVuc2lnbmVkIHNob3J0IHZhbHVl
LCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldElu
dDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwgaW4gW09wdGlv
bmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
dm9pZCBzZXRJbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGxvbmcgdmFsdWUs
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0VWlu
dDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgbG9uZyB2YWx1ZSwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCBzZXRVaW50MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1
bnNpZ25lZCBsb25nIHZhbHVlLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQog
ICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkIHNldEZsb2F0MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBm
bG9hdCB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRGbG9hdDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0
ZU9mZnNldCwgaW4gZmxvYXQgdmFsdWUsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRp
YW4pCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgc2V0RmxvYXQ2NChpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQs
IGluIGRvdWJsZSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxv
bmcgYnl0ZU9mZnNldCwgaW4gZG91YmxlIHZhbHVlLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0
dGxlRW5kaWFuKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUVGV4
dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbAppbmRleCA1NjhhYTlhM2Q5ZjBiYzQ0MjM0MmNlYTlm
YzdkYTJjN2NlYjBlZDcxLi4wODA2MzZmNTU1NmFkYmU1YWQ3ODYyNmY2OGIxMmIwZGVhNDcyNDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVy
QW5pc290cm9waWMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VC
R0wsCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAg
T21pdENvbnN0cnVjdG9yLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMgeworICAgIF0gaW50ZXJmYWNlIEVYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBURVhUVVJFX01BWF9B
TklTT1RST1BZX0VYVCA9IDB4ODRGRTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IE1BWF9U
RVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCA9IDB4ODRGRjsKICAgICB9OwotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCmluZGV4IDhlYWViZTRkZWQ4
YTAyY2IwODhkMmEwMGQ5YjBkY2RiNjYyZDE1OTIuLjJmMmIyMjc4MzZlNzAzOWM3ZDE3YmMwMzI5
ZTkyZDg4ZjFmN2Y4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zs
b2F0MzJBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFy
cmF5LmlkbApAQCAtMjUsNyArMjUsNyBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0
cnVjdG9yUGFyYW1ldGVycz0xLAogICAgICAgICBOdW1lcmljSW5kZXhlZEdldHRlciwKQEAgLTM0
LDE1ICszNCwxNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAg
ICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAg
ICBdIEZsb2F0MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBpbnRlcmZhY2UgRmxv
YXQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9u
ZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBGbG9hdDMyQXJyYXkgc3ViYXJyYXkoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAgICAgICAgRmxvYXQzMkFy
cmF5IHN1YmFycmF5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc3RhcnQs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBsb25nIGVuZCk7
CiAKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gRmxvYXQzMkFycmF5IGFycmF5LCBbT3B0aW9uYWxd
IGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVu
Y2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAg
ICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKaW5kZXggYWJmZWIyMTc4ODkwNDBhNTZjNWFi
YjkwOTNlNGFlY2VjMTJmMmNkOS4uNDM2YzNkNTM5YWEzNjUyYjExYzgzYmU5NWM5ODg4NDhlZDg3
NDQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsCkBA
IC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJh
bWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTUgKzM0LDE1
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3Vz
dG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gRmxvYXQ2
NEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIGludGVyZmFjZSBGbG9hdDY0QXJyYXkg
OiBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gODsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7Ci0gICAgICAgIEZsb2F0NjRBcnJheSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOworICAgICAgICBGbG9hdDY0QXJyYXkgc3ViYXJy
YXkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAg
ICAvLyB2b2lkIHNldChpbiBGbG9hdDY0QXJyYXkgYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWdu
ZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNldChpbiBzZXF1ZW5jZTxsb25nPiBh
cnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgICAgICAgIFtDdXN0
b21dIHZvaWQgc2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDE2QXJyYXkuaWRsCmluZGV4IGY2ZDA4OWVhMzM2ZmM3NTlkY2U3N2VlYzNlYjA4OWFiZjZh
OTYxZWUuLjk3ODA3NzFjYTQ3Nzc1OGQ5MTJmZTk4YWZlNTI0OTU0NDRhZTg3ZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCkBAIC0yNCw3ICsyNCw3IEBACiAg
Ki8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0
b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAg
IE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzMsMTUgKzMzLDE1IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAg
ICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gSW50MTZBcnJheSA6IEFycmF5QnVmZmVy
VmlldyB7CisgICAgXSBpbnRlcmZhY2UgSW50MTZBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSAyOwogCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgSW50
MTZBcnJheSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHN0
YXJ0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGxvbmcgZW5k
KTsKKyAgICAgICAgSW50MTZBcnJheSBzdWJhcnJheShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBsb25nIHN0YXJ0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAgICAvLyB2b2lkIHNldChpbiBJbnQxNkFycmF5IGFy
cmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9p
ZCBzZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9u
ZyBvZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwogICAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbAppbmRleCBmOTg4MzVhMmM3
Y2UyOTlmMTlhZDA3MjNhMTExNjZhYzE1ZWEwMjdiLi5iNzg1ZGYxOGMxN2YzZDI2MmJlNjkzMjk0
Zjg1NDQ1OGM4NjY0N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQzMkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5
LmlkbApAQCAtMjUsNyArMjUsNyBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0cnVj
dG9yUGFyYW1ldGVycz0xLAogICAgICAgICBOdW1lcmljSW5kZXhlZEdldHRlciwKQEAgLTM0LDE1
ICszNCwxNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAg
ICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBd
IEludDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gaW50ZXJmYWNlIEludDMyQXJy
YXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVT
X1BFUl9FTEVNRU5UID0gNDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7Ci0gICAgICAgIEludDMyQXJyYXkgc3ViYXJyYXkoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisgICAgICAgIEludDMyQXJyYXkgc3ViYXJyYXko
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBsb25nIGVuZCk7CiAKICAgICAgICAgLy8g
dm9pZCBzZXQoaW4gSW50MzJBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25n
IG9mZnNldCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBb
T3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9p
ZCBzZXQoKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ludDhBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJy
YXkuaWRsCmluZGV4IDAwZmFhNGZjMzhjOWM2ZTk4MTA0OTY1NjA1Nzk1MTZhODU0MGJkNzAuLjIz
NGZlZDI1ZDA3OTVjODM0NDhmYmZjYzc0M2RjOTdjZGE0ZTg1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50OEFycmF5LmlkbApAQCAtMjUsNyArMjUsNyBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0
b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAogICAgICAgICBOdW1lcmljSW5k
ZXhlZEdldHRlciwKQEAgLTM0LDE1ICszNCwxNSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpT
Tm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90
Q2hlY2tDb25zdGFudHMKLSAgICBdIEludDhBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAg
XSBpbnRlcmZhY2UgSW50OEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDE7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBJbnQ4QXJyYXkgc3ViYXJy
YXkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAgICAgICAgSW50
OEFycmF5IHN1YmFycmF5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc3Rh
cnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBsb25nIGVuZCk7
CiAKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gSW50OEFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGlu
IHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVuY2U8
bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAg
ICBbQ3VzdG9tXSB2b2lkIHNldCgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbAppbmRleCA5M2Yw
YTAxZDgwNzgzYWU2Njg4MDFkMTVkNGQwODI5OGE1Yzk5NmQxLi43Yzk1ZTI5OTAyY2M4YjU3ZDg1
NTFhNzg2Nzk4Nzk0ODRiNTAwNDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAg
Ki8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1XRUJHTCwKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0
LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMK
LSAgICBdIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMgeworICAgIF0gaW50ZXJmYWNlIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgRlJBR01FTlRfU0hB
REVSX0RFUklWQVRJVkVfSElOVF9PRVMgPSAweDhCOEI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbAppbmRleCA2NTM3ZjQ3
MDc2MWJmN2M0OGE4MDQ0YjNlN2M4NWQxNTE1NjQxZWEzLi4zNTBjMzcxOTNhMWI0OTBmNDJiNmM4
OWM2Njg5M2I2N2I4OTkzYjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwKQEAgLTI0LDEwICsyNCwxMCBAQAogICovCiAKIG1vZHVsZSBodG1s
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAg
ICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENv
bnN0cnVjdG9yCi0gICAgXSBPRVNUZXh0dXJlRmxvYXQgeworICAgIF0gaW50ZXJmYWNlIE9FU1Rl
eHR1cmVGbG9hdCB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwKaW5kZXggYzNkMzY2Njc2ZjY0ZjkxMjkz
Mzk1YmM0MWNhM2YyYWYzNzI3NWUyMi4uZDk0ZWJhOTUwMzliN2NjZTkxYmRkNmVmZTgxZGFhYjZm
OTk4OGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRl
eEFycmF5T2JqZWN0LmlkbApAQCAtMjQsMTcgKzI0LDE3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwg
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwgCiAg
ICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENv
bnN0cnVjdG9yLCAKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gT0VTVmVydGV4
QXJyYXlPYmplY3QgeworICAgIF0gaW50ZXJmYWNlIE9FU1ZlcnRleEFycmF5T2JqZWN0IHsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgaW50IFZFUlRFWF9BUlJBWV9CSU5ESU5HX09FUyA9IDB4ODVC
NTsKICAgICAgICAgCiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIFdlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMgY3JlYXRlVmVydGV4QXJyYXlPRVMoKTsKLSAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZVZlcnRleEFycmF5T0VTKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgYXJyYXlPYmplY3Qp
OwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuICAgICAgaXNWZXJ0ZXhBcnJh
eU9FUyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTIGFycmF5T2JqZWN0KTsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAg
ICAgICAgIGJpbmRWZXJ0ZXhBcnJheU9FUyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTIGFycmF5T2JqZWN0KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGRlbGV0ZVZl
cnRleEFycmF5T0VTKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMgYXJyYXlPYmplY3QpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBib29sZWFuICAgICAgaXNWZXJ0ZXhBcnJheU9FUyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTIGFycmF5T2JqZWN0KTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIGJpbmRWZXJ0ZXhBcnJheU9FUyhbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTIGFy
cmF5T2JqZWN0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbAppbmRleCA3OWUwNWVmYzRlYmY2NTc5
OTdhOWI1M2NlMDNmNTgyYzBlYThiZmFmLi5hNmEyYzRhOWMyNjU4MmYwMTkzZWFjMjRjMDc5ZGM0
NWE5ZTM4MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZB
cnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRs
CkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQ
YXJhbWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTQgKzM0
LDE0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAg
Q3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWlu
dDE2QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gaW50ZXJmYWNlIFVpbnQxNkFycmF5
IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19Q
RVJfRUxFTUVOVCA9IDI7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwotICAgICAgICBVaW50MTZBcnJheSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAg
ICAgICAgVWludDE2QXJyYXkgc3ViYXJyYXkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gbG9uZyBzdGFydCwgW09wdGlvbmFsXSBpbiBsb25nIGVuZCk7CiAKICAgICAgICAgLy8gdm9p
ZCBzZXQoaW4gVWludDE2QXJyYXkgYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBv
ZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNldChpbiBzZXF1ZW5jZTxsb25nPiBhcnJheSwgW09w
dGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQg
c2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MzJBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJB
cnJheS5pZGwKaW5kZXggNjdlNjFiMjlmZDhlOWRjZDE5MDU2ODUyYTk3OTk4NmQ3ZmE5NTE2Yy4u
ODM3YmFmMDFkYzkyMmQxOWEwYjkzNzRhNzQ1MWMxZDk0NTA3OTBmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbApAQCAtMjUsNyArMjUsNyBAQAogICovCiAK
IG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tQ29u
c3RydWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAogICAgICAgICBOdW1l
cmljSW5kZXhlZEdldHRlciwKQEAgLTM0LDE0ICszNCwxNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAg
IERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFVpbnQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3
IHsKKyAgICBdIGludGVyZmFjZSBVaW50MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSA0OwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgVWludDMy
QXJyYXkgc3ViYXJyYXkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFy
dCwgaW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisgICAgICAgIFVpbnQzMkFycmF5IHN1YmFycmF5
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc3RhcnQsIFtPcHRpb25hbF0g
aW4gbG9uZyBlbmQpOwogCiAgICAgICAgIC8vIHZvaWQgc2V0KGluIFVpbnQzMkFycmF5IGFycmF5
LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgLy8gdm9pZCBz
ZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBv
ZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbAppbmRleCAyNjBhMzI3M2U4Mjhm
NTc2ODU5NzgwYTM1OTg1NWFhMGEyNzlkY2Y4Li43OTBjNTM2MWQzYmVlMmJkMDA1YzFhNTliMmZl
YWVkMWUxMjRjYjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50
OEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5Lmlk
bApAQCAtMjUsNyArMjUsNyBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9y
UGFyYW1ldGVycz0xLAogICAgICAgICBOdW1lcmljSW5kZXhlZEdldHRlciwKQEAgLTM0LDE0ICsz
NCwxNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAg
IEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFVp
bnQ4QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gaW50ZXJmYWNlIFVpbnQ4QXJyYXkg
OiBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gMTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7Ci0gICAgICAgIFVpbnQ4QXJyYXkgc3ViYXJyYXkoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgaW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisgICAg
ICAgIFVpbnQ4QXJyYXkgc3ViYXJyYXkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
bG9uZyBzdGFydCwgW09wdGlvbmFsXSBpbiBsb25nIGVuZCk7CiAKICAgICAgICAgLy8gdm9pZCBz
ZXQoaW4gVWludDhBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNl
dCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXQo
KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQ4Q2xhbXBlZEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4
Q2xhbXBlZEFycmF5LmlkbAppbmRleCBjYWRkNjYzNjQ2YjkzM2JkODE5NzFiMjVkMzAwM2FhNmZj
NGIyNDEyLi41MDYzM2QwZGUyZDQ0OTViNDk0YzkyZDhkNTViZGRjZjYxNDE3N2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhDbGFtcGVkQXJyYXkuaWRsCkBAIC0y
NSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0
ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTUgKzM0LDE1IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9t
VG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDhDbGFt
cGVkQXJyYXkgOiBVaW50OEFycmF5IHsKKyAgICBdIGludGVyZmFjZSBVaW50OENsYW1wZWRBcnJh
eSA6IFVpbnQ4QXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9F
TEVNRU5UID0gMTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7Ci0gICAgICAgIFVpbnQ4Q2xhbXBlZEFycmF5IHN1YmFycmF5KGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc3RhcnQsIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOwor
ICAgICAgICBVaW50OENsYW1wZWRBcnJheSBzdWJhcnJheShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBsb25nIHN0YXJ0LCBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAg
ICAvLyBGSVhNRTogTWlzc2luZyBvdGhlciBzZXR0ZXJzIQogICAgICAgICAvLyB2b2lkIHNldChp
biBVaW50OENsYW1wZWRBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9m
ZnNldCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBbT3B0
aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBz
ZXQoKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQWN0aXZlSW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEFjdGl2ZUluZm8uaWRsCmluZGV4IDIwYWI4YWY5MDNhMTFjMDNmMGJmYzk2MWFlOThiZTdjOTVj
N2JkZGUuLmM1NGYyYjFhNjQxMzg5Y2M2NWI5YTZmZWU1ZGZmZjUyM2UyNzQxMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbApAQCAtMjUsMTIg
KzI1LDEyIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENv
bmRpdGlvbmFsPVdFQkdMLAotICAgIF0gV2ViR0xBY3RpdmVJbmZvIHsKKyAgICBbCisgICAgICAg
IENvbmRpdGlvbmFsPVdFQkdMCisgICAgXSBpbnRlcmZhY2UgV2ViR0xBY3RpdmVJbmZvIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBzaXplOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgaW50IHR5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbmFtZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xCdWZmZXIuaWRsCmluZGV4IDMxMmIwMDkxMWRkMDVkNTA2NGQ3NzAzZmJmZGJhYjEyNDRi
ZTY2NWMuLjM4YTg2OTZkOGMxMWQ1N2FhNmJjNjRhMzkzNGNkYjdmN2RiZGY3NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKQEAgLTI0LDggKzI0LDggQEAK
ICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9u
YWw9V0VCR0wsCi0gICAgXSBXZWJHTEJ1ZmZlciB7CisgICAgWworICAgICAgICBDb25kaXRpb25h
bD1XRUJHTAorICAgIF0gaW50ZXJmYWNlIFdlYkdMQnVmZmVyIHsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmlkbAppbmRleCA3ZmRlNWJiYTkwODYyZDIwZDZkNmRjNGY3ZTk1YjExYzhiMTll
NWZiLi40ZDljNGEwY2Y2MWQyYTczNTAzNjJlZmY1YTU1Y2EzODM2NDNlZTEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsCkBAIC0yNCwxNiArMjQsMTYgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAogICAgICAgICBK
U0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCiAgICAgICAgIE9taXRDb25zdHJ1Y3Rv
ciwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gV2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEMgeworICAgIF0gaW50ZXJmYWNlIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDIHsK
ICAgICAgICAgLyogQ29tcHJlc3NlZCBUZXh0dXJlIEZvcm1hdHMgKi8KICAgICAgICAgY29uc3Qg
dW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdCX1MzVENfRFhUMV9FWFQgICAgICAgID0gMHg4M0Yw
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9F
WFQgICAgICAgPSAweDgzRjE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VE
X1JHQkFfUzNUQ19EWFQzX0VYVCAgICAgICA9IDB4ODNGMjsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgaW50IENPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDVfRVhUICAgICAgID0gMHg4M0YzOwogICAg
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmlkbAppbmRleCA1NmRhMWM2MWVlZDI5YTVmOGMzZGU4YTBjOWMzMWQx
YjNkNmEyMzMzLi5kZTBhYTg3ZWVjM2IxYWM3NWQxMTBlN2E1ZmJkNjg0NjE3YWY0ODM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICAgICAgT21p
dENvbnN0cnVjdG9yCi0gICAgXSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIHsKKyAgICBdIGludGVy
ZmFjZSBXZWJHTENvbnRleHRBdHRyaWJ1dGVzIHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4g
YWxwaGE7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGRlcHRoOwogICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiBzdGVuY2lsOwpAQCAtMzYsNCArMzYsNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIHByZW11bHRpcGxpZWRBbHBoYTsKICAgICAgICAgYXR0cmli
dXRlIGJvb2xlYW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyOwogICAgIH07Ci19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsCmluZGV4IDM3
MzVmMTI0NTgyOTFmYThlZDRhMmRiYzQ2YmM1NmMxNmIyYTJjZTQuLmQ1ZjQzOWQwOWE5MDJhOGYx
NmI2ODc5Yjk1ZGFkNTM4ZjViOWNhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUg
aHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VC
R0wsCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIFdlYkdMQ29udGV4
dEV2ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVk
QnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgc3RhdHVzTWVzc2FnZTsKKyAgICBdIGludGVy
ZmFjZSBXZWJHTENvbnRleHRFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0YXR1c01lc3Nh
Z2U7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKaW5kZXggYjMwN2ExNDk4MzVhZWQxMjA2ZmEy
Y2Y2NGQ3YjNmNGMxMjkzMzI2NC4uYzRmNDMyZTljYTdiYjYzYmViMDgxMGNjNGQwOTQxZWVkZGQw
OGIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogICovCiAKIG1vZHVsZSBodG1s
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAg
ICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENv
bnN0cnVjdG9yLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvIHsKKyAgICBdIGludGVyZmFjZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvIHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9IDB4OTI0
NTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMID0g
MHg5MjQ2OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCmluZGV4IGVlMzMwYjZhZTRlMzU0OTFlY2FhNjhiMDI2NTdi
MzUzOGY0NDk3ODYuLmEwYzE2ZGQ3YzVlNjRiZmI5NGU5NTQ4OThmMWMwOThiY2U1Y2IzZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwK
QEAgLTI0LDExICsyNCwxMSBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAgICAgICAgIEpTR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBX
ZWJHTERlYnVnU2hhZGVycyB7CisgICAgXSBpbnRlcmZhY2UgV2ViR0xEZWJ1Z1NoYWRlcnMgewog
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIERPTVN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNo
YWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5pZGwKaW5kZXggNTZlZjUzN2Mw
NTY2YTQ3MDg5YzIxZGUyOTNiYjhjMjE2YTA4ZmY4Yy4uNDUyODY2MjUxNDBjZWNmNTZlYTM0ODQ2
Mjk3Zjg4MzZmNjIzMWE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZXB0aFRleHR1cmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVwdGhUZXh0dXJlLmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAgKi8KIAogbW9kdWxlIGh0
bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwK
ICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0
Q29uc3RydWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFdlYkdMRGVw
dGhUZXh0dXJlIHsKKyAgICBdIGludGVyZmFjZSBXZWJHTERlcHRoVGV4dHVyZSB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGludCBVTlNJR05FRF9JTlRfMjRfOF9XRUJHTCA9IDB4ODRGQTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RnJhbWVidWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5pZGwKaW5kZXggZDBjYWE5MTdmZDg0ZmYzZTgzYTcwZWIzZmEwZTFjY2Y1MDk3MWZlMy4u
ZDdhOGM1NTJhMGRhMjQ2NTkxMzBjNTk3MGEwZTg5ZjI4MTYxMzAwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwKQEAgLTI0LDggKzI0LDgg
QEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVdFQkdMCi0gICAgXSBXZWJHTEZyYW1lYnVmZmVyIHsKKyAgICBdIGludGVy
ZmFjZSBXZWJHTEZyYW1lYnVmZmVyIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5pZGwKaW5kZXggMzkwZGEyNjM4OWQ3MTIy
ODUyNjJjMzZmMDdkYWYwYjc0MDFkODYxYi4uMWJhYWIyNDAwMTMxM2JhMGUzZTZmNGM5MTdjMmQ2
NjI4N2MwYTk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xM
b3NlQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3Nl
Q29udGV4dC5pZGwKQEAgLTI0LDEyICsyNCwxMiBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAgICAgICAg
IEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENvbnN0cnVj
dG9yCi0gICAgXSBXZWJHTExvc2VDb250ZXh0IHsKKyAgICBdIGludGVyZmFjZSBXZWJHTExvc2VD
b250ZXh0IHsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4dCgp
OwogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CiAg
ICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlk
bAppbmRleCAzMjZmMWMzNzY2YjA4OTE3ZGE5ZWVmYjJhZWM2NzE4ODIwZjMzNzZmLi40M2YzNmIw
OWZmNDhlYTE0M2JlZDU0ODFlYzVjMTA0YTVjNGQyMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKQEAgLTI0LDggKzI0LDggQEAKICAqLwogCiBtb2R1
bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdF
QkdMCi0gICAgXSBXZWJHTFByb2dyYW0geworICAgIF0gaW50ZXJmYWNlIFdlYkdMUHJvZ3JhbSB7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmJ1ZmZlci5pZGwKaW5kZXggYTY1MThlYTJlOWI0MWI4YmIyNTg0YzVhODNjNjcwNWEyNDY1
YTI3OS4uYWM3Y2QxMzhmYTAzNzEyZTQ0NDczZWZmZmJlMDg4ZjdiMmEyNDIzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbApAQCAtMjQs
OCArMjQsOCBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wKLSAgICBdIFdlYkdMUmVuZGVyYnVmZmVyIHsKKyAg
ICBdIGludGVyZmFjZSBXZWJHTFJlbmRlcmJ1ZmZlciB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbApp
bmRleCA5YmY2ZmY1NDQwNGIxNjQ4MDdhNjc2N2U1ODM3YmY4NDYyNDMxNGE1Li5mY2JhNzI4ZWVm
NmE4ODAxN2Q0NWE0YzY4MzE0YTEyNWVhY2EwMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKQEAgLTI1LDExICsyNSwx
MSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBXZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0IHsKKyAgICBdIGludGVyZmFjZSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgOiBDYW52YXNSZW5kZXJpbmdDb250ZXh0IHsKIAogICAgICAgICAvKiBDbGVhckJ1ZmZlck1h
c2sgKi8KICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IERFUFRIX0JVRkZFUl9CSVQgICAgICAg
ICAgICAgICA9IDB4MDAwMDAxMDA7CkBAIC02NjUsNSArNjY1LDUgQEAgbW9kdWxlIGh0bWwgewog
CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgICAgICAgICB2aWV3cG9ydChpbiBs
b25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpOwogICAgIH07
Ci19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YWRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlci5pZGwKaW5k
ZXggMmFlYjcwNGQ2MzZjNDZmMDYzNTNmYjAyYmI0NTJmY2ZhOTM4NmExMy4uOTFiMWNmOTA1YmU3
N2Q3ZmEwZjkxMzMyZTZjNDIzYjQ1NTE3MDA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xTaGFkZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMU2hhZGVyLmlkbApAQCAtMjQsOCArMjQsOCBAQAogICovCiAKIG1vZHVsZSBodG1s
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wKLSAg
ICBdIFdlYkdMU2hhZGVyIHsKKyAgICBdIGludGVyZmFjZSBXZWJHTFNoYWRlciB7CiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5pZGwKaW5kZXggN2NmYjgwZTZlNDI5N2E2NTZiODY5YTRhZWZi
OTZkYmQyMWFlNjRkNy4uZTYzM2FhNzk4ZjRmMjZlNDA5ZjhlNjJiOWIxMzQ3MGFkODcwYWIyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0LmlkbApAQCAtMjYsMTIgKzI2LDEyIEBACiAKIG1vZHVsZSBodG1sIHsK
IAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAotICAgIF0gV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQgeworICAgIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VC
R0wKKyAgICBdIGludGVyZmFjZSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgcmFuZ2VNaW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBpbnQgcmFuZ2VNYXg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgcHJlY2lz
aW9uOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbAppbmRleCA4ZTcyZGQzNGQ1ZjcxZTA2ZTFjOGQ5YzY2ZTFhNmY0NzZmMjc0MzFm
Li45ODUwZDE4MWQ1ZWMyNjllODdkYmU1YmEzODRiMjhhZTkzZDA5MzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKQEAgLTI0LDggKzI0LDggQEAKICAq
LwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVdFQkdMCi0gICAgXSBXZWJHTFRleHR1cmUgeworICAgIF0gaW50ZXJmYWNlIFdlYkdM
VGV4dHVyZSB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwKaW5kZXggZWIzMTY3Y2Q5OTJkNDNiMDQ4ODAw
YjQ5ZThjMGFhZjFmZDE2MjA0ZS4uYzdmNGY0MDk4MWYxYWUzMmM1YjBhOGQ5NjcyODYxYmI4YThh
NzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3Jt
TG9jYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVW5pZm9y
bUxvY2F0aW9uLmlkbApAQCAtMjUsOCArMjUsOCBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wKLSAgICBdIFdl
YkdMVW5pZm9ybUxvY2F0aW9uIHsKKyAgICBdIGludGVyZmFjZSBXZWJHTFVuaWZvcm1Mb2NhdGlv
biB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCmluZGV4IDBhYmJlMDc0NmE1NzJkMDc2
NWQyMTQ2MjE1ZTE0MDg0MjFlZTI1NWIuLmZiMzdhMTAwMGI3YzYxOWI1N2ZkZWVlN2M4NWFlODBk
NmFmNDJmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsCkBAIC0yNCw4ICsyNCw4IEBACiAgKi8KIAogbW9k
dWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1X
RUJHTAotICAgIF0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyB7CisgICAgXSBpbnRlcmZhY2Ug
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyB7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmlkbAppbmRleCBjOTI4ZDQ0
OTQwMzEzOGViN2QzMjQ0YTA3ZjJlYzA5NTkwZjhiZWIwLi42ZWI2NzhjNDQzZTc5NzliMWU4NGJm
MTUyNzBhZjEyNzdiYjdlYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hB
RE9XX0RPTSwKICAgICAgICAgVjhFbmFibGVkQXRSdW50aW1lPXNoYWRvd0RPTQotICAgIF0gSFRN
TENvbnRlbnRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBzZWxlY3Q7CisgICAgXSBpbnRlcmZhY2UgSFRNTENvbnRlbnRFbGVtZW50
IDogSFRNTEVsZW1lbnQgeworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBz
ZWxlY3Q7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MU2hhZG93RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MU2hhZG93RWxlbWVudC5pZGwKaW5kZXggOTRmYWNiN2JlYTQ0YmU4YjcwMzA1ODUwNWIwZWU3
NDY4N2Y0ZmUzNC4uZTBjNDUzOWZhYzhkMTMyZmMwZjhlNDkzZWU4M2U0NTYyMmMyNzFjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxTaGFkb3dFbGVtZW50LmlkbApA
QCAtMzAsMTAgKzMwLDEwIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAogICAgICAgICBWOEVuYWJsZWRB
dFJ1bnRpbWU9c2hhZG93RE9NCi0gICAgXSBIVE1MU2hhZG93RWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKKyAgICBdIGludGVyZmFjZSBIVE1MU2hhZG93RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCmluZGV4
IDg0NWE4MGMwMTk0YmJiNTA1NThkYTgyMjkzZTQ2OWIxZGUyNWFlNWEuLjZmZjIxZGRjODY2ODJk
Mjg0Mzg3Mjc5OTg5M2JmZGMyZjRmOTA4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5pZGwKQEAgLTI1LDEzICsyNSwxMyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAg
ICAgIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRlb1RyYWNrLAogICAgICAgICBFdmVudFRh
cmdldCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTQ3VzdG9tSXNS
ZWFjaGFibGUKLSAgICBdIFRleHRUcmFjayB7CisgICAgXSBpbnRlcmZhY2UgVGV4dFRyYWNrIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGxhbmd1YWdlOwpAQCAtNDAsNyArNDAsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEhJRERFTiA9IDE7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNIT1dJTkcgPSAyOwogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hv
cnQgbW9kZQotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgVGV4dFRyYWNrQ3VlTGlzdCBjdWVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
VGV4dFRyYWNrQ3VlTGlzdCBhY3RpdmVDdWVzOwpAQCAtNTQsMTEgKzU0LDExIEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRk
RXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAg
ICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBp
biBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4g
RXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9Owot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbAppbmRleCBk
NTUyNTI1YTQyMTMwOGRhNmM3ZWI2NGZkNzUzZTkxMjY3YzZmNzljLi43YmU2Yjc1NGIxOGQ0MThk
OTlmZGJlNjFkZmY5MDg2ODk3MDkyZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RleHRUcmFja0N1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tDdWUuaWRsCkBAIC0yNSwxNiArMjUsMTYgQEAKIAogbW9kdWxlIGh0bWwgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAog
ICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFjaywKICAgICAgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAotICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcg
aWQsIGluIGRvdWJsZSBzdGFydFRpbWUsIGluIGRvdWJsZSBlbmRUaW1lLCBpbiBET01TdHJpbmcg
dGV4dCwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHNldHRpbmdz
LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHBhdXNlT25FeGl0KSwK
KyAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIGlkLCBpbiBkb3VibGUgc3RhcnRUaW1l
LCBpbiBkb3VibGUgZW5kVGltZSwgaW4gRE9NU3RyaW5nIHRleHQsIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzZXR0aW5ncywgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gYm9vbGVhbiBwYXVzZU9uRXhpdCksCiAgICAgICAgIENhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBKU0N1c3Rv
bU1hcmtGdW5jdGlvbiwKICAgICAgICAgSlNDdXN0b21Jc1JlYWNoYWJsZQotICAgIF0gVGV4dFRy
YWNrQ3VlIHsKKyAgICBdIGludGVyZmFjZSBUZXh0VHJhY2tDdWUgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgVGV4dFRyYWNrIHRyYWNrOwogCiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgaWQ7CkBAIC00MywxNiArNDMsMTYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1
dGUgYm9vbGVhbiBwYXVzZU9uRXhpdDsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZl
cnRpY2FsCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAg
ICAgICAgc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVh
biBzbmFwVG9MaW5lczsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbGluZQotICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgcG9zaXRpb24KLSAgICAgICAgICAg
IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNpemUKLSAgICAgICAgICAgIHNl
dHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ24KLSAgICAgICAgICAg
IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogICAgICAg
ICBEb2N1bWVudEZyYWdtZW50IGdldEN1ZUFzSFRNTCgpOwpAQCAtNjMsMTIgKzYzLDEyIEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZv
aWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29s
ZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZl
bnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWVMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
TGlzdC5pZGwKaW5kZXggMzgwZTU5YTMxN2EwNzhkNzZhNGVhMzIxMGM2YTljZWZiZjdjOTBiYi4u
OGQ1MjFkOGQ2MGZjNzk5Yzk1ODZkNDgyZDM1ODk0ODVjNDk1OGRlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaWRsCkBAIC0yNSwxNCArMjUsMTQg
QEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0
VmlkZW9UcmFjaywKICAgICAgICAgSW5kZXhlZEdldHRlcgotICAgIF0gVGV4dFRyYWNrQ3VlTGlz
dCB7CisgICAgXSBpbnRlcmZhY2UgVGV4dFRyYWNrQ3VlTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgVGV4dFRyYWNrQ3VlIGl0
ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIFRleHRUcmFja0N1ZSBnZXRDdWVC
eUlkKGluIERPTVN0cmluZyBpZCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCmluZGV4IGFkNGU4NjIxYzY4NDg4NjYzN2M4ODky
MjIyZjllOGM2NDE1Yjc4M2EuLmIyZTU0OWMzZGQzOGUxOGZkNGZjOGI4MTUxNTYwYjRiYTY4YzY0
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbApAQCAt
MjUsNyArMjUsNyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgICAgIFY4RW5hYmxlZEF0UnVu
dGltZT13ZWJraXRWaWRlb1RyYWNrLAogICAgICAgICBJbmRleGVkR2V0dGVyLApAQCAtMzMsNyAr
MzMsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAg
ICAgICBKU0N1c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBWOEdlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbE93bmVyUm9vdAotICAgIF0gVGV4dFRyYWNrTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgVGV4
dFRyYWNrTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICAgICAgVGV4dFRyYWNrIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAK
QEAgLTQxLDEyICs0MSwxMiBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICAgICAgdm9pZCBhZGRFdmVu
dExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAg
dm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVh
biB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2
dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tFdmVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaWRsCmluZGV4IGI0NzVhZDQxYWI0
YWJhOWIxYzQ3YTM2NmJkN2NjMDVmYWY2YWFmMTAuLjU4ZWVhMzk0ZmFlOWZlMDYyMzZiMGQ3Mjli
YWFjNTU1ZjMwNTM1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJh
Y2tFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50Lmlk
bApAQCAtMjUsMTIgKzI1LDEyIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICAgICAgVjhFbmFi
bGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2ssCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxh
dGU9RXZlbnQKLSAgICBdIFRyYWNrRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IsIEN1c3RvbUdldHRlcl0gb2Jq
ZWN0IHRyYWNrOworICAgIF0gaW50ZXJmYWNlIFRyYWNrRXZlbnQgOiBFdmVudCB7CisgICAgICAg
IFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvciwgQ3VzdG9tR2V0dGVyXSByZWFkb25seSBh
dHRyaWJ1dGUgb2JqZWN0IHRyYWNrOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCmluZGV4IDU0ZjA4MGYyYzNhYWE0
ZjNjMzI2ZDBkYTRiMjY3OGRjMjYxNWY4NDguLjU4ZGJkZGRmMTVkODI3OTEzMDY4Zjg1MmVhYzU3
MTFhN2YzMThmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEhvc3QuaWRsCkBAIC0zMSw5ICszMSw5IEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1JTlNQRUNUT1IKLSAgICBd
IEluamVjdGVkU2NyaXB0SG9zdCB7CisgICAgXSBpbnRlcmZhY2UgSW5qZWN0ZWRTY3JpcHRIb3N0
IHsKICAgICAgICAgdm9pZCBjbGVhckNvbnNvbGVNZXNzYWdlcygpOwogCiAgICAgICAgIHZvaWQg
Y29weVRleHQoaW4gRE9NU3RyaW5nIHRleHQpOwpAQCAtNTQsNCArNTQsNCBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIGxvbmcgbmV4dFdvcmtlcklkKCk7CiAjZW5kaWYKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5p
ZGwKaW5kZXggMmEyMDM3MGNlOWIzZmUxZTRiNGE2MjJkOGI5MzcwMDhkNTI2MzYxMS4uNTUzOWNl
M2VmM2ZjZmQ5NTM3YmFjZmIzNzZmOWEwYjNiM2VkZjg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTMxLDkgKzMxLDkg
QEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPUlOU1BFQ1RPUgotICAgIF0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0IHsKKyAg
ICBdIGludGVyZmFjZSBJbnNwZWN0b3JGcm9udGVuZEhvc3QgewogICAgICAgICB2b2lkIGxvYWRl
ZCgpOwogICAgICAgICB2b2lkIGNsb3NlV2luZG93KCk7CiAgICAgICAgIHZvaWQgYnJpbmdUb0Zy
b250KCk7CkBAIC02Nyw0ICs2Nyw0IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgCiAgICAgICAg
IERPTVN0cmluZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGluIERPTVN0cmluZyB1cmwpOwog
ICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFT
Y3JpcHRDYWxsRnJhbWUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRD
YWxsRnJhbWUuaWRsCmluZGV4IGQzNzNkNWQ4MjFkNWY2NDZmYjNiODlmZjUzZGMzNTI5MDNjNzI0
MTguLjEzY2I0YzQzOTA0MzliZWUxNTJjMmZmOGFhMTAwMTliYzA3ZWYwNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxGcmFtZS5pZGwKQEAgLTI1LDEx
ICsyNSwxMSBAQAogCiBtb2R1bGUgaW5zcGVjdG9yIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1KQVZBU0NSSVBUX0RFQlVHR0VSLAogICAgICAgICBPbWl0
Q29uc3RydWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEphdmFTY3Jp
cHRDYWxsRnJhbWUgeworICAgIF0gaW50ZXJmYWNlIEphdmFTY3JpcHRDYWxsRnJhbWUgewogCiAg
ICAgICAgIC8vIFNjb3BlIHR5cGUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgR0xPQkFM
X1NDT1BFID0gMDsKQEAgLTQ1LDExICs0NSwxMSBAQCBtb2R1bGUgaW5zcGVjdG9yIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgc291cmNlSUQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIGxpbmU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGNvbHVt
bjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIEFycmF5IHNjb3Bl
Q2hhaW47CisgICAgICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheSBz
Y29wZUNoYWluOwogICAgICAgICBbQ3VzdG9tXSB1bnNpZ25lZCBzaG9ydCBzY29wZVR5cGUoaW4g
aW50IHNjb3BlSW5kZXgpOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRl
cl0gT2JqZWN0IHRoaXNPYmplY3Q7CisgICAgICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBPYmplY3QgdGhpc09iamVjdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBmdW5jdGlvbk5hbWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9t
R2V0dGVyXSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKaW5kZXggZWJiZWUyZThlNmI1ZjFkNTRlYWRj
YjE3Y2RmMjA0NjIwMjg4YWFjYS4uZjQ1NDY3ZWIyYzlhNTgwZThlODE3YTIyZTJlODU0ZTE2YWRm
NTc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbApAQCAt
MjYsMTQgKzI2LDE0IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1KQVZBU0NSSVBUX0RFQlVHR0VSLAogICAgICAgICBPbWl0
Q29uc3RydWN0b3IsCiAgICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gU2NyaXB0UHJv
ZmlsZSB7CisgICAgXSBpbnRlcmZhY2UgU2NyaXB0UHJvZmlsZSB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIHVpZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNjcmlwdFByb2Zp
bGVOb2RlIGhlYWQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCmluZGV4IGExNDc5OGMwNTUxZDM0OWU2Y2Y5OTczNzU5
YmE4NmQzYThlNzZlMDAuLjNhZTBjYTQwMjdlYTM4ZDExNWJlMTg0NDA0M2I4ZWQwZWI1ZWU0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbApA
QCAtMjYsMTEgKzI2LDExIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1KQVZBU0NSSVBUX0RFQlVHR0VSLAogICAgICAgICBP
bWl0Q29uc3RydWN0b3IsCiAgICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gU2NyaXB0
UHJvZmlsZU5vZGUgeworICAgIF0gaW50ZXJmYWNlIFNjcmlwdFByb2ZpbGVOb2RlIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmdW5jdGlvbk5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsaW5lTnVtYmVyOwpAQCAtMzksNyArMzksNyBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2Fs
bHM7CiAgICAgICAgIHNlcXVlbmNlPFNjcmlwdFByb2ZpbGVOb2RlPiBjaGlsZHJlbigpOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB2aXNpYmxlOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gdW5zaWduZWQgbG9uZyBjYWxsVUlEOworICAgICAg
ICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjYWxsVUlE
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKaW5kZXggYTM1ZmE0N2JiYTM4YWViZDc5OWQ1
MTc4OGExYTZjOTZmNTcyMDI0OC4uYzg3OGRkYzkwMTE2MDk4NzIwZGNjMTBmYzlmYmJiMjI5M2Nj
YzQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01B
cHBsaWNhdGlvbkNhY2hlLmlkbApAQCAtMjUsMTIgKzI1LDEyIEBACiAgCiBtb2R1bGUgb2ZmbGlu
ZSB7CiAgCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAg
ICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMsCiAgICAg
ICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUKLSAgICBdIERPTUFwcGxpY2F0aW9u
Q2FjaGUgeworICAgIF0gaW50ZXJmYWNlIERPTUFwcGxpY2F0aW9uQ2FjaGUgewogICAgICAgICAv
LyB1cGRhdGUgc3RhdHVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFVOQ0FDSEVEID0g
MDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSURMRSA9IDE7CkBAIC01OSwxMiArNTks
MTIgQEAgbW9kdWxlIG9mZmxpbmUgewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UK
ICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1
cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFu
IHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3Ry
aW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4g
ZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNl
cHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3Rp
ZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAppbmRleCBlYThhMTI5YzU3YTFk
YzY4NjViMTU1OGM5ZTNjNzQ2NTNkOWRmMjk2Li5iNzhhMGM0NDg2OWE5N2ZiZmRlOGRmNzk2OGQ2
MzU1ZDJkNmIyYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL0RP
TVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiBtb2R1
bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1OT1RJRklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJT05TLAogICAgICAgICBTdXBwbGVtZW50
YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKKyAgICBdIGludGVy
ZmFjZSBET01XaW5kb3dOb3RpZmljYXRpb25zIHsKICNpZiBkZWZpbmVkKEVOQUJMRV9MRUdBQ1lf
Tk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIg
d2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9u
bHkgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwogI2Vu
ZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNB
VElPTlMKICAgICAgICAgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNvbnN0cnVjdG9yIE5vdGlmaWNh
dGlvbjsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5pZGwKaW5kZXggZGEyZWI3ZjI0NWY5ZjU2YzZlYjNiNzU1YThk
NjY2NWRjYjRiZTMzZi4uMTA1MGY5MGRiYWFlNmRjMTk3MjAzNWE2ZTBjYjE0MjdlNjA2NjVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbApAQCAt
MzEsMTcgKzMxLDE3IEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1OT1RJRklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJ
T05TLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCi0gICAgICAgIEV2ZW50VGFyZ2V0LAorICAg
ICAgICBFdmVudFRhcmdldAogI2lmIGRlZmluZWQoRU5BQkxFX05PVElGSUNBVElPTlMpICYmIEVO
QUJMRV9OT1RJRklDQVRJT05TCi0gICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyB0aXRs
ZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFyeSBvcHRpb25zKSwK
LSAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICAgICAgLCBDb25z
dHJ1Y3RvcihpbiBET01TdHJpbmcgdGl0bGUsIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERpY3Rpb25hcnkgb3B0aW9ucykKKyAgICAgICAgLCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0CiAjZWxzZQotICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICAgICAgLCBPbWl0
Q29uc3RydWN0b3IKICNlbmRpZgotICAgIF0gTm90aWZpY2F0aW9uIHsKKyAgICBdIGludGVyZmFj
ZSBOb3RpZmljYXRpb24gewogICAgICAgICB2b2lkIHNob3coKTsKICNpZiBkZWZpbmVkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TCiAg
ICAgICAgIHZvaWQgY2FuY2VsKCk7CkBAIC03NSwxMiArNzUsMTIgQEAgbW9kdWxlIHRocmVhZHMg
ewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVu
dExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVu
dCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bkNlbnRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5pZGwKaW5kZXggZGE5OWJhOWZmM2M0MDY1MzJkOWQ3MzcxYjZiZTY4OWM1ZDhhZjFmZC4u
MjE1ZmJlYTI2NGY0NzA0OWUyMjdlZDZjY2I2ZmExM2YwMjM5MWJmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbApAQCAtMzEs
MTEgKzMxLDExIEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1MRUdBQ1lfTk9USUZJQ0FUSU9OUywKICAgICAgICAgQWN0
aXZlRE9NT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIE5vdGlmaWNhdGlv
bkNlbnRlciB7CisgICAgXSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQ2VudGVyIHsKICNpZiAhZGVm
aW5lZChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpIHx8ICFFTkFCTEVfVEVYVF9OT1RJ
RklDQVRJT05TX09OTFkKICAgICAgICBbVjhDdXN0b21dIE5vdGlmaWNhdGlvbiBjcmVhdGVIVE1M
Tm90aWZpY2F0aW9uKGluIERPTVN0cmluZyB1cmwpIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vu
ZGlmCkBAIC00NSw0ICs0NSw0IEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICBbQ3VzdG9tXSB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKGluIFZvaWRDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbAppbmRleCAxZjExMTYxMmUyNDBj
ZWNhYTE5ZmI1ZWE3MWFhY2Q3ZDI2MDkzYzIwLi4wNzgzNTlkMjZlZmQxMmUzNjMyOGY3YzhjMTUz
YTgxODdhNDEwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsCkBAIC0yNSwxMSAr
MjUsMTEgQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPU5PVElGSUNBVElPTlMsCiAgICAgICAgIENhbGxiYWNrCi0gICAg
XSBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQo
aW4gRE9NU3RyaW5nIHBlcm1pc3Npb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL1dvcmtlckNvbnRleHROb3RpZmljYXRpb25zLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvV29ya2VyQ29udGV4dE5vdGlmaWNhdGlv
bnMuaWRsCmluZGV4IDNjOTNiYzJiM2ZjYjRmMWYzNjg0N2YwODA3OGY5YWZlMzM4ZDEwOWEuLjg0
ODY1YTYzZTZlMmFmODYwNDFhY2VhNTNhZTIzZThlYjRkOTc4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvV29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvV29ya2VyQ29udGV4dE5vdGlmaWNhdGlv
bnMuaWRsCkBAIC0yNiwxMyArMjYsMTMgQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPU5PVElGSUNBVElPTlN8TEVHQUNZ
X05PVElGSUNBVElPTlMsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1Xb3JrZXJDb250ZXh0Ci0gICAg
XSBXb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucyB7CisgICAgXSBpbnRlcmZhY2UgV29ya2VyQ29u
dGV4dE5vdGlmaWNhdGlvbnMgewogI2lmIGRlZmluZWQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJ
T05TKSAmJiBFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3Rp
ZmljYXRpb25zOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1
dGUgTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BYnN0cmFjdFZpZXcu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BYnN0cmFjdFZpZXcuaWRsCmluZGV4IDZkODIzMmI1
MDVjOTViYTQ2MjgwZTA1YzFlZjE2ODEwYmMzOTAxMWQuLmVkZTRlYTNlNTk3Yzc2YTdmNTgwMDFl
YjFmZmI2ODZiMWVjODg5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWJzdHJh
Y3RWaWV3LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwKQEAg
LTI3LDEyICsyNywxMiBAQAogbW9kdWxlIHZpZXdzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4g
RE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIE9iakNDdXN0b21J
bXBsZW1lbnRhdGlvbiwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBBYnN0cmFjdFZp
ZXcgeworICAgIF0gaW50ZXJmYWNlIEFic3RyYWN0VmlldyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEb2N1bWVudCBkb2N1bWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0
eWxlTWVkaWEgc3R5bGVNZWRpYTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9CYXJJbmZvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5p
ZGwKaW5kZXggMTFhOTdjNzBlY2EyNzk0MGZlNjUxMGMzNjU3OGJlNzAxNDgyZTNlNC4uNDM0YTFk
Y2U0YWZjYWRhODJkMDQ4MjFjMDJiYWY5MDg3NGEwMWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9CYXJJbmZvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0JhckluZm8u
aWRsCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZSwKICAg
ICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBCYXJJbmZvIHsKKyAgICBdIGludGVyZmFjZSBC
YXJJbmZvIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdmlzaWJsZTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwKaW5kZXggNTYyMjFkNjRjOGJkMmQw
ZDZmYzZlZjRjN2ZiNGI3YTU3ZjFjOWMxYi4uM2NjMmVhYjg5ZTExZDE3ZWJkOWEwMjBkYzdlMzdk
YTlkYjA1ODJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCkBAIC0yOCwxMCArMjgsMTAgQEAK
IAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNH
ZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZSwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0g
ICAgXSBDb25zb2xlIHsKKyAgICBdIGludGVyZmFjZSBDb25zb2xlIHsKIAogICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBkZWJ1ZygpOwogICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBlcnJvcigpOwpAQCAtNTQs
MTQgKzU0LDE0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBbQ3VzdG9tXSB2b2lkIHByb2Zp
bGVFbmQoaW4gRE9NU3RyaW5nIHRpdGxlKTsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgdGltZShp
biBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLE9w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRpdGxlKTsKLSAgICAgICAgW0Nh
bGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgdGltZUVuZChpbiBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
dGl0bGUpOworICAgICAgICB2b2lkIHRpbWUoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyB0aXRsZSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0
YWNrXSB2b2lkIHRpbWVFbmQoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVk
QXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHRpdGxlKTsKICAgICAgICAgW0NhbGxXaXRoPVNj
cmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgdGltZVN0YW1wKCk7CiAgICAgICAgIFtDYWxs
V2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIGdyb3VwKCk7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIGdyb3VwQ29sbGFwc2VkKCk7
CiAgICAgICAgIHZvaWQgZ3JvdXBFbmQoKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1Y4Q3VzdG9tR2V0dGVyXSBNZW1vcnlJbmZvIG1lbW9yeTsKKyAgICAgICAgW1Y4Q3VzdG9tR2V0
dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgTWVtb3J5SW5mbyBtZW1vcnk7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5pZGwKaW5kZXggZjgzZDg3ZTU1MzU5YTcwZTU3
NTRlZGI4MjU0OTc1Nzc0YTVkODYxZS4uZWI2MjBiMjE1NGQ4YmE1YmI5OWQwY2IyMTQxZjRlMjY0
NTllYzY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db29yZGluYXRlcy5pZGwKQEAgLTI1LDE1ICsyNSwx
NSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
T21pdENvbnN0cnVjdG9yCi0gICAgXSBDb29yZGluYXRlcyB7CisgICAgXSBpbnRlcmZhY2UgQ29v
cmRpbmF0ZXMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGxhdGl0dWRlOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGxvbmdpdHVkZTsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGRvdWJsZSBhbHRpdHVkZTsKKyAgICAgICAgW0N1c3Rv
bV0gcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBhbHRpdHVkZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGRvdWJsZSBhY2N1cmFjeTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
dXN0b21dIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0N1c3RvbV0gZG91YmxlIGhlYWRpbmc7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q3VzdG9tXSBkb3VibGUgc3BlZWQ7CisgICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0
ZSBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0
cmlidXRlIGRvdWJsZSBoZWFkaW5nOworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1
dGUgZG91YmxlIHNwZWVkOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRsCmluZGV4
IDgwN2I2M2Y4MWRhMzYxOGIzNjZiNTMzYjg2ZjUwNTY2ZjczODZiNzMuLmNkZGNkMTZiNWQ3OGZk
OWM5NjAxOWUxMTUzZTI3YzViYTVkY2UwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3J5cHRvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKQEAgLTI4
LDEwICsyOCwxMCBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIENyeXB0byB7CisgICAgXSBpbnRlcmZh
Y2UgQ3J5cHRvIHsKICAgICAgICAgdm9pZCBnZXRSYW5kb21WYWx1ZXMoaW4gQXJyYXlCdWZmZXJW
aWV3IGFycmF5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCmluZGV4IDFmN2QzZGEzZjg4YTJmMjVhZDAwNTQ1NzA5
YzRkZDczY2I3ZjFkYzMuLjE5MzVkNjZkNmVkMTFlZGMxMDVlMWZhY2FmOTczMzVlYjBhY2NhMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKQEAgLTMxLDEwICszMSwxMCBAQCBt
b2R1bGUgd2luZG93IHsKIAogICAgIC8vIFRoaXMgaXMgYmFzZWQgb2ZmIG9mIE1vemlsbGEncyBT
ZWxlY3Rpb24gaW50ZXJmYWNlCiAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcv
RW4vRE9NL1NlbGVjdGlvbgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVy
YXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogICAgICAgICBJbnRlcmZhY2VOYW1lPVNlbGVjdGlv
bgotICAgIF0gRE9NU2VsZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBET01TZWxlY3Rpb24gewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBhbmNob3JOb2RlOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyBhbmNob3JPZmZzZXQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOb2RlIGZvY3VzTm9kZTsKQEAgLTQzLDggKzQzLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzQ29sbGFwc2VkOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByYW5nZUNvdW50OwogCi0gICAgICAgIHZvaWQgY29sbGFw
c2UoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBub2RlLCAKLSAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4
KQorICAgICAgICB2b2lkIGNvbGxhcHNlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IE5vZGUgbm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgICAgICB2b2lkIGNvbGxhcHNlVG9FbmQoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CkBAIC01MiwxOSArNTIsMTkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lkIGRlbGV0ZUZyb21Eb2N1bWVu
dCgpOwotICAgICAgICBib29sZWFuIGNvbnRhaW5zTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBOb2RlIG5vZGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGFsbG93UGFydGlhbCk7Ci0gICAg
ICAgIHZvaWQgc2VsZWN0QWxsQ2hpbGRyZW4oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gTm9kZSBub2RlKQorICAgICAgICBib29sZWFuIGNvbnRhaW5zTm9kZShbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGFsbG93UGFydGlh
bCk7CisgICAgICAgIHZvaWQgc2VsZWN0QWxsQ2hpbGRyZW4oW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gTm9kZSBub2RlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKLSAgICAgICAgdm9pZCBleHRlbmQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Tm9kZSBub2RlLCAKLSAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gbG9uZyBvZmZzZXQpCisgICAgICAgIHZvaWQgZXh0ZW5kKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIE5vZGUgbm9kZSwgCisgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgUmFuZ2UgZ2V0UmFuZ2VBdChpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4KQorICAgICAgICBSYW5nZSBnZXRSYW5n
ZUF0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaW5kZXgpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMo
KTsKLSAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBSYW5nZSByYW5nZSk7CisgICAgICAgIHZvaWQgYWRkUmFuZ2UoW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gUmFuZ2UgcmFuZ2UpOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBE
T01TdHJpbmcgdG9TdHJpbmcoKTsKQEAgLTgwLDE2ICs4MCwxNiBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgLy8gSUUncyB0eXBlIGFjY2Vzc29yIHJldHVybnMgIm5vbmUiLCAidGV4dCIgYW5k
ICJjb250cm9sIgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAK
LSAgICAgICAgdm9pZCBtb2RpZnkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIGFsdGVyLCAKLSAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRpcmVjdGlvbiwgCi0gICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBncmFudWxhcml0eSk7Ci0g
ICAgICAgIHZvaWQgc2V0QmFzZUFuZEV4dGVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBOb2RlIGJhc2VOb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgYmFzZU9mZnNldCwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2Rl
IGV4dGVudE5vZGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBleHRlbnRPZmZzZXQpCisgICAgICAgIHZvaWQgbW9k
aWZ5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBhbHRlciwgCisg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBkaXJlY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZ3JhbnVsYXJpdHkpOworICAgICAgICB2b2lkIHNldEJh
c2VBbmRFeHRlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBiYXNlTm9k
ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBsb25nIGJhc2VPZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBleHRlbnROb2RlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGxvbmcgZXh0ZW50T2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIHZvaWQgc2V0UG9zaXRpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gTm9kZSBub2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBsb25nIG9mZnNldCkKKyAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgb2Zmc2V0
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gSUUgZXh0
ZW50aW9ucwpAQCAtOTcsNCArOTcsNCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBl
bXB0eSgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXgg
YjIwNjU0M2IxNTU4NjcyNGQ5ZmI4MWUwZWExOTM2MGI3MDM5NDYwNi4uM2JlYzI2NzM4MjcyZTM2
Njc5M2RkYjgxNzMwNjEwODkxYmYxZjZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApA
QCAtMjYsNyArMjYsNyBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDaGVja1NlY3VyaXR5LAogICAgICAgICBKU0N1c3RvbURlZmluZU93blBy
b3BlcnR5LAogICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKQEAgLTQyLDI3ICs0MiwyNyBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgSlNMZWdhY3lQYXJlbnQ9SlNET01XaW5kb3dCYXNl
LAogICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEludGVyZmFjZU5hbWU9V2lu
ZG93Ci0gICAgXSBET01XaW5kb3cgeworICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvdyB7CiAgICAg
ICAgIC8vIERPTSBMZXZlbCAwCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIFNjcmVl
biBzY3JlZW47Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1
cml0eU9uR2V0dGVyXSBIaXN0b3J5IGhpc3Rvcnk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFj
ZWFibGVdIEJhckluZm8gbG9jYXRpb25iYXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFi
bGVdIEJhckluZm8gbWVudWJhcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQmFy
SW5mbyBwZXJzb25hbGJhcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQmFySW5m
byBzY3JvbGxiYXJzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBCYXJJbmZvIHN0
YXR1c2JhcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQmFySW5mbyB0b29sYmFy
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBOYXZpZ2F0b3IgbmF2aWdhdG9yOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBOYXZpZ2F0b3IgY2xpZW50SW5mb3JtYXRp
b247CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIFNjcmVlbiBzY3JlZW47CisgICAg
ICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJdIGF0dHJpYnV0ZSBI
aXN0b3J5IGhpc3Rvcnk7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIEJhckluZm8g
bG9jYXRpb25iYXI7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIEJhckluZm8gbWVu
dWJhcjsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgQmFySW5mbyBwZXJzb25hbGJh
cjsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgQmFySW5mbyBzY3JvbGxiYXJzOwor
ICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBCYXJJbmZvIHN0YXR1c2JhcjsKKyAgICAg
ICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgQmFySW5mbyB0b29sYmFyOworICAgICAgICBbUmVw
bGFjZWFibGVdIGF0dHJpYnV0ZSBOYXZpZ2F0b3IgbmF2aWdhdG9yOworICAgICAgICBbUmVwbGFj
ZWFibGVdIGF0dHJpYnV0ZSBOYXZpZ2F0b3IgY2xpZW50SW5mb3JtYXRpb247CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBDcnlwdG8gY3J5cHRvOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQ
UCkgfHwgIUxBTkdVQUdFX0NQUAotICAgICAgICBhdHRyaWJ1dGUgW0RvTm90Q2hlY2tTZWN1cml0
eSwgQ3VzdG9tU2V0dGVyLCBWOFVuZm9yZ2VhYmxlXSBMb2NhdGlvbiBsb2NhdGlvbjsKKyAgICAg
ICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgQ3VzdG9tU2V0dGVyLCBWOFVuZm9yZ2VhYmxlXSBhdHRy
aWJ1dGUgTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKLSAgICAgICAgYXR0cmlidXRlIFtSZXBs
YWNlYWJsZSwgQ3VzdG9tR2V0dGVyLCBWOEN1c3RvbVNldHRlcl0gRXZlbnQgZXZlbnQ7CisgICAg
ICAgIFtSZXBsYWNlYWJsZSwgQ3VzdG9tR2V0dGVyLCBWOEN1c3RvbVNldHRlcl0gYXR0cmlidXRl
IEV2ZW50IGV2ZW50OwogCiAgICAgICAgIERPTVNlbGVjdGlvbiBnZXRTZWxlY3Rpb24oKTsKIAot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBFbGVtZW50
IGZyYW1lRWxlbWVudDsKKyAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSByZWFkb25seSBh
dHRyaWJ1dGUgRWxlbWVudCBmcmFtZUVsZW1lbnQ7CiAKICAgICAgICAgW0RvTm90Q2hlY2tTZWN1
cml0eSwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBmb2N1cygpOwogICAg
ICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5XSB2b2lkIGJsdXIoKTsKQEAgLTczLDUxICs3Myw1MSBA
QCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBbQ3VzdG9tXSBET01XaW5kb3cgb3BlbihpbiBE
T01TdHJpbmcgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJp
bmcgbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBE
T01TdHJpbmcgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbF0gaW4gRE9NU3RyaW5nIG9wdGlvbnMpOwogCiAgICAgICAgIFtDdXN0b21dIERPTU9iamVj
dCBzaG93TW9kYWxEaWFsb2coaW4gRE9NU3RyaW5nIHVybCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIERPTU9iamVjdCBkaWFsb2dBcmdz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gRE9NU3RyaW5nIGZlYXR1cmVBcmdzKTsKLQotICAgICAgICB2b2lkIGFsZXJ0KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBtZXNzYWdlKTsKLSAgICAgICAgYm9v
bGVhbiBjb25maXJtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBt
ZXNzYWdlKTsKLSAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3Ry
aW5nIHByb21wdChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbWVz
c2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZSk7Ci0K
LSAgICAgICAgYm9vbGVhbiBmaW5kKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyBzdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBib29sZWFuIGNhc2VTZW5zaXRpdmUsCi0gICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGJhY2t3YXJkcywKLSAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xl
YW4gd3JhcCwKLSAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGJvb2xlYW4gd2hvbGVXb3JkLAotICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBzZWFyY2hJbkZyYW1lcywKLSAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2hv
d0RpYWxvZyk7Ci0KLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gYm9vbGVhbiBvZmZz
Y3JlZW5CdWZmZXJpbmc7Ci0KLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gbG9uZyBv
dXRlckhlaWdodDsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gbG9uZyBvdXRlcldp
ZHRoOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBsb25nIGlubmVySGVpZ2h0Owot
ICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBsb25nIGlubmVyV2lkdGg7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGxvbmcgc2NyZWVuWDsKLSAgICAgICAgYXR0cmlidXRl
IFtSZXBsYWNlYWJsZV0gbG9uZyBzY3JlZW5ZOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2Vh
YmxlXSBsb25nIHNjcmVlbkxlZnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGxv
bmcgc2NyZWVuVG9wOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBsb25nIHNjcm9s
bFg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGxvbmcgc2Nyb2xsWTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIERPTU9i
amVjdCBkaWFsb2dBcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIGZlYXR1cmVBcmdzKTsKKworICAgICAgICB2b2lk
IGFsZXJ0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBtZXNzYWdl
KTsKKyAgICAgICAgYm9vbGVhbiBjb25maXJtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyBtZXNzYWdlKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbF0gRE9NU3RyaW5nIHByb21wdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRB
cz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRl
ZmF1bHRWYWx1ZSk7CisKKyAgICAgICAgYm9vbGVhbiBmaW5kKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBzdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhc2VTZW5zaXRpdmUsCisgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFu
IGJhY2t3YXJkcywKKyAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGJvb2xlYW4gd3JhcCwKKyAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gd2hvbGVXb3JkLAorICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBzZWFyY2hJbkZy
YW1lcywKKyAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGJvb2xlYW4gc2hvd0RpYWxvZyk7CisKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1
dGUgYm9vbGVhbiBvZmZzY3JlZW5CdWZmZXJpbmc7CisKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBh
dHRyaWJ1dGUgbG9uZyBvdXRlckhlaWdodDsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1
dGUgbG9uZyBvdXRlcldpZHRoOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBsb25n
IGlubmVySGVpZ2h0OworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBsb25nIGlubmVy
V2lkdGg7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIGxvbmcgc2NyZWVuWDsKKyAg
ICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgbG9uZyBzY3JlZW5ZOworICAgICAgICBbUmVw
bGFjZWFibGVdIGF0dHJpYnV0ZSBsb25nIHNjcmVlbkxlZnQ7CisgICAgICAgIFtSZXBsYWNlYWJs
ZV0gYXR0cmlidXRlIGxvbmcgc2NyZWVuVG9wOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJp
YnV0ZSBsb25nIHNjcm9sbFg7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIGxvbmcg
c2Nyb2xsWTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcGFnZVhPZmZzZXQ7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHBhZ2VZT2Zmc2V0OwogCi0gICAgICAgIHZv
aWQgc2Nyb2xsQnkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHkpOwotICAgICAgICB2b2lkIHNjcm9s
bFRvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeCwgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB5KTsKLSAgICAgICAgdm9pZCBzY3JvbGwoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB4LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIHkpOwotICAgICAgICB2b2lkIG1vdmVCeShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB5KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRha2UgbG9uZ3Mgbm90IGZsb2F0cy4K
LSAgICAgICAgdm9pZCBtb3ZlVG8oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxv
YXQgeCwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7IC8vIEZJWE1F
OiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCi0gICAgICAgIHZvaWQgcmVzaXpl
QnkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtl
IGxvbmdzIG5vdCBmbG9hdHMuCi0gICAgICAgIHZvaWQgcmVzaXplVG8oaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgd2lkdGgsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGZsb2F0IGhlaWdodCk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5v
dCBmbG9hdHMuCisgICAgICAgIHZvaWQgc2Nyb2xsQnkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gbG9uZyB4LCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHkp
OworICAgICAgICB2b2lkIHNjcm9sbFRvKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGxvbmcgeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB5KTsKKyAgICAg
ICAgdm9pZCBzY3JvbGwoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB4LCBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHkpOworICAgICAgICB2b2lkIG1v
dmVCeShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LCBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRh
a2UgbG9uZ3Mgbm90IGZsb2F0cy4KKyAgICAgICAgdm9pZCBtb3ZlVG8oW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMu
CisgICAgICAgIHZvaWQgcmVzaXplQnkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7IC8vIEZJ
WE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCisgICAgICAgIHZvaWQgcmVz
aXplVG8oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgd2lkdGgsIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGhlaWdodCk7IC8vIEZJWE1FOiB0aGlz
IHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtEb05vdENoZWNrU2VjdXJpdHldIGJvb2xlYW4gY2xvc2VkOworICAgICAgICBbRG9Ob3RD
aGVja1NlY3VyaXR5XSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjbG9zZWQ7CiAKLSAgICAg
ICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJdIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOworICAgICAgICBbUmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1
cml0eU9uR2V0dGVyXSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAKICAgICAgICAg
YXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCkBAIC0xMjksMTMgKzEyOSwxMyBAQCBtb2R1bGUg
d2luZG93IHsKICNlbmRpZgogCiAgICAgICAgIC8vIFNlbGYgcmVmZXJlbnRpYWwgYXR0cmlidXRl
cwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdl
dHRlcl0gRE9NV2luZG93IHNlbGY7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRG9Ob3RD
aGVja1NlY3VyaXR5LCBWOFVuZm9yZ2VhYmxlXSBET01XaW5kb3cgd2luZG93OwotICAgICAgICBh
dHRyaWJ1dGUgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcl0gRE9NV2lu
ZG93IGZyYW1lczsKKyAgICAgICAgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdl
dHRlcl0gYXR0cmlidXRlIERPTVdpbmRvdyBzZWxmOworICAgICAgICBbRG9Ob3RDaGVja1NlY3Vy
aXR5LCBWOFVuZm9yZ2VhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NV2luZG93IHdpbmRvdzsK
KyAgICAgICAgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcl0gYXR0cmli
dXRlIERPTVdpbmRvdyBmcmFtZXM7CiAKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZSwg
RG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXIsIFY4Q3VzdG9tU2V0dGVyXSBET01XaW5kb3cgb3Bl
bmVyOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlP
bkdldHRlcl0gRE9NV2luZG93IHBhcmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJs
ZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXIsIFY4VW5mb3JnZWFibGUsIFY4UmVhZE9ubHld
IERPTVdpbmRvdyB0b3A7CisgICAgICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5
T25HZXR0ZXIsIFY4Q3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NV2luZG93IG9wZW5lcjsKKyAg
ICAgICAgW1JlcGxhY2VhYmxlLCBEb05vdENoZWNrU2VjdXJpdHlPbkdldHRlcl0gYXR0cmlidXRl
IERPTVdpbmRvdyBwYXJlbnQ7CisgICAgICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3Vy
aXR5T25HZXR0ZXIsIFY4VW5mb3JnZWFibGUsIFY4UmVhZE9ubHldIGF0dHJpYnV0ZSBET01XaW5k
b3cgdG9wOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIEFic3RyYWN0VmlldyBJbnRlcmZhY2UK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IGRvY3VtZW50OwpAQCAtMTQ3LDI4
ICsxNDcsMjggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
dHlsZU1lZGlhIHN0eWxlTWVkaWE7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIgU3R5bGUgSW50
ZXJmYWNlCi0gICAgICAgIENTU1N0eWxlRGVjbGFyYXRpb24gZ2V0Q29tcHV0ZWRTdHlsZShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBFbGVtZW50IGVsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQpOworICAgICAgICBDU1NTdHlsZURlY2xhcmF0
aW9uIGdldENvbXB1dGVkU3R5bGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRWxl
bWVudCBlbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsK
IAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICBDU1NSdWxlTGlzdCBnZXRN
YXRjaGVkQ1NTUnVsZXMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRWxlbWVudCBl
bGVtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgQ1NT
UnVsZUxpc3QgZ2V0TWF0Y2hlZENTU1J1bGVzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIEVsZW1lbnQgZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHNldWRvRWxlbWVudCk7
CiAjZW5kaWYKIAotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBkb3VibGUgZGV2aWNl
UGl4ZWxSYXRpbzsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgZG91YmxlIGRldmlj
ZVBpeGVsUmF0aW87CiAgICAgICAgIAotICAgICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0
UG9pbnRGcm9tUGFnZVRvTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2Rl
IG5vZGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBXZWJLaXRQb2ludCBwKTsKLSAg
ICAgICAgV2ViS2l0UG9pbnQgd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBub2RlLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gV2ViS2l0UG9pbnQgcCk7CisgICAgICAgIFdlYktpdFBvaW50IHdlYmtpdENv
bnZlcnRQb2ludEZyb21QYWdlVG9Ob2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IE5vZGUgbm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFdlYktpdFBvaW50IHAp
OworICAgICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBXZWJLaXRQb2ludCBwKTsKIAotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gRE9NQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlv
bkNhY2hlOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NQXBwbGljYXRpb25DYWNoZSBhcHBsaWNhdGlvbkNhY2hlOwogCi0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdlIHNlc3Npb25TdG9yYWdlCi0g
ICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBTdG9yYWdlIGxvY2FsU3RvcmFnZQotICAg
ICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbVjhFbmFibGVk
QXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUgU3RvcmFnZSBzZXNzaW9uU3RvcmFnZQorICAg
ICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdG9yYWdlIGxvY2FsU3RvcmFnZQorICAgICAgICAg
ICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRB
VElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICAgICAgICAgLy8gVGhp
cyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMg
YXJlOgpAQCAtMTc3LDcgKzE3Nyw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyBvcmllbnRhdGlvbjsKICNlbmRpZgogCi0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIENvbnNvbGUgY29uc29sZTsKKyAgICAgICAgICAgICAg
ICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgQ29uc29sZSBjb25zb2xlOwogCiAgICAgICAgIC8v
IGNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVApAQCAtMTkyLDM2ICsxOTIsMzYgQEAgbW9kdWxlIHdp
bmRvdyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCiAgICAgICAg
IC8vIFRoZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gZXhwb3NlIGFuIGFycmF5IHZpYSB0aGUgT2JqQyBi
aW5kaW5ncywgc28gZm9yIG5vdyBqdXN0IGFsbG93IHBhc3NpbmcgaW4gYSBzaW5nbGUgcG9ydC4K
LSAgICAgICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGlu
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIE1lc3NhZ2VQb3J0
IG1lc3NhZ2VQb3J0LCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQorICAgICAgICBbRG9Ob3RD
aGVja1NlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlIG1lc3NhZ2UsIFtPcHRpb25hbF0gaW4gTWVzc2FnZVBvcnQgbWVzc2FnZVBvcnQsIGlu
IERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVfV0VCX1RJTUlORykgJiYgRU5BQkxFX1dF
Ql9USU1JTkcKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gUGVyZm9ybWFuY2UgcGVy
Zm9ybWFuY2U7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIFBlcmZvcm1hbmNlIHBl
cmZvcm1hbmNlOwogI2VuZGlmCiAKICAgICAgICAgLy8gVGltZXJzCi0gICAgICAgIFtDdXN0b21d
IGxvbmcgc2V0VGltZW91dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBUaW1lb3V0
SGFuZGxlciBoYW5kbGVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgdGltZW91dCk7CisgICAgICAgIFtDdXN0
b21dIGxvbmcgc2V0VGltZW91dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBUaW1l
b3V0SGFuZGxlciBoYW5kbGVyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgdGltZW91dCk7CiAgICAgICAgIC8v
IFtDdXN0b21dIGxvbmcgc2V0VGltZW91dChpbiBUaW1lb3V0SGFuZGxlciBoYW5kbGVyLCBpbiBs
b25nIHRpbWVvdXQsIGFyZ3VtZW50cy4uLik7CiAgICAgICAgIC8vIFtDdXN0b21dIGxvbmcgc2V0
VGltZW91dChpbiBET01TdHJpbmcgY29kZSwgaW4gbG9uZyB0aW1lb3V0KTsKLSAgICAgICAgdm9p
ZCBjbGVhclRpbWVvdXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBoYW5k
bGUpOworICAgICAgICB2b2lkIGNsZWFyVGltZW91dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBsb25nIGhhbmRsZSk7CiAgICAgICAgIFtDdXN0b21dIGxvbmcgc2V0SW50ZXJ2YWwo
aW4gVGltZW91dEhhbmRsZXIgaGFuZGxlciwgaW4gbG9uZyB0aW1lb3V0KTsKICAgICAgICAgLy8g
W0N1c3RvbV0gbG9uZyBzZXRJbnRlcnZhbChpbiBUaW1lb3V0SGFuZGxlciBoYW5kbGVyLCBpbiBs
b25nIHRpbWVvdXQsIGFyZ3VtZW50cy4uLik7CiAgICAgICAgIC8vIFtDdXN0b21dIGxvbmcgc2V0
SW50ZXJ2YWwoaW4gRE9NU3RyaW5nIGNvZGUsIGluIGxvbmcgdGltZW91dCk7Ci0gICAgICAgIHZv
aWQgY2xlYXJJbnRlcnZhbChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGhh
bmRsZSk7CisgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBsb25nIGhhbmRsZSk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkKICAgICAgICAgLy8gV2ViS2l0IGFuaW1hdGlvbiBleHRlbnNpb25zLCBi
ZWluZyBzdGFuZGFyZGl6ZWQgaW4gdGhlIFdlYlBlcmYgV0cKLSAgICAgICAgbG9uZyB3ZWJraXRS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaW4gW0NhbGxiYWNrXSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjayBjYWxsYmFjayk7CisgICAgICAgIGxvbmcgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZy
YW1lKFtDYWxsYmFja10gaW4gUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2sp
OwogICAgICAgICB2b2lkIHdlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKGluIGxvbmcgaWQpOwog
ICAgICAgICB2b2lkIHdlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZShpbiBsb25nIGlk
KTsgLy8gVGhpcyBpcyBhIGRlcHJlY2F0ZWQgYWxpYXMgZm9yIHdlYmtpdENhbmNlbEFuaW1hdGlv
bkZyYW1lKCkuIFJlbW92ZSB0aGlzIHdoZW4gcmVtb3ZpbmcgdmVuZG9yIHByZWZpeC4KICNlbmRp
ZgogCiAgICAgICAgIC8vIEJhc2U2NAotICAgICAgICBET01TdHJpbmcgYXRvYihpbiBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBz
dHJpbmcpCisgICAgICAgIERPTVN0cmluZyBhdG9iKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0cmluZykKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBET01TdHJpbmcgYnRvYShpbiBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyBzdHJpbmcpCisgICAgICAgIERPTVN0cmluZyBidG9hKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0cmluZykKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEV2ZW50cwpAQCAtMzA1
LDIxICszMDUsMjEgQEAgbW9kdWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5U
QVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAgICAgIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ub3JpZW50YXRpb25jaGFuZ2U7CiAjZW5kaWYKLSAgICAgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBF
dmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2ht
b3ZlOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJs
ZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKLSAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3Rl
bmVyIG9udG91Y2hjYW5jZWw7CisgICAgICAgIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhF
bmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNoc3RhcnQ7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVRP
VUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
dG91Y2hlbmQ7CisgICAgICAgIFtDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRS
dW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOwogCi0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLFY4RW5hYmxlZEF0UnVu
dGltZV0gRXZlbnRMaXN0ZW5lciBvbmRldmljZW1vdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1ERVZJQ0VfT1JJRU5UQVRJT04sVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExp
c3RlbmVyIG9uZGV2aWNlb3JpZW50YXRpb247CisgICAgICAgIFtDb25kaXRpb25hbD1ERVZJQ0Vf
T1JJRU5UQVRJT04sVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmRldmljZW1vdGlvbjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTixW
OEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZGV2aWNlb3JpZW50
YXRpb247CiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIFtDdXN0
b21dIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFu
IHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgW0N1c3Rv
bV0gdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9v
bGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVu
dEV4Y2VwdGlvbik7CiAKQEAgLTM4Nyw5ICszODcsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0eTsKICAgICAgICAgYXR0cmlidXRl
IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgYXR0
cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0cnVj
dGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJs
ZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gU2hhZG93Um9vdENvbnN0cnVjdG9yIFdlYktpdFNoYWRv
d1Jvb3Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9U0hBRE9XX0RPTSwgVjhFbmFi
bGVkUGVyQ29udGV4dD1zaGFkb3dET01dIEhUTUxDb250ZW50RWxlbWVudENvbnN0cnVjdG9yIEhU
TUxDb250ZW50RWxlbWVudDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1df
RE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gSFRNTFNoYWRvd0VsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MU2hhZG93RWxlbWVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVNIQURPV19E
T00sIFY4RW5hYmxlZFBlckNvbnRleHQ9c2hhZG93RE9NXSBhdHRyaWJ1dGUgU2hhZG93Um9vdENv
bnN0cnVjdG9yIFdlYktpdFNoYWRvd1Jvb3Q7CisgICAgICAgIFtDb25kaXRpb25hbD1TSEFET1df
RE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gYXR0cmlidXRlIEhUTUxDb250ZW50
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxDb250ZW50RWxlbWVudDsKKyAgICAgICAgW0NvbmRpdGlv
bmFsPVNIQURPV19ET00sIFY4RW5hYmxlZFBlckNvbnRleHQ9c2hhZG93RE9NXSBhdHRyaWJ1dGUg
SFRNTFNoYWRvd0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU2hhZG93RWxlbWVudDsKIAogICAgICAg
ICBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uQ29uc3RydWN0b3IgU2VsZWN0aW9uOwogICAgICAgICBh
dHRyaWJ1dGUgRE9NV2luZG93Q29uc3RydWN0b3IgV2luZG93OwpAQCAtNDA2LDcgKzQwNiw3IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgSFRNTEJ1dHRvbkVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MQnV0dG9uRWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxDYW52YXNF
bGVtZW50Q29uc3RydWN0b3IgSFRNTENhbnZhc0VsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MRExpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTERMaXN0RWxlbWVudDsKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1EQVRBTElTVF0gSFRNTERhdGFMaXN0RWxlbWVudENvbnN0cnVj
dG9yIEhUTUxEYXRhTGlzdEVsZW1lbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1EQVRBTElTVF0g
YXR0cmlidXRlIEhUTUxEYXRhTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MRGF0YUxpc3RFbGVt
ZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTERpcmVjdG9yeUVsZW1lbnRDb25zdHJ1Y3RvciBI
VE1MRGlyZWN0b3J5RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXZFbGVtZW50Q29u
c3RydWN0b3IgSFRNTERpdkVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRW1iZWRFbGVt
ZW50Q29uc3RydWN0b3IgSFRNTEVtYmVkRWxlbWVudDsKQEAgLTQ2MywzMiArNDYzLDMyIEBAIG1v
ZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbkNvbnN0cnVj
dG9yIEhUTUxDb2xsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgSFRNTEFsbENvbGxlY3Rpb25D
b25zdHJ1Y3RvciBIVE1MQWxsQ29sbGVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1NSUNST0RBVEFdIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbkNvbnN0cnVjdG9yIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gYXR0
cmlidXRlIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbkNvbnN0cnVjdG9yIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEhUTUxVbmtub3duRWxlbWVudENvbnN0cnVj
dG9yIEhUTUxVbmtub3duRWxlbWVudDsKIAotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0
dGVyLCBDdXN0b21Db25zdHJ1Y3Rvcl0gSFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IgSW1hZ2U7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgotICAgICAgICBhdHRyaWJ1
dGUgW0pTQ3VzdG9tR2V0dGVyXSBIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yQ29uc3RydWN0
b3IgT3B0aW9uOyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAgICAgICAgW0pTQ3VzdG9t
R2V0dGVyLCBDdXN0b21Db25zdHJ1Y3Rvcl0gYXR0cmlidXRlIEhUTUxJbWFnZUVsZW1lbnRDb25z
dHJ1Y3RvckNvbnN0cnVjdG9yIEltYWdlOyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKKyAg
ICAgICAgW0pTQ3VzdG9tR2V0dGVyXSBhdHRyaWJ1dGUgSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yIE9wdGlvbjsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCiAKLSAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEsIFY4RW5hYmxlZEF0
UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gTWVkaWFLZXlFcnJvckNvbnN0cnVjdG9yIE1lZGlhS2V5
RXJyb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBLCBW
OEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIE1lZGlhS2V5RXZlbnRDb25zdHJ1Y3Rv
ciBNZWRpYUtleUV2ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBLCBW
OEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIGF0dHJpYnV0ZSBNZWRpYUtleUVycm9y
Q29uc3RydWN0b3IgTWVkaWFLZXlFcnJvcjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUVOQ1JZUFRF
RF9NRURJQSwgVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBhdHRyaWJ1dGUgTWVk
aWFLZXlFdmVudENvbnN0cnVjdG9yIE1lZGlhS2V5RXZlbnQ7CiAKLSAgICAgICAgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVv
VHJhY2tdIEhUTUxUcmFja0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVHJhY2tFbGVtZW50OwotICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJsZWRBdFJ1bnRp
bWU9d2Via2l0VmlkZW9UcmFja10gVGV4dFRyYWNrQ29uc3RydWN0b3IgVGV4dFRyYWNrOwotICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJsZWRBdFJ1bnRp
bWU9d2Via2l0VmlkZW9UcmFja10gVGV4dFRyYWNrQ3VlQ29uc3RydWN0b3IgVGV4dFRyYWNrQ3Vl
OyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9yCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRlb1RyYWNr
XSBUZXh0VHJhY2tDdWVMaXN0Q29uc3RydWN0b3IgVGV4dFRyYWNrQ3VlTGlzdDsKLSAgICAgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFibGVkQXRSdW50aW1lPXdl
YmtpdFZpZGVvVHJhY2tdIFRleHRUcmFja0xpc3RDb25zdHJ1Y3RvciBUZXh0VHJhY2tMaXN0Owot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJsZWRBdFJ1
bnRpbWU9d2Via2l0VmlkZW9UcmFja10gVHJhY2tFdmVudENvbnN0cnVjdG9yIFRyYWNrRXZlbnQ7
CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFibGVkQXRSdW50aW1lPXdl
YmtpdFZpZGVvVHJhY2tdIGF0dHJpYnV0ZSBIVE1MVHJhY2tFbGVtZW50Q29uc3RydWN0b3IgSFRN
TFRyYWNrRWxlbWVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJs
ZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFja10gYXR0cmlidXRlIFRleHRUcmFja0NvbnN0cnVj
dG9yIFRleHRUcmFjazsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJs
ZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFja10gYXR0cmlidXRlIFRleHRUcmFja0N1ZUNvbnN0
cnVjdG9yIFRleHRUcmFja0N1ZTsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgorICAg
ICAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRW
aWRlb1RyYWNrXSBhdHRyaWJ1dGUgVGV4dFRyYWNrQ3VlTGlzdENvbnN0cnVjdG9yIFRleHRUcmFj
a0N1ZUxpc3Q7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFibGVkQXRS
dW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIGF0dHJpYnV0ZSBUZXh0VHJhY2tMaXN0Q29uc3RydWN0
b3IgVGV4dFRyYWNrTGlzdDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVu
YWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFja10gYXR0cmlidXRlIFRyYWNrRXZlbnRDb25z
dHJ1Y3RvciBUcmFja0V2ZW50OwogCi0gICAgICAgIGF0dHJpYnV0ZSBbSlNDdXN0b21HZXR0ZXIs
IENvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIEhUTUxBdWRpb0VsZW1lbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yIEF1ZGlvOyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJh
dG9yCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVu
dGltZV0gSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yIEhUTUxBdWRpb0VsZW1lbnQ7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gSFRN
TE1lZGlhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxNZWRpYUVsZW1lbnQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gSFRNTFZpZGVvRWxl
bWVudENvbnN0cnVjdG9yIEhUTUxWaWRlb0VsZW1lbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gTWVkaWFFcnJvckNvbnN0cnVjdG9y
IE1lZGlhRXJyb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5h
YmxlZEF0UnVudGltZV0gVGltZVJhbmdlc0NvbnN0cnVjdG9yIFRpbWVSYW5nZXM7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gSFRNTFNv
dXJjZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU291cmNlRWxlbWVudDsKLSAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBNZWRpYUNvbnRyb2xs
ZXJDb25zdHJ1Y3RvciBNZWRpYUNvbnRyb2xsZXI7CisgICAgICAgIFtKU0N1c3RvbUdldHRlciwg
Q29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEhUTUxBdWRp
b0VsZW1lbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yIEF1ZGlvOyAvLyBVc2FibGUgd2l0aCB0aGUg
bmV3IG9wZXJhdG9yCisgICAgICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50
aW1lXSBhdHRyaWJ1dGUgSFRNTEF1ZGlvRWxlbWVudENvbnN0cnVjdG9yIEhUTUxBdWRpb0VsZW1l
bnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRy
aWJ1dGUgSFRNTE1lZGlhRWxlbWVudENvbnN0cnVjdG9yIEhUTUxNZWRpYUVsZW1lbnQ7CisgICAg
ICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSFRN
TFZpZGVvRWxlbWVudENvbnN0cnVjdG9yIEhUTUxWaWRlb0VsZW1lbnQ7CisgICAgICAgIFtDb25k
aXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgTWVkaWFFcnJvckNv
bnN0cnVjdG9yIE1lZGlhRXJyb3I7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFi
bGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgVGltZVJhbmdlc0NvbnN0cnVjdG9yIFRpbWVSYW5nZXM7
CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1
dGUgSFRNTFNvdXJjZUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MU291cmNlRWxlbWVudDsKKyAgICAg
ICAgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBNZWRp
YUNvbnRyb2xsZXJDb25zdHJ1Y3RvciBNZWRpYUNvbnRyb2xsZXI7CiAKLSAgICAgICAgYXR0cmli
dXRlIFtDb25kaXRpb25hbD1XRUJfSU5URU5UU19UQUddIEhUTUxJbnRlbnRFbGVtZW50Q29uc3Ry
dWN0b3IgSFRNTEludGVudEVsZW1lbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1XRUJfSU5URU5U
U19UQUddIGF0dHJpYnV0ZSBIVE1MSW50ZW50RWxlbWVudENvbnN0cnVjdG9yIEhUTUxJbnRlbnRF
bGVtZW50OwogCiAgICAgICAgIGF0dHJpYnV0ZSBDYW52YXNQYXR0ZXJuQ29uc3RydWN0b3IgQ2Fu
dmFzUGF0dGVybjsKICAgICAgICAgYXR0cmlidXRlIENhbnZhc0dyYWRpZW50Q29uc3RydWN0b3Ig
Q2FudmFzR3JhZGllbnQ7CkBAIC00OTcsMTYgKzQ5NywxNiBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIEltYWdlRGF0YUNvbnN0cnVjdG9yIEltYWdlRGF0YTsKICAgICAgICAg
YXR0cmlidXRlIFRleHRNZXRyaWNzQ29uc3RydWN0b3IgVGV4dE1ldHJpY3M7CiAKLSAgICAgICAg
YXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xBY3RpdmVJbmZvQ29uc3RydWN0b3Ig
V2ViR0xBY3RpdmVJbmZvOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBX
ZWJHTEJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMQnVmZmVyOwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPVdFQkdMXSBXZWJHTEZyYW1lYnVmZmVyQ29uc3RydWN0b3IgV2ViR0xGcmFtZWJ1
ZmZlcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xQcm9ncmFt
Q29uc3RydWN0b3IgV2ViR0xQcm9ncmFtOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PVdFQkdMXSBXZWJHTFJlbmRlcmJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOwot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRDb25zdHJ1Y3RvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMU2hhZGVyQ29uc3RydWN0b3IgV2ViR0xTaGFkZXI7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0Q29uc3RydWN0b3IgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdM
VGV4dHVyZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xVbmlm
b3JtTG9jYXRpb25Db25zdHJ1Y3RvciBXZWJHTFVuaWZvcm1Mb2NhdGlvbjsKKyAgICAgICAgW0Nv
bmRpdGlvbmFsPVdFQkdMXSBhdHRyaWJ1dGUgV2ViR0xBY3RpdmVJbmZvQ29uc3RydWN0b3IgV2Vi
R0xBY3RpdmVJbmZvOworICAgICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIGF0dHJpYnV0ZSBXZWJH
TEJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMQnVmZmVyOworICAgICAgICBbQ29uZGl0aW9uYWw9V0VC
R0xdIGF0dHJpYnV0ZSBXZWJHTEZyYW1lYnVmZmVyQ29uc3RydWN0b3IgV2ViR0xGcmFtZWJ1ZmZl
cjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdFQkdMXSBhdHRyaWJ1dGUgV2ViR0xQcm9ncmFtQ29u
c3RydWN0b3IgV2ViR0xQcm9ncmFtOworICAgICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIGF0dHJp
YnV0ZSBXZWJHTFJlbmRlcmJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdMUmVuZGVyYnVmZmVyOworICAg
ICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIGF0dHJpYnV0ZSBXZWJHTFJlbmRlcmluZ0NvbnRleHRD
b25zdHJ1Y3RvciBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisgICAgICAgIFtDb25kaXRpb25hbD1X
RUJHTF0gYXR0cmlidXRlIFdlYkdMU2hhZGVyQ29uc3RydWN0b3IgV2ViR0xTaGFkZXI7CisgICAg
ICAgIFtDb25kaXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9y
bWF0Q29uc3RydWN0b3IgV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQ7CisgICAgICAgIFtDb25k
aXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdlYkdMVGV4dHVyZUNvbnN0cnVjdG9yIFdlYkdMVGV4
dHVyZTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdFQkdMXSBhdHRyaWJ1dGUgV2ViR0xVbmlmb3Jt
TG9jYXRpb25Db25zdHJ1Y3RvciBXZWJHTFVuaWZvcm1Mb2NhdGlvbjsKIAogICAgICAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nTWFwQ29uc3RydWN0b3IgRE9NU3RyaW5nTWFwOwogCkBAIC01NDMsMTgg
KzU0MywxOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIFdlYktpdFRyYW5z
aXRpb25FdmVudENvbnN0cnVjdG9yIFdlYktpdFRyYW5zaXRpb25FdmVudDsKICAgICAgICAgYXR0
cmlidXRlIFdoZWVsRXZlbnRDb25zdHJ1Y3RvciBXaGVlbEV2ZW50OwogICAgICAgICBhdHRyaWJ1
dGUgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Q29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklDRV9PUklF
TlRBVElPTiwgVjhFbmFibGVkQXRSdW50aW1lXSBEZXZpY2VNb3Rpb25FdmVudENvbnN0cnVjdG9y
IERldmljZU1vdGlvbkV2ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklD
RV9PUklFTlRBVElPTiwgVjhFbmFibGVkQXRSdW50aW1lXSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50
Q29uc3RydWN0b3IgRGV2aWNlT3JpZW50YXRpb25FdmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1UT1VDSF9FVkVOVFNdIFRvdWNoRXZlbnRDb25zdHJ1Y3RvciBUb3VjaEV2ZW50
OworICAgICAgICBbQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLCBWOEVuYWJsZWRBdFJ1
bnRpbWVdIGF0dHJpYnV0ZSBEZXZpY2VNb3Rpb25FdmVudENvbnN0cnVjdG9yIERldmljZU1vdGlv
bkV2ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLCBWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBEZXZpY2VPcmllbnRhdGlvbkV2ZW50Q29uc3RydWN0b3Ig
RGV2aWNlT3JpZW50YXRpb25FdmVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVRPVUNIX0VWRU5U
U10gYXR0cmlidXRlIFRvdWNoRXZlbnRDb25zdHJ1Y3RvciBUb3VjaEV2ZW50OwogICAgICAgICBh
dHRyaWJ1dGUgU3RvcmFnZUV2ZW50Q29uc3RydWN0b3IgU3RvcmFnZUV2ZW50OwotICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSF0gU3BlZWNoSW5wdXRFdmVudENvbnN0
cnVjdG9yIFNwZWVjaElucHV0RXZlbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9
V0VCR0xdIFdlYkdMQ29udGV4dEV2ZW50Q29uc3RydWN0b3IgV2ViR0xDb250ZXh0RXZlbnQ7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0hdIGF0dHJpYnV0ZSBTcGVlY2hJbnB1dEV2
ZW50Q29uc3RydWN0b3IgU3BlZWNoSW5wdXRFdmVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdF
QkdMXSBhdHRyaWJ1dGUgV2ViR0xDb250ZXh0RXZlbnRDb25zdHJ1Y3RvciBXZWJHTENvbnRleHRF
dmVudDsKIAogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3RvciBFdmVu
dEV4Y2VwdGlvbjsKIAogICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ29u
c3RydWN0b3IgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOwogICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZUNvbnN0cnVjdG9yIFdlYktpdENTU0tleWZyYW1lc1J1bGU7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9Q1NTX1JFR0lPTlNdIFdlYktpdENTU1JlZ2lvblJ1
bGVDb25zdHJ1Y3RvciBXZWJLaXRDU1NSZWdpb25SdWxlOworICAgICAgICBbQ29uZGl0aW9uYWw9
Q1NTX1JFR0lPTlNdIGF0dHJpYnV0ZSBXZWJLaXRDU1NSZWdpb25SdWxlQ29uc3RydWN0b3IgV2Vi
S2l0Q1NTUmVnaW9uUnVsZTsKIAogICAgICAgICBhdHRyaWJ1dGUgV2ViS2l0Q1NTTWF0cml4Q29u
c3RydWN0b3IgV2ViS2l0Q1NTTWF0cml4OyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9y
CiAKQEAgLTU2Miw4ICs1NjIsOCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBhdHRyaWJ1
dGUgQ2xpcGJvYXJkQ29uc3RydWN0b3IgQ2xpcGJvYXJkOwogCi0gICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9V09SS0VSU10gV29ya2VyQ29uc3RydWN0b3IgV29ya2VyOyAvLyBVc2FibGUg
d2l0aCB0aGUgbmV3IG9wZXJhdG9yCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9U0hB
UkVEX1dPUktFUlMsIEpTQ3VzdG9tR2V0dGVyLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIFNoYXJlZFdv
cmtlckNvbnN0cnVjdG9yIFNoYXJlZFdvcmtlcjsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVy
YXRvcgorICAgICAgICBbQ29uZGl0aW9uYWw9V09SS0VSU10gYXR0cmlidXRlIFdvcmtlckNvbnN0
cnVjdG9yIFdvcmtlcjsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgorICAgICAgICBb
Q29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMsIEpTQ3VzdG9tR2V0dGVyLCBWOEVuYWJsZWRBdFJ1
bnRpbWVdIGF0dHJpYnV0ZSBTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciBTaGFyZWRXb3JrZXI7IC8v
IFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKIAogICAgICAgICBhdHRyaWJ1dGUgRmlsZUNv
bnN0cnVjdG9yIEZpbGU7CiAgICAgICAgIGF0dHJpYnV0ZSBGaWxlTGlzdENvbnN0cnVjdG9yIEZp
bGVMaXN0OwpAQCAtNTgzLDcgKzU4Myw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRy
aWJ1dGUgWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvciBYTUxIdHRwUmVxdWVzdDsgLy8gVXNhYmxl
IHdpdGggdGhlIG5ldyBvcGVyYXRvcgogICAgICAgICBhdHRyaWJ1dGUgWE1MSHR0cFJlcXVlc3RV
cGxvYWRDb25zdHJ1Y3RvciBYTUxIdHRwUmVxdWVzdFVwbG9hZDsKICAgICAgICAgYXR0cmlidXRl
IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b247Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9WFNMVF0gWFNMVFByb2Nlc3NvckNv
bnN0cnVjdG9yIFhTTFRQcm9jZXNzb3I7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IK
KyAgICAgICAgW0NvbmRpdGlvbmFsPVhTTFRdIGF0dHJpYnV0ZSBYU0xUUHJvY2Vzc29yQ29uc3Ry
dWN0b3IgWFNMVFByb2Nlc3NvcjsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgogCiAj
aWYgZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICYmIEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORwogICAgICAgICBhdHRyaWJ1dGUgTWVzc2FnZVBvcnRDb25zdHJ1Y3RvciBNZXNzYWdl
UG9ydDsKQEAgLTYxMCw3ICs2MTAsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmli
dXRlIFhQYXRoUmVzdWx0Q29uc3RydWN0b3IgWFBhdGhSZXN1bHQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBYUGF0aEV4Y2VwdGlvbkNvbnN0cnVjdG9yIFhQYXRoRXhjZXB0aW9uOwogCi0gICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdab29tRXZlbnRDb25zdHJ1Y3RvciBTVkdab29t
RXZlbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1TVkddIGF0dHJpYnV0ZSBTVkdab29tRXZlbnRD
b25zdHJ1Y3RvciBTVkdab29tRXZlbnQ7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9TVkcpICYmIEVO
QUJMRV9TVkcKICAgICAgICAgLy8gRXhwb3NlIGFsbCBpbXBsZW1lbnRlZCBTVkcgMS4xIGludGVy
ZmFjZXMsIGV4Y2x1ZGluZyB0aGUgU1ZHIE1JIGludGVyZmFjZXM6CkBAIC03NzEsMTQgKzc3MSwx
NCBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NRm9ybURhdGFDb25z
dHJ1Y3RvciBGb3JtRGF0YTsKIAotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUJMT0J8
RklMRV9TWVNURU1dIEZpbGVFcnJvckNvbnN0cnVjdG9yIEZpbGVFcnJvcjsKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1CTE9CXSBGaWxlUmVhZGVyQ29uc3RydWN0b3IgRmlsZVJlYWRl
cjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUJMT0J8RklMRV9TWVNURU1dIGF0dHJpYnV0ZSBGaWxl
RXJyb3JDb25zdHJ1Y3RvciBGaWxlRXJyb3I7CisgICAgICAgIFtDb25kaXRpb25hbD1CTE9CXSBh
dHRyaWJ1dGUgRmlsZVJlYWRlckNvbnN0cnVjdG9yIEZpbGVSZWFkZXI7CiAKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1CTE9CJkxFR0FDWV9XRUJLSVRfQkxPQl9CVUlMREVSXSBXZWJL
aXRCbG9iQnVpbGRlckNvbnN0cnVjdG9yIFdlYktpdEJsb2JCdWlsZGVyOworICAgICAgICBbQ29u
ZGl0aW9uYWw9QkxPQiZMRUdBQ1lfV0VCS0lUX0JMT0JfQlVJTERFUl0gYXR0cmlidXRlIFdlYktp
dEJsb2JCdWlsZGVyQ29uc3RydWN0b3IgV2ViS2l0QmxvYkJ1aWxkZXI7CiAKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1CTE9CXSBET01VUkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1CTE9CXSBhdHRyaWJ1dGUgRE9NVVJMQ29uc3RydWN0b3Igd2Vi
a2l0VVJMOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJW
RVJTXSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRpb25PYnNl
cnZlcjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1VVEFUSU9OX09CU0VSVkVSU10gYXR0cmlidXRl
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3RvciBXZWJLaXRNdXRhdGlvbk9ic2VydmVy
OwogCiAjZW5kaWYgLy8gZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQogCkBAIC03ODgsNSAr
Nzg4LDUgQEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5kaWYgLy8gZGVmaW5lZChWOF9CSU5ESU5HKQog
ICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UGFnZVBvcHVwLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UGFnZVBvcHVw
LmlkbAppbmRleCBhYTQ3N2ExMTExNTk3NmZiYzRhOWIzNThmMmViOWUwMjM0ZjE4Mzc2Li44OTFk
YWY1NTI4NzBjNDVmOWRhYTA3MTYzMDgxNzA4YTg4OGYyMTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuaWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBt
b2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9UEFHRV9QT1BVUCwKICAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdwotICAgIF0gRE9N
V2luZG93UGFnZVBvcHVwIHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRQ
ZXJDb250ZXh0PXBhZ2VQb3B1cF0gUGFnZVBvcHVwQ29udHJvbGxlciBwYWdlUG9wdXBDb250cm9s
bGVyOworICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvd1BhZ2VQb3B1cCB7CisgICAgICAgIFtWOEVu
YWJsZWRQZXJDb250ZXh0PXBhZ2VQb3B1cF0gcmVhZG9ubHkgYXR0cmlidXRlIFBhZ2VQb3B1cENv
bnRyb2xsZXIgcGFnZVBvcHVwQ29udHJvbGxlcjsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudFNvdXJjZS5pZGwKaW5kZXggNDhkZjNlYmU4Yjg1YzRiNDVhMjllYWJkNzAxY2Y4ZGYy
ODRjZWE3ZC4uYWIwZjhiNjhmMjdlNWYzYWFlMGNmMTQxOWUwMDA1ZmE2OTEzZGY5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudFNvdXJjZS5pZGwKQEAgLTMxLDE0ICszMSwxNCBAQAogCiBtb2R1bGUg
d2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBBY3RpdmVET01PYmpl
Y3QsCiAgICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBzY3JpcHRVcmwpLAogICAgICAg
ICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAgICBDb25zdHJ1Y3RvclJh
aXNlc0V4Y2VwdGlvbiwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIEpTTm9TdGF0aWNU
YWJsZXMKLSAgICBdIEV2ZW50U291cmNlIHsKKyAgICBdIGludGVyZmFjZSBFdmVudFNvdXJjZSB7
CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7IC8vIExvd2VyY2Fz
ZWQgLnVybCBpcyB0aGUgb25lIGluIHRoZSBzcGVjLCBidXQgbGVhdmluZyAuVVJMIGZvciBjb21w
YXRpYmlsaXR5IHJlYXNvbnMuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dXJsOwpAQCAtNTgsMTIgKzU4LDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBFdmVu
dFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0
cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5l
ciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAg
ICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJh
aXNlcyhFdmVudEV4Y2VwdGlvbik7CiAKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rvcnku
aWRsCmluZGV4IDZlOGY2YWIwNjdlYTEzMmM2YmI0NGYxMzYyMmI1YjJiNDM0YzM4NTguLjEzYzY5
ZTBjMDRmODBkNmQ3MzExNDA0YTRkMjk2ZTJkNzI5OWMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSGlzdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5
LmlkbApAQCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogI2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORwogICAgICAg
ICBDaGVja1NlY3VyaXR5LAogI2VuZGlmCkBAIC0zNSwxOCArMzUsMTggQEAgbW9kdWxlIHdpbmRv
dyB7CiAgICAgICAgIEN1c3RvbURlbGV0ZVByb3BlcnR5LAogICAgICAgICBDdXN0b21FbnVtZXJh
dGVQcm9wZXJ0eSwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBIaXN0b3J5IHsKKyAg
ICBdIGludGVyZmFjZSBIaXN0b3J5IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJp
YnV0ZSwgQ3VzdG9tXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc3RhdGU7CisgICAgICAgIFtDYWNo
ZWRBdHRyaWJ1dGUsIEN1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSBzdGF0ZTsKIAogICAgICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGJhY2soKTsKICAgICAgICAgW0RvTm90Q2hlY2tTZWN1
cml0eSwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBmb3J3YXJkKCk7Ci0g
ICAgICAgIFtEb05vdENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIHZvaWQgZ28oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBkaXN0YW5j
ZSk7CisgICAgICAgIFtEb05vdENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIHZvaWQgZ28oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBk
aXN0YW5jZSk7CiAgICAgICAgIAotICAgICAgICBbQ3VzdG9tLCBWOEVuYWJsZWRBdFJ1bnRpbWVd
IHZvaWQgcHVzaFN0YXRlKGluIGFueSBkYXRhLCBpbiBET01TdHJpbmcgdGl0bGUsIGluIFtPcHRp
b25hbF0gRE9NU3RyaW5nIHVybCkKKyAgICAgICAgW0N1c3RvbSwgVjhFbmFibGVkQXRSdW50aW1l
XSB2b2lkIHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9NU3RyaW5nIHRpdGxlLCBbT3B0aW9u
YWxdIGluIERPTVN0cmluZyB1cmwpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgW0N1c3RvbSwgVjhFbmFibGVkQXRSdW50aW1lXSB2b2lkIHJlcGxhY2VTdGF0ZShp
biBhbnkgZGF0YSwgaW4gRE9NU3RyaW5nIHRpdGxlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyB1
cmwpCisgICAgICAgIFtDdXN0b20sIFY4RW5hYmxlZEF0UnVudGltZV0gdm9pZCByZXBsYWNlU3Rh
dGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRsZSwgW09wdGlvbmFsXSBpbiBET01TdHJp
bmcgdXJsKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKaW5kZXggMWYxNzAzYWY2YTU2YjcwOWY2NWVkMGQ5
ZThmZGFiYWM2MGJlNWE3Mi4uNzc2NzQ3ZTllNWU0OWJhNzc3ZWYyYzRlNjFhYTBhYmZhYzkzYjk0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogbW9kdWxl
IHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICNpZiBkZWZpbmVkKFY4X0JJTkRJ
TkcpICYmIFY4X0JJTkRJTkcKICAgICAgICAgQ2hlY2tTZWN1cml0eSwKICNlbmRpZgpAQCAtNDIs
MjQgKzQyLDI0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBKU0N1c3RvbURlZmluZU93blBy
b3BlcnR5T25Qcm90b3R5cGUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgVjhD
dXN0b21Ub0pTT2JqZWN0Ci0gICAgXSBMb2NhdGlvbiB7CisgICAgXSBpbnRlcmZhY2UgTG9jYXRp
b24gewogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0RvTm90Q2hlY2tTZWN1cml0eU9uU2V0dGVyLCBDdXN0b21T
ZXR0ZXIsIFY4VW5mb3JnZWFibGVdIERPTVN0cmluZyBocmVmOworICAgICAgICAgICAgICAgICBb
RG9Ob3RDaGVja1NlY3VyaXR5T25TZXR0ZXIsIEN1c3RvbVNldHRlciwgVjhVbmZvcmdlYWJsZV0g
YXR0cmlidXRlIERPTVN0cmluZyBocmVmOwogI2VuZGlmCiAKLSAgICAgICAgW0N1c3RvbSwgVjhV
bmZvcmdlYWJsZV0gdm9pZCBhc3NpZ24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIHVybCk7Ci0gICAgICAgIFtDdXN0b20sIFY4VW5mb3JnZWFibGVdIHZvaWQgcmVw
bGFjZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdXJsKTsKKyAg
ICAgICAgW0N1c3RvbSwgVjhVbmZvcmdlYWJsZV0gdm9pZCBhc3NpZ24oW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHVybCk7CisgICAgICAgIFtDdXN0b20sIFY4VW5m
b3JnZWFibGVdIHZvaWQgcmVwbGFjZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgdXJsKTsKICAgICAgICAgW0N1c3RvbSwgVjhVbmZvcmdlYWJsZV0gdm9pZCByZWxv
YWQoKTsKIAogICAgICAgICAvLyBVUkkgZGVjb21wb3NpdGlvbiBhdHRyaWJ1dGVzCiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCi0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgcHJvdG9jb2w7Ci0gICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaG9zdDsKLSAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBob3N0bmFtZTsKLSAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBwb3J0OwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHBhdGhuYW1l
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHNl
YXJjaDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmlu
ZyBoYXNoOworICAgICAgICAgICAgICAgICBbQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHByb3RvY29sOworICAgICAgICAgICAgICAgICBbQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGhvc3Q7CisgICAgICAgICAgICAgICAgIFtDdXN0b21TZXR0ZXJdIGF0dHJpYnV0
ZSBET01TdHJpbmcgaG9zdG5hbWU7CisgICAgICAgICAgICAgICAgIFtDdXN0b21TZXR0ZXJdIGF0
dHJpYnV0ZSBET01TdHJpbmcgcG9ydDsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbVNldHRlcl0g
YXR0cmlidXRlIERPTVN0cmluZyBwYXRobmFtZTsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbVNl
dHRlcl0gYXR0cmlidXRlIERPTVN0cmluZyBzZWFyY2g7CisgICAgICAgICAgICAgICAgIFtDdXN0
b21TZXR0ZXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKIAogICAgICAgICAgICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9yaWdpbjsKICNlbmRpZgpAQCAtNzQsNCArNzQs
NCBAQCBtb2R1bGUgd2luZG93IHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9NZW1vcnlJbmZvLmlkbAppbmRleCBiOTE0OWQ1NGQ0NWY5MzAxNzRmMzQyNmU1YmIzM2ViN2Y5
ZDAwMjQ5Li5jZTdhMTI0NDNhZTgyYjc0Njc5MWRhM2Q0OWRhZTFlMjExOWZkMmZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwKQEAgLTMwLDE0ICszMCwxNCBAQAogCiBtb2R1bGUgd2lu
ZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBPbWl0Q29uc3RydWN0b3IK
LSAgICBdIE1lbW9yeUluZm8geworICAgIF0gaW50ZXJmYWNlIE1lbW9yeUluZm8gewogCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHRvdGFsSlNIZWFwU2l6ZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdXNlZEpTSGVhcFNpemU7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSlNDdXN0b21HZXR0ZXJdIHVuc2lnbmVkIGxvbmcg
anNIZWFwU2l6ZUxpbWl0OworICAgICAgICBbSlNDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGpzSGVhcFNpemVMaW1pdDsKIAogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvci5pZGwKaW5kZXggOGYzODBhMTg3NTM0OTdjM2U0ZTdlNzUxNmQ3
Y2Q3NGVmYjUxOWUwNy4uOWE3ZGIyODkwOTU5MTA1ZDQ0NDNiMjZjOTNjYTdhYmM1NWEyOTg3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbApAQCAtMTksMTAgKzE5LDEwIEBACiAKIG1vZHVs
ZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gTmF2
aWdhdG9yIHsKKyAgICBdIGludGVyZmFjZSBOYXZpZ2F0b3IgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVOYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFwcE5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgYXBwVmVyc2lvbjsKQEAgLTQxLDEwICs0MSwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOwogCiAjaWYgZGVmaW5lZChFTkFC
TEVfUE9JTlRFUl9MT0NLKSAmJiBFTkFCTEVfUE9JTlRFUl9MT0NLIC8vIEZJWE1FOiBSZW1vdmUg
cmVsaWFuY2Ugb24gUG9pbnRlckxvY2suaWRsIHdoZW4gcmVtb3Zpbmcgb2xkIFBvaW50ZXIgTG9j
ayBBUEkuIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ0MDIpCi0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVu
YWJsZWRBdFJ1bnRpbWU9cG9pbnRlckxvY2tdIFBvaW50ZXJMb2NrIHdlYmtpdFBvaW50ZXI7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2lu
dGVyTG9ja10gcmVhZG9ubHkgYXR0cmlidXRlIFBvaW50ZXJMb2NrIHdlYmtpdFBvaW50ZXI7CiAj
ZW5kaWYKIAogICAgICAgICB2b2lkIGdldFN0b3JhZ2VVcGRhdGVzKCk7IC8vIEZJWE1FOiBSZW1v
dmUgdGhpcyBtZXRob2Qgb3IgcmVuYW1lIHRvIHlpZWxkRm9yU3RvcmFnZVVwZGF0ZXMuCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JS
ZWdpc3RlclByb3RvY29sSGFuZGxlci5pZGwKaW5kZXggMWJkNTdmMmZlMmM0MmU2NmUxOWE2ZDI3
NWRmYzI4YTg4MDk1YzU3MS4uMDI0NjcxYTgwYWVmODkxZjQwM2JiY2I4YThjZGRkZWRiMzA2ZWY3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JSZWdpc3RlclByb3Rv
Y29sSGFuZGxlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JSZWdpc3Rl
clByb3RvY29sSGFuZGxlci5pZGwKQEAgLTIwLDkgKzIwLDkgQEAKIAogbW9kdWxlIHdpbmRvdyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgU3VwcGxlbWVudGFsPU5hdmlnYXRv
cgotICAgIF0gTmF2aWdhdG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIgeworICAgIF0gaW50ZXJm
YWNlIE5hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyIHsKICAgICAgICAgW0NvbmRpdGlv
bmFsPVJFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVJdIHZvaWQgcmVnaXN0ZXJQcm90b2NvbEhhbmRs
ZXIoaW4gRE9NU3RyaW5nIHNjaGVtZSwgaW4gRE9NU3RyaW5nIHVybCwgaW4gRE9NU3RyaW5nIHRp
dGxlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDb25kaXRp
b25hbD1DVVNUT01fU0NIRU1FX0hBTkRMRVJdIERPTVN0cmluZyBpc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQoaW4gRE9NU3RyaW5nIHNjaGVtZSwgaW4gRE9NU3RyaW5nIHVybCkKQEAgLTMxLDQg
KzMxLDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
UG9wdXBDb250cm9sbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ29udHJv
bGxlci5pZGwKaW5kZXggNmUwYTQ5ZGFiYTE0OTViMzAxZjg0ZWY2MjU0OTg2MzhkOWIzODk5MC4u
ZmM0MjY3MzQzOWZjNDIxMzNhYTE1ODhhMTc3NTgwMTdlNzYzYjI5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDb250cm9sbGVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VQb3B1cENvbnRyb2xsZXIuaWRsCkBAIC0yOSw5ICsyOSw5IEBACiAgKi8K
IAogbW9kdWxlIHdpbmRvdyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVBBR0VfUE9QVVAKLSAgICBdIFBhZ2VQb3B1cENvbnRyb2xsZXIgeworICAgIF0gaW50
ZXJmYWNlIFBhZ2VQb3B1cENvbnRyb2xsZXIgewogICAgICAgICB2b2lkIHNldFZhbHVlQW5kQ2xv
c2VQb3B1cChpbiBsb25nIG51bWJlclZhbHVlLCBpbiBET01TdHJpbmcgc3RyaW5nVmFsdWUpOwog
ICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbAppbmRleCBmYzlmZmRm
MWY3ZGYwYjM0NThkNjA1YzhjN2VmN2YxZmM1ZTg3NjQ1Li43ZDE4YWQ4MWRiYWQ5ZTg5NjdjMTli
YjJhMmFjY2YxYjY4Y2UxOGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmlkbApAQCAt
MzEsMTkgKzMxLDE5IEBACiBtb2R1bGUgd2luZG93IHsKIAogICAgIC8vIFNlZTogaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViVGltaW5nLwotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1XRUJfVElNSU5HLAogICAgICAgICBFdmVudFRhcmdldCwKICAg
ICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBQZXJmb3JtYW5jZSB7CisgICAgXSBpbnRlcmZh
Y2UgUGVyZm9ybWFuY2UgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uIG5hdmlnYXRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQZXJmb3Jt
YW5jZVRpbWluZyB0aW1pbmc7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhDdXN0b21H
ZXR0ZXJdIE1lbW9yeUluZm8gbWVtb3J5OworICAgICAgICBbVjhDdXN0b21HZXR0ZXJdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBNZW1vcnlJbmZvIG1lbW9yeTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX1BF
UkZPUk1BTkNFX1RJTUVMSU5FKSAmJiBFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUKICAgICAg
ICAgUGVyZm9ybWFuY2VFbnRyeUxpc3Qgd2Via2l0R2V0RW50cmllcygpOwogICAgICAgICBQZXJm
b3JtYW5jZUVudHJ5TGlzdCB3ZWJraXRHZXRFbnRyaWVzQnlUeXBlKGluIERPTVN0cmluZyBlbnRy
eVR5cGUpOwotICAgICAgICBQZXJmb3JtYW5jZUVudHJ5TGlzdCB3ZWJraXRHZXRFbnRyaWVzQnlO
YW1lKGluIERPTVN0cmluZyBuYW1lLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGVudHJ5VHlwZSk7CisgICAgICAgIFBlcmZvcm1hbmNlRW50cnlMaXN0IHdlYmtp
dEdldEVudHJpZXNCeU5hbWUoaW4gRE9NU3RyaW5nIG5hbWUsIFtPcHRpb25hbD1EZWZhdWx0SXNO
dWxsU3RyaW5nXSBpbiBET01TdHJpbmcgZW50cnlUeXBlKTsKICNlbmRpZgogCiAjaWYgZGVmaW5l
ZChFTkFCTEVfUkVTT1VSQ0VfVElNSU5HKSAmJiBFTkFCTEVfUkVTT1VSQ0VfVElNSU5HCkBAIC01
Niw0ICs1Niw0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBkb3VibGUgd2Via2l0Tm93KCk7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VFbnRyeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaWRs
CmluZGV4IDllMTBmZTBiZjE3NTMxOWYyMmMzN2QyNjAzYTBlODJkOThmMzgzMmYuLjUzZmQwNDQ2
MmNkZjdlNWNlMjdkMTg5YTYyNDJkYmYyNTlmOWU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZUVudHJ5LmlkbApAQCAtMzEsMTUgKzMxLDE1IEBACiBtb2R1bGUgd2luZG93IHsK
IAogICAgIC8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3Rp
cC9zcGVjcy9QZXJmb3JtYW5jZVRpbWVsaW5lL092ZXJ2aWV3Lmh0bWwKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgQ29uZGl0
aW9uYWw9UEVSRk9STUFOQ0VfVElNRUxJTkUsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAg
ICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gUGVyZm9ybWFuY2VFbnRyeSB7CisgICAgXSBp
bnRlcmZhY2UgUGVyZm9ybWFuY2VFbnRyeSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBlbnRy
eVR5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgc3RhcnRUaW1lOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGR1cmF0aW9uOwogICAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmlkbAppbmRleCA4YmU0
M2Q1NzY4MzYyYTQ3ZjI5NWI0ZTgzM2QxMGNlMTkwMWNkZmRiLi5mMmExYzFkYmM4MzNlMjY3YjBi
ZTI4MjFlODBmYTRhZTYwNTVhZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlRW50cnlMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlRW50cnlMaXN0LmlkbApAQCAtMzEsMTQgKzMxLDE0IEBACiBtb2R1bGUgd2luZG93IHsKIAog
ICAgIC8vIFNlZTogaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy93ZWJwZXJmL3Jhdy1maWxlL3RpcC9z
cGVjcy9QZXJmb3JtYW5jZVRpbWVsaW5lL092ZXJ2aWV3Lmh0bWwKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgQ29uZGl0aW9u
YWw9UEVSRk9STUFOQ0VfVElNRUxJTkUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAg
ICAgSW5kZXhlZEdldHRlcgotICAgIF0gUGVyZm9ybWFuY2VFbnRyeUxpc3QgeworICAgIF0gaW50
ZXJmYWNlIFBlcmZvcm1hbmNlRW50cnlMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBQZXJmb3JtYW5jZUVudHJ5IGl0ZW0oaW4g
dW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmlkbAppbmRleCA0YzZiNjEyZWYzZDFiY2ZlMDVj
OTdjZjlkNmFiNDZkNjYxMDg3MDhiLi41NTZkZDBiOGRiNThlZGJlYTNmNjE0OTQ5Y2NhZGE2YzVi
ZDFiNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdh
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24u
aWRsCkBAIC0zMSwxMCArMzEsMTAgQEAKIG1vZHVsZSB3aW5kb3cgewogCiAgICAgLy8gU2VlOiBo
dHRwOi8vd3d3LnczLm9yZy9UUi9uYXZpZ2F0aW9uLXRpbWluZy8KLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgT21pdENvbnN0
cnVjdG9yCi0gICAgXSBQZXJmb3JtYW5jZU5hdmlnYXRpb24geworICAgIF0gaW50ZXJmYWNlIFBl
cmZvcm1hbmNlTmF2aWdhdGlvbiB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRZUEVf
TkFWSUdBVEUgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUWVBFX1JFTE9BRCA9
IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRZUEVfQkFDS19GT1JXQVJEID0gMjsK
QEAgLTQ0LDQgKzQ0LDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCByZWRpcmVjdENvdW50OwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRs
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAppbmRl
eCAzZTBhZDU5Y2U4NGJmMTNkMjFiMTQ5ODliOWYxMDNlMTY5ZThmMjM4Li40MmNjNGZhMjcyMzlj
ZWUzMDA3NjUxZThjYWQxN2ZhYzk2ZGM0NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5pZGwKQEAgLTMxLDEwICszMSwxMCBAQAogbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVy
Zi9yYXctZmlsZS90aXAvc3BlY3MvUmVzb3VyY2VUaW1pbmcvT3ZlcnZpZXcuaHRtbAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1SRVNPVVJDRV9USU1JTkcsCiAg
ICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA6
IFBlcmZvcm1hbmNlRW50cnkgeworICAgIF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlUmVzb3VyY2VU
aW1pbmcgOiBQZXJmb3JtYW5jZUVudHJ5IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBpbml0aWF0b3JUeXBlOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3Vi
bGUgcmVkaXJlY3RTdGFydDsKQEAgLTQ5LDQgKzQ5LDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgcmVzcG9uc2VTdGFydDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGRvdWJsZSByZXNwb25zZUVuZDsKICAgICB9OwotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwKaW5kZXggM2UxNGY3YzQ0ODc3OGE0
YzY3YzljN2ZmYTdmMzc0OTIyZDU1ZmIwZS4uM2Y3YTllOTc3MjY5MDM5ZTU1ZTQ3YTI3YTAzZTY2
N2M3ODczMmI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRp
bWluZy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwK
QEAgLTMxLDEwICszMSwxMCBAQAogbW9kdWxlIHdpbmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHA6
Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgT21pdENvbnN0cnVj
dG9yCi0gICAgXSBQZXJmb3JtYW5jZVRpbWluZyB7CisgICAgXSBpbnRlcmZhY2UgUGVyZm9ybWFu
Y2VUaW1pbmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IG5hdmlnYXRpb25TdGFydDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbG9uZyB1bmxvYWRFdmVudFN0YXJ0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBsb25nIHVubG9hZEV2ZW50RW5kOwpAQCAtNTgsNCArNTgsNCBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBs
b2FkRXZlbnRFbmQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckxvY2suaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9jay5p
ZGwKaW5kZXggMzA1NGJjZjIwZjE3ZGQ3Nzc5ODY5ODc4MTZkNGY3ODk2YWUyMmZlNC4uNGY0MDZk
NWI5NmUzYjg0M2NmMmM0ZDA2YmNjOWNjYTQ0ZmY0NDgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Qb2ludGVyTG9jay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2lu
dGVyTG9jay5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLAogICAg
ICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFBvaW50ZXJMb2NrIHsKLSAgICAgICAgdm9pZCBs
b2NrKGluIEVsZW1lbnQgdGFyZ2V0LCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBWb2lkQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBWb2lkQ2FsbGJhY2sg
ZmFpbHVyZUNhbGxiYWNrKTsKKyAgICBdIGludGVyZmFjZSBQb2ludGVyTG9jayB7CisgICAgICAg
IHZvaWQgbG9jayhpbiBFbGVtZW50IHRhcmdldCwgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gVm9p
ZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjayk7CiAgICAgICAgIHZvaWQgdW5sb2NrKCk7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzTG9ja2VkOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NjcmVlbi5pZGwKaW5kZXggNTg4MDYwOTE0MGRlYWYwMTdmNjdkMjYzM2Q0ODg0YjNi
NjAzYjVlZC4uNGFjMTdlOGFhMmU5ZGU3MTIwZGFhODlkOWViYzg3MzhiOTU4NTYzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2NyZWVuLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAKIG1vZHVsZSB3aW5kb3cgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1J
bXBsRnJhbWUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gU2NyZWVuIHsKKyAgICBd
IGludGVyZmFjZSBTY3JlZW4gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdp
ZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjb2xvckRlcHRo
OwpAQCAtNDMsNCArNDMsNCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgYXZhaWxXaWR0aDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwKaW5kZXggMDM4NDZhZjE0YWJiNzRiYWMw
MTI3NzQ4MDkyZTE5NTE2YzZkNGJkYy4uOTNjM2ViZGYyYzYyNjU1YWQxMDMxOWJhNTg4NzA3ZjA4
ODJiMDBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCkBAIC0y
NSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAg
ICAgQ29uZGl0aW9uYWw9SU5QVVRfU1BFRUNILAotICAgIF0gU3BlZWNoSW5wdXRFdmVudCA6IEV2
ZW50IHsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSAorICAgIF0gaW50
ZXJmYWNlIFNwZWVjaElucHV0RXZlbnQgOiBFdmVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBTcGVlY2hJbnB1dFJlc3VsdExpc3QgcmVzdWx0czsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbAppbmRleCAzNTQyYzYwNTYxN2Fi
ZTY0OWM2NGFhMTljYTBkNjM1NzE5OTc3YzE1Li40OTI5N2M5YTJkYjVlZTY3NmIxZDhiNTQzYmNi
N2VkMTU3NGUyNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
UmVzdWx0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0Lmlk
bApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBb
Ci0gICAgICAgIENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSCwKLSAgICBdIFNwZWVjaElucHV0UmVz
dWx0IHsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSAorICAgIF0gaW50
ZXJmYWNlIFNwZWVjaElucHV0UmVzdWx0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB1dHRlcmFuY2U7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBjb25m
aWRlbmNlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0UmVzdWx0TGlzdC5pZGwKaW5kZXggYjkyMTNkMDAyYzNkZjE4Nzc3MzYwNzk2ZjM1MTk1MjM5
NGIzYjU2Ni4uNzU5Y2YyMTk3NmM2NGU4NmMxYWJmOGZmNTE0MzdhYWMwNWJjOTBmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbApAQCAtMjUsMTIg
KzI1LDEyIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gKLSAg
ICBdIFNwZWVjaElucHV0UmVzdWx0TGlzdCB7CisgICAgXSBpbnRlcmZhY2UgU3BlZWNoSW5wdXRS
ZXN1bHRMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwotICAgICAgICBTcGVlY2hJbnB1dFJlc3VsdCBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICAgICAgU3BlZWNoSW5wdXRSZXN1bHQgaXRlbShbSXNJbmRleF0g
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2ViS2l0QW5pbWF0aW9uLmlkbAppbmRleCA0ZmJhMmU4ZmJkM2EwMzM4NzYzZDlkOWZmYzFl
Y2U2MTQwOGYzODJhLi5jMTU4NGRhNzQ3OTgyNGY1OGZjOWVlNmU4Zjg2NGY3NWRiNjJkOTZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24uaWRsCkBAIC0zNiw3ICszNiw3IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBlbGFwc2VkVGltZTsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRlbGF5OwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0N1c3RvbV0gaW50IGl0ZXJhdGlvbkNvdW50OworICAgICAgICBbQ3VzdG9t
XSByZWFkb25seSBhdHRyaWJ1dGUgaW50IGl0ZXJhdGlvbkNvdW50OwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZW5kZWQ7CkBAIC01NSw0ICs1NSw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
dm9pZCBwYXVzZSgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJL
aXRBbmltYXRpb25MaXN0LmlkbAppbmRleCBlZDMwNWY3OTI5ZTk1NTY0N2I5ZTBkZTg0OGI1YTZj
YzU5YzViMDY0Li44ZGM2ZDE5ZjhlM2EwOWJhMDU1MzA3ZTQ3ZTc2NGM5MjBmNjczMzE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwKQEAgLTI1LDExICsy
NSwxMSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgSW5kZXhlZEdldHRlcgotICAgIF0gV2ViS2l0QW5pbWF0aW9uTGlzdCB7CisgICAgXSBpbnRl
cmZhY2UgV2ViS2l0QW5pbWF0aW9uTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgV2ViS2l0QW5pbWF0aW9uIGl0ZW0oaW4gdW5z
aWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRQ
b2ludC5pZGwKaW5kZXggZTQ0ZmQyMTA0ZmIzNjk2OWY0Y2MzMWRlNjQxZmUyMzBjZDI5NjI4Mi4u
NzE2ZGM1MDFkZWU2ZmIxMGFlZDQxZjFmNTA3ZjRjMGI5MDc0ZDE0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRQb2ludC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9XZWJLaXRQb2ludC5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgd2luZG93IHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAg
ICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTIKLSAgICBdIFdlYktpdFBvaW50IHsKKyAgICBd
IGludGVyZmFjZSBXZWJLaXRQb2ludCB7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4OwogICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCmluZGV4IDgxOWRlMDlkNjc4OWUwOTVmY2ZkY2RiOTE1MmUz
NThhMTIwNGYxOGYuLjkxNTZmNGU0MDk4OTljNmMzYzhhZjM2MDM4YzkwZTVkNGE4YTQ3NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKQEAgLTI4LDEyICsyOCwxMiBA
QAogCiBtb2R1bGUgdGhyZWFkcyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9V09SS0VSUywKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGws
CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAg
IF0gV29ya2VyTmF2aWdhdG9yIHsKKyAgICBdIGludGVyZmFjZSBXb3JrZXJOYXZpZ2F0b3Igewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcE5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwVmVyc2lvbjsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKQEAgLTQyLDQgKzQyLDQgQEAgbW9kdWxlIHRo
cmVhZHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5
cGUuaWRsIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5pZGwKaW5kZXggOTQy
MDYwZjEwNzAwZTIwNGZlZGM3ZDkwNDI4NGE0OGI4NmQxNjZmNy4uMzZjMjY5NGM3NWZlNTdiMTI5
OWI0ZTdiYmFkMWU4YzgwOGI3ZDFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ET01NaW1lVHlwZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlw
ZS5pZGwKQEAgLTIwLDEzICsyMCwxMyBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBJbnRlcmZhY2VOYW1lPU1pbWVUeXBlCi0gICAgXSBET01N
aW1lVHlwZSB7CisgICAgXSBpbnRlcmZhY2UgRE9NTWltZVR5cGUgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgc3VmZml4ZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ZGVzY3JpcHRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01QbHVnaW4gZW5hYmxl
ZFBsdWdpbjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWlt
ZVR5cGVBcnJheS5pZGwKaW5kZXggM2RlN2Y4ZDZkNjdiZWFiNWMxMWE4NThkYzJlZDcwMTY3YmFi
NDQ4Yy4uNDQ5NWRkNjUxOTA1MGFlNDhhZGVlMGQ5MGYyNTg4ZGZjNTYyMzM1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlQXJyYXkuaWRsCkBAIC0yMCwxNSArMjAsMTUg
QEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
SlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZSwKICAgICAgICAgTmFtZWRHZXR0ZXIsCiAg
ICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEludGVyZmFjZU5hbWU9TWltZVR5cGVBcnJh
eQotICAgIF0gRE9NTWltZVR5cGVBcnJheSB7CisgICAgXSBpbnRlcmZhY2UgRE9NTWltZVR5cGVB
cnJheSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsK
LSAgICAgICAgRE9NTWltZVR5cGUgaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgRE9NTWltZVR5cGUgbmFtZWRJdGVtKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAg
RE9NTWltZVR5cGUgaXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICAgICAgRE9NTWltZVR5cGUgbmFtZWRJdGVtKFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaWRsIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaWRsCmluZGV4IGY2NDVhMGI2ZTBmN2Y0MmU1NDg2
MzNlMzU3OWQxZGIxYmIwZGI0OTguLjI0Nzg0ODk0ZDc1ZjI3N2JlM2Y4NGQyMTJjOTU5YzgzZDc1
M2QzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBsdWdpbi5pZGwKQEAgLTIwLDE3ICsyMCwx
NyBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBOYW1lZEdldHRlciwKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgSW50ZXJmYWNl
TmFtZT1QbHVnaW4KLSAgICBdIERPTVBsdWdpbiB7CisgICAgXSBpbnRlcmZhY2UgRE9NUGx1Z2lu
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpbGVuYW1lOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2NyaXB0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIERPTU1pbWVUeXBlIGl0ZW0oaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgICAg
IERPTU1pbWVUeXBlIG5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgbmFtZSk7CisgICAgICAgIERPTU1pbWVUeXBlIGl0ZW0oW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIERPTU1pbWVU
eXBlIG5hbWVkSXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
bmFtZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvRE9NUGx1Z2luQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5B
cnJheS5pZGwKaW5kZXggZjA0MmY5MjRjNjI4ZTY1ZGJiMmFhZWQ4NTFkZjJkNDA1NjhhZTAyZi4u
ZmVkMzNlNGNkYzE3OWVhOTdiMDQwMTM3NThmNzk5ZTRiYThjNzU3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ET01QbHVnaW5BcnJheS5pZGwKQEAgLTIwLDE2ICsyMCwxNiBAQAogCiBtb2R1
bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRl
SXNSZWFjaGFibGU9SW1wbEZyYW1lLAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAgSW5k
ZXhlZEdldHRlciwKICAgICAgICAgSW50ZXJmYWNlTmFtZT1QbHVnaW5BcnJheQotICAgIF0gRE9N
UGx1Z2luQXJyYXkgeworICAgIF0gaW50ZXJmYWNlIERPTVBsdWdpbkFycmF5IHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBET01QbHVn
aW4gaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKLSAgICAgICAgRE9NUGx1Z2luIG5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIHZvaWQgcmVmcmVzaChpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHJlbG9hZCk7CisgICAgICAgIERPTVBs
dWdpbiBpdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcg
aW5kZXgpOworICAgICAgICBET01QbHVnaW4gbmFtZWRJdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgdm9pZCByZWZyZXNoKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gcmVsb2FkKTsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwKaW5kZXggMWQ1YjMyN2NiNTcwMmIxOTBl
NDlmZjMzODAyOTBlZTE3MTRkNTE5Ny4uZWE3MGMyZDI1MzczY2E2YWRjNjI2MmFhMDJiMTc3NzQw
YzkwMWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsCkBAIC0yNSwxNCArMjUsMTQg
QEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IE5hbWVkR2V0dGVyLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAog
ICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKICAgICAgICAgQ3VzdG9tRW51bWVyYXRlUHJv
cGVydHksCi0gICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyLAotICAgIF0gU3RvcmFnZSB7Ci0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gdW5zaWduZWQgbG9uZyBsZW5n
dGg7CisgICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyCisgICAgXSBpbnRlcmZhY2UgU3RvcmFnZSB7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CiAgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPU51bGxdIERPTVN0cmluZyBrZXkoaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAg
IFtOb3RFbnVtZXJhYmxlLCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmlu
ZyBnZXRJdGVtKGluIERPTVN0cmluZyBrZXkpOwogICAgICAgICBbTm90RW51bWVyYWJsZV0gdm9p
ZCBzZXRJdGVtKGluIERPTVN0cmluZyBrZXksIGluIERPTVN0cmluZyBkYXRhKSAKQEAgLTQxLDQg
KzQxLDQgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBbTm90RW51bWVyYWJsZV0gdm9pZCBj
bGVhcigpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVu
dC5pZGwKaW5kZXggNmU0NzcwYTc2YzU5OTYzNzBjZmE4MmI1ZGJiOTM1NzBhMzRjZTdiNS4uODM0
NGYwNjNhZjI5YzhjMDE3YzEzNmY2YWM4ZWFiMTRlNmI2MDIyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbApAQCAtMjUsMjYgKzI1LDI2IEBACiAKIG1vZHVsZSBzdG9y
YWdlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvclRlbXBs
YXRlPUV2ZW50Ci0gICAgXSBTdG9yYWdlRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBrZXk7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0
b3IsIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIG9sZFZhbHVlOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9y
LCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBuZXdWYWx1ZTsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0g
RE9NU3RyaW5nIHVybDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5
RXZlbnRDb25zdHJ1Y3Rvcl0gU3RvcmFnZSBzdG9yYWdlQXJlYTsKKyAgICBdIGludGVyZmFjZSBT
dG9yYWdlRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBrZXk7CisgICAgICAgIFtJbml0aWFs
aXplZEJ5RXZlbnRDb25zdHJ1Y3RvciwgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9sZFZhbHVlOworICAgICAgICBbSW5pdGlhbGl6
ZWRCeUV2ZW50Q29uc3RydWN0b3IsIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuZXdWYWx1ZTsKKyAgICAgICAgW0luaXRpYWxpemVk
QnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybDsKKyAg
ICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUg
U3RvcmFnZSBzdG9yYWdlQXJlYTsKIAotICAgICAgICB2b2lkIGluaXRTdG9yYWdlRXZlbnQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVBcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Ym9vbGVhbiBjYW5CdWJibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBrZXlBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01T
dHJpbmcgb2xkVmFsdWVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgbmV3VmFsdWVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHVybEFyZywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBTdG9yYWdl
IHN0b3JhZ2VBcmVhQXJnKTsKKyAgICAgICAgdm9pZCBpbml0U3RvcmFnZUV2ZW50KFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlQXJnLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xl
YW4gY2FuQnViYmxlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcga2V5QXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWQsVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5n
IG9sZFZhbHVlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWQsVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIG5l
d1ZhbHVlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB1cmxBcmcsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU3RvcmFnZSBzdG9y
YWdlQXJlYUFyZyk7CiAKICAgICAgICAgLy8gTmVlZGVkIG9uY2Ugd2Ugc3VwcG9ydCBpbml0PGJs
YW5rPkV2ZW50TlMKICAgICAgICAgLy8gdm9pZCBpbml0U3RvcmFnZUV2ZW50TlMoaW4gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwgaW4gRE9NU3RyaW5nIHR5cGVBcmcsIGluIGJvb2xlYW4gY2FuQnVi
YmxlQXJnLCBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsIGluIERPTVN0cmluZyBrZXlBcmcsIGlu
IERPTVN0cmluZyBvbGRWYWx1ZUFyZywgaW4gRE9NU3RyaW5nIG5ld1ZhbHVlQXJnLCBpbiBET01T
dHJpbmcgdXJsQXJnLCBpbiBTdG9yYWdlIHN0b3JhZ2VBcmVhQXJnKTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbAppbmRleCA5Yzc0OGM5
MmViN2EzMzgwMTBjZjQ1ZWY0ZDlkYzYxMjIzYzFjMmNiLi4yYTI5MDM5NTY1MGE4NDAwZTAyN2I4
MjFlNGUwZmZjYmQ1OTI2MjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvRWxlbWVu
dFRpbWVDb250cm9sLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250
cm9sLmlkbApAQCAtMjYsMTUgKzI2LDE1IEBACiAgCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIE9iakNQcm90
b2NvbCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBFbGVtZW50VGltZUNvbnRyb2wg
eyAKKyAgICBdIGludGVyZmFjZSBFbGVtZW50VGltZUNvbnRyb2wgeyAKICAgICAgICAgdm9pZCBi
ZWdpbkVsZW1lbnQoKTsKLSAgICAgICAgdm9pZCBiZWdpbkVsZW1lbnRBdChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBvZmZzZXQpOworICAgICAgICB2b2lkIGJlZ2luRWxl
bWVudEF0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IG9mZnNldCk7CiAg
ICAgICAgIHZvaWQgZW5kRWxlbWVudCgpOwotICAgICAgICB2b2lkIGVuZEVsZW1lbnRBdChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBvZmZzZXQpOworICAgICAgICB2b2lk
IGVuZEVsZW1lbnRBdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBvZmZz
ZXQpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmlkbAppbmRleCA2
ODY1MDNiZTg0Y2ViYTBmZWE3NDFiNzEzYWU3NGE0NzE3MWZkMDI0Li5jOTE4Y2U3YmZiN2Y5Nzkz
YWQ1NDQ2NGE4MDE4NDZlZDllYjAwYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwK
QEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBRWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHQUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2Us
CkBAIC0zNyw0ICszNyw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgdGFyZ2V0OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaWRsCmluZGV4IGI0YjQ0ZDJjMmMyOTdl
ZWVjNjNlODE2NTQ5MzFmZTMzZmE0NDM4MjUuLmEwNWM2NjM4NGJkMzVkNTMzNDMzNzE4YzEwMTZm
ODQ4M2FjZDlhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERl
ZkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1l
bnQuaWRsCkBAIC0xOSw4ICsxOSw4IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFtDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTXSBTVkdBbHRHbHlwaERlZkVsZW1lbnQgOiBTVkdF
bGVtZW50IHsKKyAgICBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UU10gaW50ZXJmYWNlIFNWR0Fs
dEdseXBoRGVmRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5pZGwKaW5kZXggODY1ZGJkZDhiNTNhY2Jh
MGIwNWZmNGM4YjllYWJmNGE5MzgwOGQ0OC4uMmM1YTYyM2U1NzM0NTFkN2QzMDkyMzZmYjc2ZDQ2
MmM4ZWQ3NWExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5pZGwK
QEAgLTI1LDEzICsyNSwxMyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCi0g
ICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMsCi0gICAgXSBTVkdBbHRHbHlwaEVsZW1l
bnQgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdVUklSZWZlcmVuY2UgeworICAgIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UUworICAgIF0gaW50ZXJmYWNlIFNWR0Fs
dEdseXBoRWxlbWVudCA6IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5j
ZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgZ2x5cGhSZWYKLSAgICAgICAgICAgIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZvcm1hdAotICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaEl0ZW1FbGVtZW50LmlkbAppbmRleCBhOTg0NDNjZTg5ZmMyOWJlZjc2MWIzMTg2Y2IyODFh
Y2MzZTc5MzU3Li5hZTVhMGFkODU0MjU5ODY4ODM0NDAxZjQ5M2U3MTVjNzY2ZmY2YTM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaWRsCkBAIC0xOSw4
ICsxOSw4IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1T
VkcmU1ZHX0ZPTlRTXSBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAg
W0NvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFNdIGludGVyZmFjZSBTVkdBbHRHbHlwaEl0ZW1FbGVt
ZW50IDogU1ZHRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5p
ZGwKaW5kZXggMjRhYjYyZjg5ZTJhZTExOGVkZGZjYTQ5YjcwNjJiYTI4N2U4OWQ1NC4uYWIzYmYx
MThhMDY3N2I4NDQ1NzMyYjMzMTQ5MmNjYjk5NjA2MjFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUu
aWRsCkBAIC0yMiw5ICsyMiw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5nbGUgeyAKKyAgICBd
IGludGVyZmFjZSBTVkdBbmdsZSB7IAogICAgICAgICAvLyBBbmdsZSBVbml0IFR5cGVzCiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfVU5LTk9XTiA9IDA7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19BTkdMRVRZUEVfVU5TUEVDSUZJRUQgPSAxOwpA
QCAtMzMsMTEgKzMzLDExIEBAIG1vZHVsZSBzdmcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTVkdfQU5HTEVUWVBFX0dSQUQgPSA0OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGZsb2F0IHZhbHVlOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVj
a2luZ10gZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgdmFsdWU7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHM7CiAKLSAgICAgICAgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWVBc1N0cmluZwot
ICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZUFzU3RyaW5nCisgICAg
ICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSB2b2lkIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMoaW4gdW5zaWduZWQgc2hvcnQgdW5p
dFR5cGUsIGluIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0cykKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwpAQCAtNDYsNCArNDYsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5pZGwKaW5kZXggMjI0MGZjMWVlNzA0ZjBl
ZTI1N2VlNmIyOGJiNTA1MWMzZWQ1NTU0Zi4uMTYzZTllNWY1NWM4NjRlYmVjNjY2NjlhYzVjYmMz
NTI5MjNjNjgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQgOiBTVkdBbmltYXRpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdBbmlt
YXRlQ29sb3JFbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaWRsCmluZGV4IDAxMzYxNWE2MmIy
MzRhY2Q1MGIyNzQ4MDcyZTczMzczMWM3ZTA3MDEuLmM3YmJiOGE1YmQ5Y2NlNDVkZjcxZjRhNmNi
MTNkOGQzNTkzNTIwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmlk
bApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZUVsZW1lbnQg
OiBTVkdBbmltYXRpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlRWxlbWVu
dCA6IFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsCmluZGV4IGJkMDliM2MzOGRk
NmY5YmUxZjNjYjYxNmUxNDAwZTRhZWVmZDM0MmEuLmVjY2ZlMjE3OTk5NTBkMDdhYzE2ZWYxOWU2
ODI0ZTlmNGZhYmM3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1h
dGVNb3Rpb25FbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2Ug
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQgOiBTVkdBbmltYXRpb25FbGVtZW50IHsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudC5pZGwKaW5kZXggNzYwNTNhYzYwMGE5OTM4NzNlYzBmM2Y1MzRkY2Q0ZTMxYzk2ZDcxMS4u
YWJhMTk5YTQ5ZDc1MTQ5NDFmNGMyMDgzMGU3MzJhNGRiMDQ4MjY4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRsCkBAIC0yNSw5ICsy
NSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgOiBTVkdB
bmltYXRpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudCA6IFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwKaW5kZXggYmRlZmY2MjdkMTIwZjFiODc2MDcyNWFh
MDA3YjA0MDE1MzI4MzliZi4uMTk0MDk5YmU3MjUxYjY1NmQxNGVlMzRlZDE1YjRiMzA1NzhiN2Y1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbApAQCAtMjUsMTEgKzI1
LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRBbmdsZSB7CisgICAgXSBpbnRlcmZh
Y2UgU1ZHQW5pbWF0ZWRBbmdsZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmds
ZSBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5nbGUgYW5pbVZhbDsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkQm9vbGVhbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlk
bAppbmRleCBhNzI1MmQ2MjNhNmUyZmYxMDI3Yzg0Mjg5NmViMWYwY2VmYzQwYjcxLi5lNDhlOTll
YzBiNzZmOTdlNWRkNDVjNTFiNWQ3Mjg0NzZjNjgyYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRCb29sZWFuLmlkbApAQCAtMjUsMTIgKzI1LDEyIEBACiAKIG1vZHVsZSBzdmcg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAg
IF0gU1ZHQW5pbWF0ZWRCb29sZWFuIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGJvb2xlYW4gYmFzZVZhbAotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkQm9vbGVhbiB7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBib29sZWFuIGJhc2VWYWwKKyAgICAgICAgICAg
IHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBhbmltVmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5pZGwKaW5kZXggMGQ0M2FiZGFhNmMzOGY3ZjBlNGEzODM1YTNi
M2U2MGY4OGJiMTQzMS4uNDFkYWRhMjQ3MzRlYjZiZmU3Njc1NjZhMTAwNzM1YWJjZTdiYTQ1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1lcmF0aW9uLmlkbApAQCAt
MjUsMTIgKzI1LDEyIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSB1bnNpZ25lZCBzaG9ydCBi
YXNlVmFsCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgXSBp
bnRlcmZhY2UgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBiYXNlVmFsCisgICAgICAgICAgICBzZXRy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5pZGwKaW5kZXggYThjMDdlYTE4NGVhMjhhMzhkYWMyMDM1YTQyNmQ1ODgy
MTkxNGFhYy4uYzhhYTA5NTU3MDI4MzViZWFhYzMwMDZlOWNlYWJkOTRkY2JiODcwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGwKQEAgLTI1LDEyICsyNSwxMiBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkSW50ZWdlciB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBsb25nIGJhc2VWYWwKLSAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlZEludGVnZXIg
eworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgbG9uZyBiYXNlVmFsCisg
ICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgYW5pbVZhbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZExlbmd0aC5pZGwKaW5kZXggMWJiNzMxN2I0OWYwMzdiM2VjYTEwNGMyNTdjNTdh
MjkzYzI1YWJjMi4uZTk0ZjI2MmU3M2M2OWQxNDVhYjExYzc0ZDdmODYxMjk0M2RjNTM5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaWRsCkBAIC0yNSwxMSArMjUsMTEg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZExlbmd0aCB7CisgICAgXSBpbnRlcmZhY2Ug
U1ZHQW5pbWF0ZWRMZW5ndGggewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3Ro
IGJhc2VWYWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYW5pbVZhbDsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0LmlkbAppbmRleCBkMDJjOTk4YzI4YmQ4NTIxYzJkNTRiOTE4MmZhN2U3NTc5NTBmZDQzLi4z
NTY0MWY2ZGZhM2NmODAwNjQ4YTMxMzEzNmZjZDkwOWIxMGM5ZjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IHsKKyAgICBdIGludGVyZmFjZSBT
VkdBbmltYXRlZExlbmd0aExpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVu
Z3RoTGlzdCBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlz
dCBhbmltVmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
TnVtYmVyLmlkbAppbmRleCBlZDBjMzk1M2VmMjBiMzQ3ZjY3MDNhMzhjMjAwZDM5YjRlNGFlMDI4
Li5kMWRmMzVkNDJhOTgwOGRjNmIwZDEwNzUwMjIwZWY0ZWYyZDhiNTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5pZGwKQEAgLTI2LDEyICsyNiwxMiBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcKLSAgICBdIFNWR0FuaW1hdGVkTnVtYmVyIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IGJhc2VWYWwKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlciB7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCBiYXNlVmFsCisgICAgICAgICAg
ICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZs
b2F0IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5pZGwKaW5kZXggYjY0NDkzOGMwMzcyNWQ1YmE3YmRlODJjZTdiOTI2
NTAzYzFmNTM5My4uZWRiOWVhNjk3MWZhYmU3MWViZDg0MWZjYTJjNmU2MmMwNDEyOGQ0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5pZGwKQEAgLTI1LDEx
ICsyNSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCB7CisgICAg
XSBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR051bWJlckxpc3QgYmFzZVZhbDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR051bWJlckxpc3QgYW5pbVZhbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAppbmRleCBl
NWIxZThiNGNiNTJkMDg3YzgyNjM0MGVlZTRkYmMwMDRlYjEwMzcxLi4wNDU1YWZlYjVjYzUxNzli
MWE5MGQ0OTk0NDk4ZWNjNTcwZTljMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbApAQCAtMjUsMTEgKzI1LDExIEBA
CiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsKKyAgICBd
IGludGVyZmFjZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBiYXNlVmFsOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyBhbmltVmFsOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaWRsCmluZGV4IGQ1ODk3
MzgyYmNiMTRiZDc3MmJlY2I0NDg3ZTk2ZjMzNmU2OWQ3ZjYuLjYzYWJlODg3ZGI2NzM2ODRhZjEw
ZTgxZjkzMGViNTQyODcxYWEyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFJlY3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3Qu
aWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZFJlY3Qg
eworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkUmVjdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdSZWN0IGJhc2VWYWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdS
ZWN0IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRTdHJpbmcuaWRsCmluZGV4IDc4MDRkZmFiNDYyOWFlODMxMTkzMWViZGQ4NGNhZDljOTI3NTFl
ZWIuLmNlMzUxNzJiZmExNDE2OWU0ODkyODhkZDUxMWUxNTY5YTkwNTMwNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmlkbApAQCAtMjUsMTIgKzI1LDEyIEBACiAKIG1v
ZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRTdHJpbmcgeworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1h
dGVkU3RyaW5nIHsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBiYXNlVmFsCi0gICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhbmlt
VmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFRyYW5zZm9ybUxpc3QuaWRsCmluZGV4IGI2YWE4NGUyZjFmMmEwOTE5MzExMTM3ZTgzOGViMGQ2
MDc3YjRmODguLjk4MmRmMzQ5ZTExYjY5ZmYyMDBjYWEzZWNkYzM5NTYzNDAxNjlmNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaWRsCkBAIC0y
NSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qg
eworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdUcmFuc2Zvcm1MaXN0IGJhc2VWYWw7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdUcmFuc2Zvcm1MaXN0IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmlkbAppbmRleCA1MzI2MDNj
MWJmNjI3MDMwNjVkZDViZjA0Y2JjYjkzZDVmNTE4NmJkLi4wZjA4Yzc5NzlkYjNlMDk0YWUwNmIz
YzZkMzc1YzI2M2Q5MGQ3OTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBPbWl0Q29u
c3RydWN0b3IKLSAgICBdIFNWR0FuaW1hdGlvbkVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0g
aW50ZXJmYWNlIFNWR0FuaW1hdGlvbkVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRWxlbWVudFRpbWVDb250cm9sIHsKQEAgLTQwLDQgKzQwLDQg
QEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaWRsCmluZGV4IDUw
Yjg0YmQ3Yjk5MzQ4NWExMTNmYjkxMzc4YjI3MTQwYTFkY2E4ZmEuLmRmMWVmOTNlMmUxMTk2YWI2
MWFiNjg2NWZmMmFhODE3MjJkMjQ3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDaXJjbGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5pZGwKQEAgLTI2LDkgKzI2LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdDaXJjbGVFbGVt
ZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdDaXJjbGVFbGVtZW50IDogU1ZH
RWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTM5LDQg
KzM5LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCByOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuaWRsCmluZGV4IDVkMzQ2ZjQxOTVkOWQyNGQ3MGJlMjM2NzEzZmQ4ZmNkN2Iz
Y2NlNjMuLjkwNjE0MjhhNjFlYTRjMzhhNjUwNDc0ODBiYzhkMTAyYTA5Y2EwZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHQ2xpcFBhdGhFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGlu
dGVyZmFjZSBTVkdDbGlwUGF0aEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzgsNCArMzgsNCBAQCBtb2R1bGUgc3Zn
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gY2xp
cFBhdGhVbml0czsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NvbG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5pZGwKaW5kZXgg
ODg3YWQ4NGM3MGU1YWZhNTc4YjkyNDdkZDkyZmVmN2FkYzc2Zjc5MC4uNjc5MjI1MjU2MGY5NWY0
YzY1MDhjMjg0M2IzZDA0NTFhMDY2NWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NvbG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3IuaWRsCkBAIC0y
MSw5ICsyMSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQ29sb3IgOiBDU1NWYWx1ZSB7CisgICAg
XSBpbnRlcmZhY2UgU1ZHQ29sb3IgOiBDU1NWYWx1ZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19DT0xPUlRZUEVfVU5LTk9XTiA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19DT0xPUlRZUEVfUkdCQ09MT1IgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMjsKQEAgLTQzLDQgKzQz
LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdF
eGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbAppbmRleCAxZWRk
NWNmYjIwNDYyZTViOTViNGE3OWM0OWY0NGUyZTE0ZDE2ZDM5Li5iYzU3Nzc4YmY1ODhlNGEyYmEw
ZDllYWE2ZWExMDE1YjcwMjFiYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGwKQEAgLTI1LDEwICsy
NSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcmRklMVEVSUywKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwot
ICAgIF0gU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgOiBTVkdFbGVtZW50IHsK
KyAgICBdIGludGVyZmFjZSBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCA6IFNW
R0VsZW1lbnQgewogICAgICAgICAvLyBDb21wb25lbnQgVHJhbnNmZXIgVHlwZXMKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9VTktOT1dO
ICA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5T
RkVSX1RZUEVfSURFTlRJVFkgPSAxOwpAQCAtNDYsNCArNDYsNCBAQCBtb2R1bGUgc3ZnIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyICAgICAgb2Zmc2V0Owog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5pZGwKaW5k
ZXggMmM4YjVmNWQxYzE5YTg1NjY3MjE5ZWUzY2Q0ZGE1NGU1YzI5MDYyYi4uYjMyNTM5MDY3NzIy
M2VhOTZiNGVmMzkyNmU4YzY0NjMxY2ZkYzQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0N1cnNvckVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0N1cnNv
ckVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0N1cnNvckVsZW1lbnQg
OiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsK
QEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZExlbmd0aCB5OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0RlZnNFbGVtZW50LmlkbAppbmRleCA4Y2IyYjA4NjNlMGE5ODgyODAzOTc4ZTdkZTNkM2FmODBl
MmYxNjVlLi4zN2IxZWU1OWEzYzcxNDdiMTczYjY0ZjM2MzE1Y2U4NzZmZDU4YzkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxl
IHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZH
Ci0gICAgXSBTVkdEZWZzRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZH
RGVmc0VsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LApAQCAtMzUsNCArMzUsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUcmFuc2Zvcm1hYmxlIHsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5pZGwKaW5kZXggYjdiMzNjMjBhM2Rm
OTk4NzY1ZjBlZmQxNmZlZDdkYmMyZDhiY2NlNy4uN2VkMWU2OTVmNTUwZWFjYzBiOTg5ZjA3Y2Ex
Nzc5OWY1YTUyOTViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaWRsCkBAIC0y
NSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdEZXNjRWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRGVzY0VsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdTdHls
YWJsZSB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaWRsCmluZGV4
IDJmOWFiZmMyZWRiODgxZDZiMTlkMzYxNzgyNTU1NzNlOGUyMDYzNjEuLmUxZWI1MWYzODgwMzAz
MWRjODcyMmU5YzY5YWY4MmQ5YTM1N2E4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdEb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50Lmlk
bApAQCAtMjEsMTUgKzIxLDE1IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgVjhDdXN0b21Ub0pTT2Jq
ZWN0Ci0gICAgXSBTVkdEb2N1bWVudCA6IERvY3VtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdE
b2N1bWVudCA6IERvY3VtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1NWR0Vs
ZW1lbnQgICAgICAgIHJvb3RFbGVtZW50OwogCiAgICAgICAgIC8vIE92ZXJ3cml0ZSB0aGUgb25l
IGluIGV2ZW50czo6RG9jdW1lbnRFdmVudAotICAgICAgICBFdmVudCBjcmVhdGVFdmVudChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZXZlbnRUeXBlKQorICAgICAg
ICBFdmVudCBjcmVhdGVFdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcgZXZlbnRUeXBlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmlkbAppbmRleCA0MWFlOWMyNGRiMjkx
NGEwOGQzM2YyMzU3Yjc4MDA5YTIzOGJiM2NlLi41NDczOTgzYTY4MmVhN2E4ZjQwODY4YzQ2Yjg4
YzY4N2Y0MjFmODEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaWRsCkBAIC0yMiwxNSArMjIs
MTUgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAg
ICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gU1ZHRWxlbWVudCA6IEVsZW1lbnQgewotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBpZDsKLSAgICAgICAgYXR0cmlidXRl
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgeG1sYmFzZSBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgXSBpbnRlcmZhY2UgU1ZHRWxlbWVudCA6IEVsZW1lbnQgewor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBpZDsKKyAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgeG1sYmFzZSBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1NWR0VsZW1lbnQg
b3duZXJTVkdFbGVtZW50OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudCB2
aWV3cG9ydEVsZW1lbnQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnRJbnN0YW5jZS5pZGwKaW5kZXggOWM3MTc1YzdiZmUxMDIxZjIzZmQ2N2Q2NThlMmM3NzIx
NWQyZmEzZS4uZjFmZWQzYTVjYjJhZDczMjg1M2Q5Mjk3ZTQwMDZmODMxZGYwYjA4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5pZGwKQEAgLTI2LDExICsyNiwxMSBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIFNWR0VsZW1lbnRJbnN0YW5jZQorICAgIF0gaW50
ZXJmYWNlIFNWR0VsZW1lbnRJbnN0YW5jZQogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIDogT2JqZWN0LCBFdmVudFRhcmdl
dAogI2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCkBAIC00Niw1NSAr
NDYsNTUgQEAgbW9kdWxlIHN2ZyB7CiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQKICNpZiAhZGVm
aW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0gICAg
ICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmFib3J0OwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25ibHVyOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNsaWNrOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jb250ZXh0
bWVudTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
ZGJsY2xpY2s7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25mb2N1czsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uaW5wdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbmtleWRvd247Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbmtleXByZXNzOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25rZXl1cDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9ubG9hZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9ubW91c2Vkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3V0OwotICAgICAgICBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW92ZXI7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmJlZm9yZWN1dDsKLSAg
ICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uY3V0OwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjb3B5
OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jb3B5
OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25iZWZv
cmVwYXN0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVy
IG9ucGFzdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmRyYWdlbnRlcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExp
c3RlbmVyIG9uZHJhZ292ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbmRyYWdsZWF2ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9uZHJvcDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9uZHJhZ3N0YXJ0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnZW5kOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25yZXNldDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RF
bnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ucmVzaXplOwotICAgICAgICBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zY3JvbGw7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlYXJjaDsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKLSAgICAgICAg
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc3VibWl0OwotICAgICAg
ICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CisgICAg
ICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0OworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25ibHVyOworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsaWNrOwor
ICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb250ZXh0
bWVudTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
ZGJsY2xpY2s7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmVycm9yOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25mb2N1czsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uaW5wdXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmtleWRvd247CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmtleXByZXNzOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25rZXl1cDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ubG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ubW91c2Vkb3duOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW1vdmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNlb3V0OworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW92ZXI7CisgICAgICAgIFtOb3RFbnVt
ZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNldXA7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNld2hlZWw7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJlZm9yZWN1dDsKKyAg
ICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY3V0OworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjb3B5
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb3B5
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZv
cmVwYXN0ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ucGFzdGU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmRyYWdlbnRlcjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9uZHJhZ292ZXI7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbmRyYWdsZWF2ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uZHJvcDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uZHJhZ3N0YXJ0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnZW5kOworICAgICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZXNldDsKKyAgICAgICAgW05vdEVudW1lcmFibGVd
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVzaXplOworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zY3JvbGw7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlYXJjaDsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2VsZWN0OworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc3VibWl0OworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CiAKICAg
ICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVz
ZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5n
IHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5l
ciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlz
cGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2Vw
dGlvbik7CiAjZW5kaWYgLyogZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgKi8KICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFu
Y2VMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0Lmlk
bAppbmRleCA5NDI5ZGE3MTkzMjBiMDg0MTA5ZTIyZjA1M2UxODVhYmUwZWU4MDg4Li5hNzA5ZWIz
NTMzNTlkNDllNzcwZmFiYjNjYzYzODBkMjk4YmE3MWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsCkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwog
CiBtb2R1bGUgc3ZnIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9U1ZHCi0gICAgXSBTVkdFbGVtZW50SW5zdGFuY2VMaXN0IHsKKyAgICBdIGludGVyZmFjZSBT
VkdFbGVtZW50SW5zdGFuY2VMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOwogCi0gICAgICAgIFNWR0VsZW1lbnRJbnN0YW5jZSBpdGVtKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAg
ICBTVkdFbGVtZW50SW5zdGFuY2UgaXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuaWRsCmluZGV4IDdjMjkxZGRjY2NlMmM2Y2YwNDUwNThhZGM1Mjll
OTM0NzU0MjNkMWUuLjFkM2RhM2E4MjhmYmU2MWM3ZTE2MGZlZjYwM2YxYTZlOGMyNGM4ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcKLSAgICBdIFNWR0VsbGlwc2VFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBd
IGludGVyZmFjZSBTVkdFbGxpcHNlRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zOSw0ICszOSw0IEBAIG1vZHVsZSBzdmcg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcnk7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24u
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4Y2VwdGlvbi5pZGwKaW5kZXggNTcyNTVjMzYx
NDA1MDkxMzc0MmFmZTRjZGVkNzgwODlhYzVlODdiMC4uNTJiMjhhMmI2MDhmNTYyZGUwNmJmYWZj
ZTg3ZTY0MGIwMmUzZDE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4Y2Vw
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4Y2VwdGlvbi5pZGwKQEAgLTIw
LDEwICsyMCwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGV4Y2VwdGlvbiBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAg
ICBdIFNWR0V4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRpb24gU1ZHRXhjZXB0aW9uIHsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICBjb2RlOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwpAQCAtMzksNCArMzksNCBA
QCBtb2R1bGUgc3ZnIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0lOVkFMSURf
VkFMVUVfRVJSID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BVFJJWF9O
T1RfSU5WRVJUQUJMRSA9IDI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGwKaW5kZXggYTY1MGM4ZjhkYTM2
NGNmYzkwZjJkYjAyMjBlMzU1M2Y1NmE4NTdiYi4uZGI4ZjUxMmU5ZjdkNjU4M2E5ODZlNjUzN2Nh
ZWFiMTQ0MzJkOGJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSBzdmcg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAg
ICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBTdXBwcmVzc1RvSlNPYmplY3QsCiAgICAgICAg
IE9taXRDb25zdHJ1Y3RvcgotICAgIF0gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7IAor
ICAgIF0gaW50ZXJmYWNlIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgeyAKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkQm9vbGVhbiBleHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVCbGVuZEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVt
ZW50LmlkbAppbmRleCAyODgwNTljNDExNjJmMzM1ZWE1ODY3YThiNGVjNjJjOTI2MjE2YjJkLi5k
MjA3ODQ2M2QxNmJiNGNjOWVlOGU2YzRiNzY4ODM0ZGQzNmEzOGUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUg
c3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcm
RklMVEVSUywKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHRkVCbGVuZEVs
ZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFQmxlbmRFbGVtZW50IDog
U1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgLy8gQmxlbmQgTW9kZSBUeXBlcwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX1VOS05PV04gID0gMDsKQEAg
LTQzLDQgKzQzLDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZEVudW1lcmF0aW9uIG1vZGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsCmluZGV4IDZiMTgwNjFlMmIx
OWE4MDVlY2VlYjIzODBmOGEwZGI1ODg4NDk0ZGYuLmEzMzZiZDAyYzI3OGE0NzhhMzA0YmZlYTk1
MzIzZjg3YzM0MmQ0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTLAogICAg
ICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBTVkdGRUNvbG9yTWF0cml4RWxlbWVudCA6
IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQgOiBT
VkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogICAgICAgICAvLyBDb2xvciBNYXRyaXggVHlwZXMK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9VTktO
T1dOICAgICAgICAgID0gMDsKQEAgLTQyLDQgKzQyLDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlckxpc3QgIHZhbHVlczsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRy
YW5zZmVyRWxlbWVudC5pZGwKaW5kZXggYmY2OTkxNWJmMTI2ZTE1Y2ViNTUyYjdmOGU5MmNhYjI2
NjVjYWZhZi4uNTBhMDZhNjhjMzBlNTlkNzQ3MTBjODM1ZGUwMTkwNTI4OWQ3MWRiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQu
aWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkU3RyaW5nIGluMTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmlkbAppbmRleCA3Njg0MGU1N2ZiZTFjOGUxYTdk
MDIwNTVhNGQxMzZmNzA4Y2Y2M2ZmLi40MTUyODgwMTcwNmIyMmUwN2M3NGQ3OTg3MTdhODMyYTE1
ZjBhYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50Lmlk
bApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTLAogICAgICAgICBEb05vdENo
ZWNrQ29uc3RhbnRzCi0gICAgXSBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQgOiBTVkdFbGVtZW50LAor
ICAgIF0gaW50ZXJmYWNlIFNWR0ZFQ29tcG9zaXRlRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMgewogICAgICAgICAvLyBDb21wb3NpdGUgT3BlcmF0b3JzCiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9VTktOT1dOICAgID0gMDsKQEAg
LTQ4LDQgKzQ4LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZE51bWJlciAgICAgIGs0OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbAppbmRleCBlNzgyMTlk
OGE1NTU1MzhiMTI5NWQ1Y2M4MjkwMzAwOGZhMGMzNDAyLi5hNzg1ZGU5YzhlZWQwYmJjMzExZTBh
MjQxNTg0MGZiYzZmYjVjODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3Zn
IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklM
VEVSUywKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgLy8g
RWRnZSBNb2RlIFZhbHVlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1P
REVfVU5LTk9XTiAgID0gMDsKQEAgLTUwLDQgKzUwLDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEJvb2xlYW4gICAgIHByZXNlcnZlQWxwaGE7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC5pZGwKaW5kZXggZjlmYWMxOTU3OGEyM2U2MWYxMmNjYTM1ZDk2OWRk
ZGJhZWZhYzAzMC4uMGI2OWVlNWM0MmE1MTI3OGRlMTc3ZDA0MjAyMzdhYjgxOTg5NTQzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5p
ZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkU3RyaW5nIGluMTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVt
YmVyIHN1cmZhY2VTY2FsZTsKQEAgLTM2LDQgKzM2LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWTsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50LmlkbAppbmRleCAwNzI5NTg2ZGFlNjYzYTVkOGY0ZjhmYmJlMWQwOTBj
NjkyZTZhNTM3Li4yNGMyMjIxODk3YmQ0Mjk1ZDM5ZGZjZTgyZDY2NjBiMWRkNWE0ZjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Lmlk
bApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTLAogICAgICAgICBEb05vdENo
ZWNrQ29uc3RhbnRzCi0gICAgXSBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQgOiBTVkdFbGVt
ZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCA6IFNWR0Vs
ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogICAgICAgICAvLyBDaGFubmVsIFNlbGVjdG9ycwog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9VTktOT1dOID0gMDsKQEAg
LTQ0LDQgKzQ0LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZEVudW1lcmF0aW9uIHlDaGFubmVsU2VsZWN0b3I7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5pZGwKaW5k
ZXggZDhmZjZmZTVkOGIyYmE2MjM1ZGU0NDE3NDA1ZGVjZmE3MDU5ZWIyYS4uNjU0NzMyYjdlZTY4
YjczMjNmODMxNDBhOGQyODMxZTUyM2RhZjlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcmRklMVEVSUwotICAgIF0gU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7
CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBhemltdXRoOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZWxldmF0aW9uOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5pZGwKaW5kZXggM2M3ZDdjZTZiMTNkY2M4N2VhMTllZDA3YTRkZjA4OTg0Nzg1OWU2Zi4u
Y2NlMGRjZjBkZjJjNDA4ZmZiODVhZjU2YTU3ZDhjOGI0YzVkZjcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmlkbApAQCAtMTksOSArMTksOSBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVEcm9wU2hhZG93RWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRkVEcm9wU2hhZG93RWxlbWVudCA6IFNWR0VsZW1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7IAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZHg7CkBAIC0yOSw4ICsyOSw4IEBAIG1vZHVsZSBz
dmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3RkRGV2
aWF0aW9uWDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN0
ZERldmlhdGlvblk7CiAKLSAgICAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc3RkRGV2aWF0aW9uWCwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN0
ZERldmlhdGlvblkpOworICAgICAgICB2b2lkIHNldFN0ZERldmlhdGlvbihbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzdGREZXZpYXRpb25YLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3Rk
RGV2aWF0aW9uWSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUZsb29kRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9v
ZEVsZW1lbnQuaWRsCmluZGV4IDUzY2UwNDdiYmRjYzE2Y2M0OTQ2MmJkYmZkNjlkNmU1Y2E4YWE3
MTcuLmZkMjVmMzA0MzMxMTFmMDE1OGJkNGRiNmYzMGE4MTgwMzAyMTBlNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcmRklMVEVSUwotICAgIF0gU1ZHRkVGbG9vZEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0g
aW50ZXJmYWNlIFNWR0ZFRmxvb2RFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMgewogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUZ1bmNBRWxlbWVudC5pZGwKaW5kZXggY2EzZmExMTFhMjRhYWRlYjYyYWI4Y2QzYmU0YTQ1YmQz
M2EyMWZjNS4uNDNhM2YxOWIzYTc5OWRlOWJhNmQwZmZkYTMzZjkzODY2ZWUwOThiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdGRUZ1bmNBRWxlbWVudCA6IFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGRUZ1bmNBRWxlbWVu
dCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5pZGwKaW5kZXggMDU4MWIzOWFm
MDY4M2Y3NDlkN2VhNmYwMzEzMWUzODRhZjFiMmE1MC4uMzJmYWZiY2Y4ZTE1MTYwNDQ5YmE0MTdm
MGM4NGJhOWI3ZWUyODVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0JFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQu
aWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdGRUZ1bmNC
RWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKKyAgICBdIGlu
dGVyZmFjZSBTVkdGRUZ1bmNCRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxl
bWVudC5pZGwKaW5kZXggYWIwOTE2MTIwY2RmYWQyZjg0ZjdjMjlmZTNkM2Y5ZjllNWI0ZDQ2NS4u
M2Q3YzIzYTg0ODA2MzFiYTY5ZDNlMTliNGE5YTA0YWI1NzAxNWJmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBz
dmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZG
SUxURVJTCi0gICAgXSBTVkdGRUZ1bmNHRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGRUZ1bmNHRWxlbWVudCA6IFNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5pZGwKaW5kZXggNTY3OGY5OWRiMDEyZTM3MGUx
MjYxYTY2Mjk0ZDRiOGNlY2MyYzYwMi4uYzJjOTE3NDgxODk2ODExZTdiMDIwZTg2MWExMWQwNGYx
ZDM5ZGE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaWRsCkBAIC0y
NSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdGRUZ1bmNSRWxlbWVudCA6
IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBT
VkdGRUZ1bmNSRWxlbWVudCA6IFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IHsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmlkbAppbmRleCAyNTg1OGY4MGM3ZTc4OTcyZGY2Y2VkZTgwYTdiYTkwNTFjNjVk
NzVhLi5jMGQ5OTZlODUxNTYwNzJjNGRkZmFjYjhhNDY3ZTAzMTJjMDE4OTQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmlkbApAQCAtMjUsMTYg
KzI1LDE2IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3RkRGV2aWF0aW9uWDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN0ZERldmlhdGlv
blk7CiAKLSAgICAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgc3RkRGV2aWF0aW9uWCwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN0ZERldmlhdGlv
blkpOworICAgICAgICB2b2lkIHNldFN0ZERldmlhdGlvbihbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCBzdGREZXZpYXRpb25YLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3RkRGV2aWF0aW9u
WSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aWRsCmluZGV4IDlhNmMwZTg1ZDNlYjE3Nzg3ZWU2ZTM2MDVhZDcxYTkxYmUwODJlM2UuLjU0MzNi
NWJkNzJkZjZjZGI0OGIwNDJmZmRkNTNjZTJiMTY2YmRmYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVS
UwotICAgIF0gU1ZHRkVJbWFnZUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNl
IFNWR0ZFSW1hZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNSw0
ICszNSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaWRsCmluZGV4IDE4Y2Y5
MmMzY2M5MmVmMGFiZjE0NzcyYjFhZTBkZjllZmY5MTE3MGMuLjljNTY4OTZkNGYyY2MwNGZlM2Rj
YzkyNjUwOTUyZGIyYTBmMGY0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVt
ZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdG
RU1lcmdlRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRkVNZXJnZUVs
ZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVu
dC5pZGwKaW5kZXggZjZiMWQyN2Q3MzU2MjkwMGRjZmNlN2EwMzkyODhmZGMyN2RiY2FmOC4uMDEz
MzY0ZDhmZWM4NzgxNTVkNTcwMzdhNzhmZmJlNWExYmIwMzdkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVNZXJnZU5vZGVFbGVtZW50IDogU1ZHRWxlbWVudCB7
CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVNZXJnZU5vZGVFbGVtZW50IDogU1ZHRWxlbWVudCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50Lmlk
bAppbmRleCAyNGMwYTQ3YTlkMGIxNjBlZjk2ZWM3MTI1ZGY4MjgxZDJjOTU2NjY0Li40NWI2YmI4
NjgxMDUxYzRiNDE3MDMwNmVmMzY3OGVjNThhMDhkYWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHJkZJTFRFUlMsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFTW9ycGhv
bG9neUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAgICAgICAgIC8vIE1vcnBo
b2xvZ3kgT3BlcmF0b3JzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NT1JQSE9M
T0dZX09QRVJBVE9SX1VOS05PV04gID0gMDsKQEAgLTQwLDggKzQwLDggQEAgbW9kdWxlIHN2ZyB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciAgICAgIHJhZGl1
c1g7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciAgICAgIHJh
ZGl1c1k7CiAKLSAgICAgICAgdm9pZCBzZXRSYWRpdXMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgcmFkaXVzWCwgCi0gICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHJhZGl1c1kpOworICAgICAgICB2b2lkIHNl
dFJhZGl1cyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCByYWRpdXNYLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgcmFkaXVzWSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5pZGwKaW5kZXggOTVmOTU2NWMyYTYwYjNiNzlmNzBhODAyNmNjOWNkZDc2
YmRlNDg1Zi4uOWMyZWU0ZWFiYWZjMGZlMTAwZTAzZjQ5YTJhYmRhNjJlZmFiOWZiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5pZGwKQEAgLTI1LDEzICsyNSwxMyBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVPZmZzZXRFbGVtZW50IDogU1ZHRWxlbWVu
dCwKKyAgICBdIGludGVyZmFjZSBTVkdGRU9mZnNldEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWROdW1iZXIgZHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZE51bWJlciBkeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
UG9pbnRMaWdodEVsZW1lbnQuaWRsCmluZGV4IGI2ZGQwZmE4Mjg1NWMzNWYyMGE5MGVhODg2YWIx
MWM3ZTczNDdkMTguLjdmZTBiZDkyMzgzZDI5Zjg0Mjk3OWVjOGQ0NjkwNThhYTVkZTllZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5pZGwKQEAgLTI1
LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVQb2ludExpZ2h0RWxl
bWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZFUG9pbnRMaWdodEVsZW1l
bnQgOiBTVkdFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVk
TnVtYmVyIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB5
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgejsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuaWRsCmluZGV4IDNkYzRlMzQ1ODUwOWUzNDI0ZWQ0ZjExNTBlZGI1YjJiMjkz
OWMyYjAuLmUzNDY3ZGVjYjgwZDhiNzRlMDc5YmVmNWIzOThkYWZkZmVjMjE4MjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5pZGwK
QEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkU3RyaW5nIGluMTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVt
YmVyIHN1cmZhY2VTY2FsZTsKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzcGVjdWxhckV4cG9uZW50Owog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQuaWRsCmluZGV4IDM2YzEyZWI1NDgxMjYzNjI4ZWY4NWFkOTM1N2UwMzY3M2FiMGI2MzEuLjdm
NWMyNTY5YWI5Yjg5YjkwN2IwZDQ5YTA5Mzc3NjFmNTk4MDg4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1v
ZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PVNWRyZGSUxURVJTCi0gICAgXSBTVkdGRVNwb3RMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsK
KyAgICBdIGludGVyZmFjZSBTVkdGRVNwb3RMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHg7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB5OwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgejsKQEAgLTM4LDQgKzM4LDQgQEAgbW9kdWxlIHN2
ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBsaW1pdGlu
Z0NvbmVBbmdsZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuaWRsCmluZGV4IDZiODUzZTVkZTA2NGU3YzkxNTc0ZTA4NDFlOWRlMGNhNWU2ODBmMzUu
LjgwMjQwMGQxMGMwZTE2MDU1MTBmNDIwZGQ2MDFlNmRhNmQ4MzNmNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUg
c3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcm
RklMVEVSUwotICAgIF0gU1ZHRkVUaWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRl
cmZhY2UgU1ZHRkVUaWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJp
bmcgaW4xOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5pZGwKaW5kZXggMDA2MGZiZjkyNzNjMTViNDY5ZTQzYTA1MTViYTc3OTQ0
NjEyNjM3My4uZDQ4OGZmZGRmMDI0NGRhZmY1ZThjNDBkNDZmYmMzZjdjMmZmMTZkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmlkbApAQCAtMjUsMTAg
KzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRz
Ci0gICAgXSBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVy
ZmFjZSBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewog
ICAgICAgICAvLyBUdXJidWxlbmNlIFR5cGVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNWR19UVVJCVUxFTkNFX1RZUEVfVU5LTk9XTiAgICAgID0gMDsKQEAgLTQ4LDQgKzQ4LDQgQEAg
bW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1l
cmF0aW9uIHR5cGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmlkbAppbmRleCBmZjJmNDk2Nzk3MWMwMTM4ZDI2MWNmMjc3M2FjY2ViMjdkZDZiZjc2
Li4wYjJkMDc1MzE5NzA3MjFlYWIxZjBiMzdjMDJmZjY3MTIyYTdkZmNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBz
dmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZG
SUxURVJTCi0gICAgXSBTVkdGaWx0ZXJFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVy
ZmFjZSBTVkdGaWx0ZXJFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC00Myw4ICs0Myw4IEBAIG1vZHVsZSBzdmcgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyICAgICBmaWx0ZXJS
ZXNYOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyICAgICBm
aWx0ZXJSZXNZOwogCi0gICAgICAgIHZvaWQgc2V0RmlsdGVyUmVzKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgZmlsdGVyUmVzWCwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxv
bmcgZmlsdGVyUmVzWSk7CisgICAgICAgIHZvaWQgc2V0RmlsdGVyUmVzKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgZmlsdGVyUmVzWCwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVk
IGxvbmcgZmlsdGVyUmVzWSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRsIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwK
aW5kZXggNGIxZDNmYjQ4MzdlMDkwZjA2M2IyYjczMjEyOTdiOGY1Y2UyYWNhZC4uNDY5Y2I1MjQ5
NjViNDE0ZTBlYWU0MTdlMDZmN2RjOGM5NzcyNDBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5pZGwK
QEAgLTI2LDEwICsyNiwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIE9iakNQcm90b2NvbAotICAg
IF0gU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIDogU1ZHU3R5bGFibGUgewor
ICAgIF0gaW50ZXJmYWNlIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyA6IFNW
R1N0eWxhYmxlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3Ro
IHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5OwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggd2lkdGg7CkBAIC0zNyw0
ICszNyw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRTdHJpbmcgcmVzdWx0OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aXRUb1ZpZXdCb3guaWRsCmluZGV4IGE1N2E4ZGRmMWQ4MjQ4YTQ0ODdlZGQ1MGU5Y2MwOWI3NWQ4
ZTJmZmIuLjJiNmU2MDJiNmY4MjZjN2ViNzg4NDE0YTdmZDY3ZjE5Zjc4NWNiYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaWRsCkBAIC0yNiwxNCArMjYsMTQgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIFN1cHByZXNzVG9KU09iamVjdCwK
ICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBTVkdGaXRUb1ZpZXdCb3ggeworICAgIF0g
aW50ZXJmYWNlIFNWR0ZpdFRvVmlld0JveCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZFJlY3QgICAgICAgICAgICAgICAgdmlld0JveDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJh
dGlvOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbApp
bmRleCAwYjk1ZDBmMjU3NzIyZTQyMGU2ODEzODMzNmI1YzEyOWMzZjJlMjE2Li4xYmJjNDA2MzJl
NGRjYzA4MTJmNDZjMGFmZTE2M2E5YjJhNGMzZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UUwotICAgIF0g
U1ZHRm9udEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGb250RWxl
bWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZUVsZW1lbnQuaWRsCmluZGV4IDFlZWQwZTI3ZGJkNGE0ODkzMmE0NjM2NTQ4OGIx
Nzc5ZTc4NzI5OGEuLjUwZDFkODVjOTIxODk0NWZkZWQ3ODdlMjcxNWYxMTU0NTAwZjVmMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR0ZvbnRGYWNlRWxlbWVudCA6IFNWR0Vs
ZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZvbnRGYWNlRWxlbWVudCA6IFNWR0VsZW1lbnQg
ewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VGb3JtYXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaWRsCmluZGV4IGEwODQ4Yjk4ODA2M2I4NjY5MjM1NDlhOTA4Y2YwNjI2OWU3
MTRiZDUuLjMzYTUyOWZiOGYzMmQ3MGQyMmUwZWU1NDE5M2Y0YmU4ZGM1NjY1OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaWRsCkBAIC0yNSw5
ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR0ZvbnRGYWNlRm9ybWF0RWxl
bWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZvbnRGYWNlRm9ybWF0RWxl
bWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5pZGwKaW5kZXggODQwN2NjZjlkMTBjYWVmY2M0Mjcy
Y2I5OGFmZDhiZjU1YzI5MzVmMy4uOTM3YjczOTM3M2JiZjI3YjVjY2Q1ZmJkNGNlYmU1ZGNhMzlh
YjllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50Lmlk
bApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAgXSBTVkdGb250RmFj
ZU5hbWVFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHRm9udEZhY2VO
YW1lRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuaWRsCmluZGV4IDc3YWY4Y2RhZWRiZjE2MGZj
YTE4ZWEyNzU3MTlmMTkxMTgzZDY1ZDMuLjAwOTg3YmFiODE0NWM2ZThlZDU2NjBkNWRjNjI5OTcx
NDNlY2RjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0Vs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
aWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR0ZvbnRG
YWNlU3JjRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZvbnRGYWNl
U3JjRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaWRsCmluZGV4IGI0ZjYyNmE2ODI1YjAyNjIw
ZTYzYTgyOTZkMjRkNDQ1MjZhNmI3NDkuLjdmY2UwMjEyODU2YTQ3MDQ5MWY4YzgyOWE5NDVlODJh
ZTE3N2UxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQu
aWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR0ZvbnRG
YWNlVXJpRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZvbnRGYWNl
VXJpRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmlkbAppbmRleCBhMWIzODgyY2ZiM2I1
ZjA5MjQyNGQyYTE4ZWJkMmExMjkyYjk4ODk1Li43NTFlZmQ1MzViMzZmZTlmMWY0ZjczYjEzYzdj
YzU4MGE2MTc3MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdGb3JlaWdu
T2JqZWN0RWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzksNCArMzksNCBAQCBtb2R1bGUgc3Zn
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5pZGwKaW5kZXggYjYzNzdh
NjhjZjc5YWZkZWY3NmNlZmU5YzczN2FiMmZmMDdiZmI0Yy4uMTVhNDc5ODUyZWRhZTI1MzdkOWNi
NmU0OWZiYTliM2M4ZjUwM2MzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dF
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaWRsCkBAIC0y
NSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHR0VsZW1lbnQgOiBTVkdFbGVtZW50LAor
ICAgIF0gaW50ZXJmYWNlIFNWR0dFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZSB7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5pZGwKaW5kZXggZDAwMzA5
YzM1ZmJkYThmN2RlNjJlMDkzZmQ4NThhZDNhYmNiY2QzOC4uZDlhNzIyYWY5MDAxNDE3MTNkY2Rj
MzZhY2M3YzlmOTMxMTcxZWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ds
eXBoRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5p
ZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UUwotICAgIF0gU1ZHR2x5cGhF
bGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHR2x5cGhFbGVtZW50IDog
U1ZHRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBo
UmVmRWxlbWVudC5pZGwKaW5kZXggOGExY2RiMWI3YWYzY2NiMWYzMGJhODcxOTkyN2NkMDg0OWM5
Yjk0Yy4uODY2ODFkOTA2MzU4ZDhlMzY4YTYyOTFjMGI1ZjFmYTBlNDhlYTIxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5pZGwKQEAgLTE5LDIyICsxOSwyMiBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05U
U10gU1ZHR2x5cGhSZWZFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBbQ29uZGl0aW9uYWw9U1ZH
JlNWR19GT05UU10gaW50ZXJmYWNlIFNWR0dseXBoUmVmRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBVc2UgW1JlZmxlY3RdIGFmdGVyIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDg0MyBpcyBmaXhlZC4KICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBnbHlw
aFJlZgotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3JtYXQ7CisgICAgICAgICAgICBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
Zm9ybWF0OwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeAotICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5Ci0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgYXR0cmlidXRlIGZsb2F0IGR4Ci0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgYXR0
cmlidXRlIGZsb2F0IGR5Ci0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaWRsCmluZGV4IDZkYjI3ZmJl
NDU1ZWExZGYyYjNhNDY1MTAxY2FkZDQ0ZjI3NDI4Y2UuLjFkNjgzM2IxOTAzOTJkYWQ4OTFmZGM2
NzM1YzE4OGUwMGViNGE4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1l
bnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBEb05vdENoZWNr
Q29uc3RhbnRzCi0gICAgXSBTVkdHcmFkaWVudEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0g
aW50ZXJmYWNlIFNWR0dyYWRpZW50RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHU3R5bGFibGUKQEAgLTQ0LDQgKzQ0LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uICAgc3ByZWFkTWV0aG9kOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5F
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaWRsCmluZGV4
IDQwODc3NDlhY2U0YmU2MGRhOWI2Mjk3YWNmZjQxMjFhZDNkZTliMzkuLjU5OWJiNzVmNGFkZjUy
ZDgwNDkxYTM4NzRhNzZlZTU4YWU0OTQxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdIS2VybkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdIS2VybkVs
ZW1lbnQuaWRsCkBAIC0xOSw5ICsxOSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNW
R0hLZXJuRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0hLZXJuRWxl
bWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuaWRsCmluZGV4IDZmNzE2ZTEyMTk1OWUwODZmYjhkNDFhMzdlNTk0MjRkNWVk
MDhmYTEuLmQwNzJmOWUyMTJlMmU5NDg0NzcwMTQ5MzNiM2Y2NmU1MzZiZjlmYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVs
ZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNW
RwotICAgIF0gU1ZHSW1hZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBT
VkdJbWFnZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCkBAIC00
MSw0ICs0MSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5pZGwKaW5kZXggMjEyYzg1YTgxZmM2
NWJmZWFlYWViMzNmY2IzOTEwNTI4NDc0ZDY1NS4uNDUxNGNkZjhiNDNhNDE2ZjE3YWE5NGUzZGZl
ZTU5NzI3M2Y3ZjA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFj
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xhbmdTcGFjZS5pZGwKQEAgLTI2LDE2
ICsyNiwxNiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIE9iakNQcm90b2NvbCwKICAgICAgICAgU3Vw
cHJlc3NUb0pTT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFNWR0xhbmdT
cGFjZSB7CisgICAgXSBpbnRlcmZhY2UgU1ZHTGFuZ1NwYWNlIHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIERPTVN0cmluZyB4bWxsYW5nCi0gICAgICAgICAgICAgICAgICAgICAvKnNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICAgICAgLypzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKSovOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHhtbHNwYWNlCi0gICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKSovOworICAgICAgICAgICAgICAgICAgICAgLypzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKSov
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVu
Z3RoLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaWRsCmluZGV4IGE1Yzk1MmRm
Y2FhOTc1ZmIzMmRjOTQ3YzE4YTM3MmRkNTM0NzlhMTAuLjJlMWE2ZTdhMGI4NzQ5Y2NlNzE4ZGQ5
ZDg4ZjhmNjExMzI2YmU2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5n
dGguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaWRsCkBAIC0yMiw5ICsy
Miw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTGVuZ3RoIHsgCisgICAgXSBpbnRlcmZhY2UgU1ZH
TGVuZ3RoIHsgCiAgICAgICAgIC8vIExlbmd0aCBVbml0IFR5cGVzCiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX1VOS05PV04gICAgPSAwOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9OVU1CRVIgICAgID0gMTsKQEAgLTM5LDEz
ICszOSwxMiBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZH
X0xFTkdUSFRZUEVfUEMgICAgICAgICA9IDEwOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZTsKLSAgICAgICAgYXR0cmlidXRlIFtDdXN0b20sIFN0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgdmFsdWUKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKSwKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgW0N1c3RvbSwgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgdmFs
dWUKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pIHNldHJhaXNlcyhET01FeGNl
cHRpb24pOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB2
YWx1ZUluU3BlY2lmaWVkVW5pdHM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZywgU3RyaWN0VHlwZUNoZWNraW5nXSBET01TdHJpbmcgdmFsdWVBc1N0cmluZwotICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOworICAgICAg
ICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZhbHVlQXNTdHJpbmcKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRp
b24pOwogCiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgbmV3VmFsdWVTcGVjaWZp
ZWRVbml0cyhpbiB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBmbG9hdCB2YWx1ZUluU3Bl
Y2lmaWVkVW5pdHMpCkBAIC01NSw0ICs1NCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGhMaXN0LmlkbAppbmRleCBhOTBjOWUyNGJhMjE2NjFlZTEwY2E2YzZjYjJhMjdhOTlmM2Jm
YjYwLi43NjkzMzQwYjViM2U0NzJjMDliODJlNGU2ODIwYzhmYjYwZjc5YWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBzdmcg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAg
IF0gU1ZHTGVuZ3RoTGlzdCB7IAorICAgIF0gaW50ZXJmYWNlIFNWR0xlbmd0aExpc3QgeyAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAog
ICAgICAgICB2b2lkIGNsZWFyKCkKQEAgLTQ3LDQgKzQ3LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmlkbAppbmRleCAxNjU1ODYxNDZkNGQ1
NzI4YTQzYjgzZjJkNDU2MDJiMzhjMTEzZjQzLi5mMmY3OWMwNDJmZGNmMzhiZDI5MjBmYmU5YzNm
YzUxYjJlYTAzMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5pZGwKQEAgLTI1
LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdMaW5lRWxlbWVudCA6IFNWR0VsZW1lbnQs
CisgICAgXSBpbnRlcmZhY2UgU1ZHTGluZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzksNCArMzksNCBAQCBtb2R1bGUgc3ZnIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHkyOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aWRsCmluZGV4IDM4NWJjZmIxYTQ5N2I5ZGI1YTY3MzlhMDQ5NmE4NWViNGE4MGI2OGUuLjM1MDMw
YTQyZjM5YjVlMWE5MTk0ZTIxNjliMmZiYzNjMzczMWJmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaWRsCkBAIC0yNSwxMyArMjUsMTMgQEAK
IAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1ZHCi0gICAgXSBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQgOiBTVkdHcmFkaWVudEVs
ZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCA6IFNWR0dy
YWRpZW50RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExl
bmd0aCB4MTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHkx
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeDI7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5MjsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmlkbAppbmRleCAzYjM4YTM5ZjE5ZDljOTAw
YjA2ZDAxMjFlOGNhOTZjMThhY2U3NjgwLi5lZGI2YzEyOWIxOTUzZDgyNTQ2MzE1NzRlYzQzZjA1
YmRmM2M5MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmlkbApAQCAtMjYsMjAgKzI2
LDIwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBTdXBwcmVz
c1RvSlNPYmplY3QsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gU1ZHTG9jYXRhYmxl
IHsKKyAgICBdIGludGVyZmFjZSBTVkdMb2NhdGFibGUgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHRWxlbWVudCBuZWFyZXN0Vmlld3BvcnRFbGVtZW50OwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHRWxlbWVudCBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudDsKIAogICAgICAg
ICBTVkdSZWN0ICAgZ2V0QkJveCgpOwogICAgICAgICBTVkdNYXRyaXggZ2V0Q1RNKCk7CiAgICAg
ICAgIFNWR01hdHJpeCBnZXRTY3JlZW5DVE0oKTsKLSAgICAgICAgU1ZHTWF0cml4IGdldFRyYW5z
Zm9ybVRvRWxlbWVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBTVkdFbGVtZW50
IGVsZW1lbnQpCisgICAgICAgIFNWR01hdHJpeCBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHRWxlbWVudCBlbGVtZW50KQogICAgICAgICAg
ICAgcmFpc2VzKFNWR0V4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01QYXRoRWxlbWVudC5pZGwKaW5kZXggZGE1MmYzZDJlYjYzMWUxNTk4MmRhMmM0ZTJiMGRj
MzBmYjJjNDAyYi4uYmRmMGExYWU1NTgxNTI1Mzk5MmI1OThiNTU4NzRmMTQ4MDVjODI3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TVkcKLSAgICBdIFNWR01QYXRoRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRl
cmZhY2UgU1ZHTVBhdGhFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVu
Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmlkbAppbmRleCBkZDM1MWUzMjA4
MzZmYmVmMmFkNjAyMzI3YjVlNzQxYzg5YmUxY2FiLi5iNWNjMTY3MjZlYWZjZGEzMzc3YzQ0ZjUw
ZTc0OTljMjA0MjYxZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaWRs
CkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTWFya2VyRWxlbWVudCA6IFNW
R0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHTWFya2VyRWxlbWVudCA6IFNWR0VsZW1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdM
YW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUsCkBAIC01MSw3ICs1MSw3
IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRB
bmdsZSAgICAgICBvcmllbnRBbmdsZTsKIAogICAgICAgICB2b2lkIHNldE9yaWVudFRvQXV0bygp
OwotICAgICAgICB2b2lkIHNldE9yaWVudFRvQW5nbGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gU1ZHQW5nbGUgYW5nbGUpOworICAgICAgICB2b2lkIHNldE9yaWVudFRvQW5nbGUo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHQW5nbGUgYW5nbGUpOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmlkbAppbmRleCA2MTA2ZWQz
MWU3MmMxYzE5NzI2YjBhZmM2YjlkOThjMmI4YTNjNmM0Li5jYzJjNzMyMTFjNzVjOGE2NjVkMWY2
YjRmMGM5MmY0MDZmNDc5ODI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFz
a0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5pZGwK
QEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdNYXNrRWxlbWVudCA6IFNWR0Vs
ZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHTWFza0VsZW1lbnQgOiBTVkdFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdT
cGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtNDEsNCArNDEsNCBAQCBtb2R1bGUgc3Zn
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJp
eC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmlkbAppbmRleCAwY2ZlNTQ3YjUw
ZTAxODQ1Y2Q1NmE0MjU3ZTk1YmMwOGQ1NmY1MjU0Li5kNGU5YzVlMWMwMmRkZmI5YzkzZGQ2YmQ1
NGYzODI3YWVjZTkwYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmlkbApAQCAtMjIsMTcgKzIy
LDE3IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTWF0cml4IHsKKyAgICBdIGludGVyZmFjZSBTVkdN
YXRyaXggewogICAgICAgICAvLyBGSVhNRTogdGhlc2UgYXR0cmlidXRlcyBzaG91bGQgYWxsIGJl
IGZsb2F0cyBidXQgc2luY2Ugd2UgaW1wbGVtZW50CiAgICAgICAgIC8vIEFmZmluZVRyYW5zZm9y
bSB3aXRoIGRvdWJsZXMgc2V0dGluZyB0aGVzZSBhcyBkb3VibGVzIG1ha2VzIG1vcmUgc2Vuc2Uu
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBkb3VibGUgYTsKLSAgICAg
ICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGRvdWJsZSBiOwotICAgICAgICBhdHRy
aWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZG91YmxlIGM7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
U3RyaWN0VHlwZUNoZWNraW5nXSBkb3VibGUgZDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGRvdWJsZSBlOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVj
a2luZ10gZG91YmxlIGY7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBk
b3VibGUgYTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGRvdWJsZSBi
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZG91YmxlIGM7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBkb3VibGUgZDsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGRvdWJsZSBlOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBhdHRyaWJ1dGUgZG91YmxlIGY7CiAKICAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gU1ZHTWF0cml4IG11bHRpcGx5KGluIFNWR01hdHJpeCBzZWNvbmRNYXRyaXgpOwogICAg
ICAgICBTVkdNYXRyaXggaW52ZXJzZSgpCkBAIC00OSw0ICs0OSw0IEBAIG1vZHVsZSBzdmcgewog
ICAgICAgICBbSW1tdXRhYmxlLCBTdHJpY3RUeXBlQ2hlY2tpbmddIFNWR01hdHJpeCBza2V3WShp
biBmbG9hdCBhbmdsZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5pZGwKaW5kZXggODc4ZTVkOTk4ZGIzMTU1OGMxOGJkNWNiNzQxNjMwNjNj
ZWEwYjE2ZC4uMTRmYzc2Y2Y4MjMyYjdiYmNjYTczOGMxODRmMDJjNThhMGYzNWIwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5pZGwKQEAgLTIxLDkgKzIxLDkgQEAK
IAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1ZHCi0gICAgXSBTVkdNZXRhZGF0YUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBd
IGludGVyZmFjZSBTVkdNZXRhZGF0YUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCmlu
ZGV4IDVlMzA3NGJmYTIwYTk0YTJmMjFhZmU2ZTNhMzc2YjQ0MWQzOTdmZjMuLjMwMjI5MTIyMTAx
ZTUzMDQ0NDNhMmI4ZmJhODQ1MGUzMjFiNjg1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2
ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJlNW
R19GT05UUwotICAgIF0gU1ZHTWlzc2luZ0dseXBoRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAg
IF0gaW50ZXJmYWNlIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbAppbmRleCBlYmQyMTJiM2YwMWYyNGZl
OTQxNDczZjc4MTBjY2MwNTA1NzBjOWQwLi44MzIzNWE3ZmY4MDI5NzNjNThmNjdmOTI1YzI0NTE1
NGRhZDU4MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmlkbApAQCAtMjIsMTAgKzIyLDEwIEBA
CiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVNWRwotICAgIF0gU1ZHTnVtYmVyIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlOworICAgIF0gaW50ZXJmYWNlIFNWR051bWJlciB7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB2YWx1ZTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaWRsCmluZGV4IDQzZTUxMTcz
OGJlOTkxZmYyZmZiZjFhNGM3YmFhMTg3NjYxZDZhMGQuLmYwYjdiZDQ2MmQxNmM4YTdiMmJlYWU2
MTdjYzMyN2M2OWFhZTVlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1i
ZXJMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5pZGwKQEAg
LTI2LDkgKzI2LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdOdW1iZXJMaXN0IHsKKyAgICBdIGlu
dGVyZmFjZSBTVkdOdW1iZXJMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKIAogICAgICAgICB2b2lkIGNsZWFyKCkKQEAgLTQ3LDQg
KzQ3LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBT
VkdFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGFpbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmlkbAppbmRl
eCA4NzExNjU1YTEzODcyNGJhNzZlZjMyMjc5ODFjN2M5NjQwNDg2YzY4Li5lOWFmNTJmNGQ1ODhi
ZDFlZTY1NTMwNzIyMWY4MDMyMTliNTQzNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGFpbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWludC5pZGwKQEAg
LTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYWludCA6IFNWR0NvbG9yIHsKKyAg
ICBdIGludGVyZmFjZSBTVkdQYWludCA6IFNWR0NvbG9yIHsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VTktOT1dOID0gMDsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1IgPSAyOwpAQCAtNDcsNCAr
NDcsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFNW
R0V4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaWRsCmluZGV4IDVmNGY2Y2FiNjlkNGMzZjE3MzE3ZDE0ZTM2OTRmMzk1ZGNiNTBmMzEuLjQ2
YTNmNzJhYjg0ODhlOWJjNGNjMjNhZTdhNDJjY2Q0YWU2M2VkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmlkbApAQCAtMjYsOSArMjYsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNW
R1BhdGhFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoRWxlbWVu
dCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNyw3
NyArMzcsNzcgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZE51bWJlciBwYXRoTGVuZ3RoOwogCiAgICAgICAgIGZsb2F0IGdldFRvdGFsTGVuZ3Ro
KCk7Ci0gICAgICAgIFNWR1BvaW50IGdldFBvaW50QXRMZW5ndGgoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gZmxvYXQgZGlzdGFuY2UpOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdl
dFBhdGhTZWdBdExlbmd0aChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBk
aXN0YW5jZSk7CisgICAgICAgIFNWR1BvaW50IGdldFBvaW50QXRMZW5ndGgoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgZGlzdGFuY2UpOworICAgICAgICB1bnNpZ25lZCBs
b25nIGdldFBhdGhTZWdBdExlbmd0aChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCBkaXN0YW5jZSk7CiAKICAgICAgICAgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCBjcmVhdGVTVkdQ
YXRoU2VnQ2xvc2VQYXRoKCk7CiAKLSAgICAgICAgU1ZHUGF0aFNlZ01vdmV0b0FicyBjcmVhdGVT
VkdQYXRoU2VnTW92ZXRvQWJzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7Ci0gICAgICAgIFNW
R1BhdGhTZWdNb3ZldG9SZWwgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGZsb2F0IHkpOworICAgICAgICBTVkdQYXRoU2VnTW92ZXRvQWJzIGNyZWF0ZVNWR1BhdGhT
ZWdNb3ZldG9BYnMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNl
Z01vdmV0b1JlbCBjcmVhdGVTVkdQYXRoU2VnTW92ZXRvUmVsKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxv
YXQgeSk7CiAKLSAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0FicyBjcmVhdGVTVkdQYXRoU2VnTGlu
ZXRvQWJzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7Ci0gICAgICAgIFNWR1BhdGhTZWdMaW5l
dG9SZWwgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkp
OworICAgICAgICBTVkdQYXRoU2VnTGluZXRvQWJzIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9BYnMo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b1JlbCBj
cmVhdGVTVkdQYXRoU2VnTGluZXRvUmVsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGZsb2F0IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CiAKLSAg
ICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1
YmljQWJzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4MSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5MSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4MiwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5Mik7Ci0gICAgICAgIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNSZWwgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgeDEsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgeTEsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeDIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gZmxvYXQgeTIpOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzIGNyZWF0ZVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9h
dCB5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgx
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkxLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgyLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkyKTsKKyAgICAg
ICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
UmVsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4MSwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4MiwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5Mik7CiAKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHksIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4MSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkxKTsKLSAgICAg
ICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNSZWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHks
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCB4MSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGZsb2F0IHkxKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMgY3JlYXRl
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCB4MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkxKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNSZWwgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4MSwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkxKTsKIAotICAgICAg
ICBTVkdQYXRoU2VnQXJjQWJzIGNyZWF0ZVNWR1BhdGhTZWdBcmNBYnMoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCB5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHIxLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IHIyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGFuZ2xl
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gbGFyZ2VBcmNGbGFnLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc3dlZXBGbGFnKTsKLSAgICAgICAgU1ZHUGF0aFNl
Z0FyY1JlbCBjcmVhdGVTVkdQYXRoU2VnQXJjUmVsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGZsb2F0IHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCByMSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBm
bG9hdCByMiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBhbmdsZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGxhcmdlQXJjRmxhZywgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBib29sZWFuIHN3ZWVwRmxhZyk7CisgICAgICAgIFNWR1BhdGhTZWdBcmNBYnMgY3Jl
YXRlU1ZHUGF0aFNlZ0FyY0FicyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9h
dCB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZmxvYXQgcjEsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgcjIsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgYW5nbGUsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gYm9vbGVhbiBsYXJnZUFyY0ZsYWcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9v
bGVhbiBzd2VlcEZsYWcpOworICAgICAgICBTVkdQYXRoU2VnQXJjUmVsIGNyZWF0ZVNWR1BhdGhT
ZWdBcmNSZWwoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHIxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHIyLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IGFuZ2xlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xl
YW4gbGFyZ2VBcmNGbGFnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gc3dlZXBG
bGFnKTsKIAotICAgICAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyBjcmVhdGVTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB4KTsKLSAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgY3JlYXRl
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeCk7CisgICAgICAgIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzIGNy
ZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHgpOworICAgICAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJl
bCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbChbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCB4KTsKIAotICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxBYnMgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOwotICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxSZWwgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOworICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxBYnMgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGZsb2F0IHkpOworICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxSZWwgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGZsb2F0IHkpOwogCi0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhBYnMgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyhpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHksIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDIsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQg
eTIpOwotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsIGNyZWF0ZVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBmbG9hdCB5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkyKTsKKyAgICAgICAgU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aEFicyBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9h
dCB4MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBmbG9hdCB5Mik7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwg
Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbChbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDIsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeTIpOwogCi0gICAg
ICAgIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzIGNyZWF0ZVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGZsb2F0IHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNTbW9vdGhSZWwgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkp
OworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyBjcmVhdGVTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB5KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUGF0aFNlZ0xpc3QgcGF0
aFNlZ0xpc3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQYXRoU2VnTGlzdCBub3Jt
YWxpemVkUGF0aFNlZ0xpc3Q7CkBAIC0xMTUsNCArMTE1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQYXRoU2VnTGlzdCBhbmltYXRlZE5vcm1hbGl6ZWRQ
YXRoU2VnTGlzdDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWcuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuaWRsCmlu
ZGV4IGU3YWQ3NWE4Yjk1YzRjNWY0N2Y4MjUzOTZlMzgxMjdmNjA5MjMyZDYuLjk0ZGNlZDQxYjli
Yjc0MmY0OWY0YTBhYjg4NDBkMDE5MDI0YzRhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5p
ZGwKQEAgLTI2LDExICsyNiwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgICAgIE9iakNQb2x5bW9ycGhpYwotICAgIF0gU1ZHUGF0aFNlZyB7CisgICAgXSBp
bnRlcmZhY2UgU1ZHUGF0aFNlZyB7CiAgICAgICAgIC8vIFBhdGggU2VnbWVudCBUeXBlcwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQQVRIU0VHX1VOS05PV04gPSAwOwogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBQQVRIU0VHX0NMT1NFUEFUSCA9IDE7CkBAIC01Nyw0ICs1Nyw0
IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXI7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjQWJzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQXJjQWJzLmlkbAppbmRleCA0ODA1ZThiYTQ2YjVhNmYyMmMxYjIzNThlYjg5ZWIxZWYx
YTZkOTAxLi5jNDJmNzBhZGQzNDM2MDAzNjFiYjlkMDMxZDRjNzQ2MzFlZGUxM2MzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNBYnMuaWRsCkBAIC0yNiwxNiArMjYsMTYgQEAKIAog
bW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnQXJjQWJzIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUg
W1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHIxOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVj
a2luZ10gZmxvYXQgcjI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBm
bG9hdCBhbmdsZTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xl
YW4gbGFyZ2VBcmNGbGFnOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10g
Ym9vbGVhbiBzd2VlcEZsYWc7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0FyY0FicyA6IFNW
R1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQg
eDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCByMTsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHIyOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgYW5nbGU7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGF0dHJpYnV0ZSBib29sZWFuIGxhcmdlQXJjRmxhZzsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gYXR0cmlidXRlIGJvb2xlYW4gc3dlZXBGbGFnOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY1JlbC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY1JlbC5pZGwKaW5kZXggYTIyYzYxZTJiMTRj
ZmJlMzQwNzY5NTA3MDJjZGM2OTQ2MjQ2NjAyNC4uZjMwYjc1NTdlYjRiYWVkNDdlN2U3NTFlODBi
ODU3NDgyNDc0YTI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdB
cmNSZWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjUmVsLmlkbApA
QCAtMjYsMTYgKzI2LDE2IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0FyY1JlbCA6IFNW
R1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQg
eDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCByMTsKLSAgICAgICAgYXR0
cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHIyOwotICAgICAgICBhdHRyaWJ1dGUg
W1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgYW5nbGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBib29sZWFuIGxhcmdlQXJjRmxhZzsKLSAgICAgICAgYXR0cmlidXRl
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gc3dlZXBGbGFnOworICAgIF0gaW50ZXJmYWNl
IFNWR1BhdGhTZWdBcmNSZWwgOiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0
dHJpYnV0ZSBmbG9hdCB5OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgcjE7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCBy
MjsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IGFuZ2xlOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgYm9vbGVhbiBsYXJnZUFyY0Zs
YWc7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBib29sZWFuIHN3ZWVw
RmxhZzsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdDbG9zZVBhdGguaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9z
ZVBhdGguaWRsCmluZGV4IDhjNTdkODYwMGNlNzMyOTllNTNhZDQ5ZGViZWIxZGE4YjhhZTlkNGYu
LmQzMDJjMjMxMTAyY2Q2MWVlZjI0NDZmMGQzMmNmYTY4ZWI5ODZjZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwKQEAgLTI2LDkgKzI2LDkgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHCi0gICAgXSBTVkdQYXRoU2VnQ2xvc2VQYXRoIDogU1ZHUGF0aFNlZyB7CisgICAgXSBpbnRl
cmZhY2UgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCA6IFNWR1BhdGhTZWcgewogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGwK
aW5kZXggNDMxMWM4ZDVmZDViYzJjNTY1Yzc4ZmQ4MmEwNWQyNmUzMjFjMWNmNS4uM2I5MDRkZjcy
N2FlODhkZDgxZDEzZWM1NTYzNzZiOTZmYmY4MGJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbApAQCAtMjYsMTUgKzI2LDE1IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyA6IFNWR1BhdGhTZWcgewot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4MTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGZsb2F0IHkxOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgeDI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5n
XSBmbG9hdCB5MjsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzIDog
U1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9h
dCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHgxOworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTE7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4MjsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYXR0cmlidXRlIGZsb2F0IHkyOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5pZGwKaW5kZXggZjI3OWY2ZTQ5
MmIxNWIzZGZmN2U2OWZiMGY1Zjg0MWUxZmQ1NWM3My4uNzA0NDI2OGQ0ZDAyMzI4ODVmYzBkNmU1
NDg5ODA2YzZhMTI2NDgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljUmVsLmlkbApAQCAtMjYsMTUgKzI2LDE1IEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0g
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1
dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBmbG9hdCB4MTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IGZsb2F0IHkxOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQg
eDI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5MjsKKyAg
ICBdIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsIDogU1ZHUGF0aFNlZyB7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHgxOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTE7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0
dHJpYnV0ZSBmbG9hdCB4MjsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRl
IGZsb2F0IHkyOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5pZGwKaW5kZXggZmJmZGUwZDg3MDU1
ZjI4NDU5MGZhOWI5NzE3NmY3YjA4ZjM5MzU1ZC4uODZkMGM4NDMxMTFjZmQ5NDZiNGVmMWJjMmE5
OWMwZGE2YWVlNzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVs
ZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNW
RwotICAgIF0gU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicyA6IFNWR1BhdGhTZWcgewot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4MjsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGZsb2F0IHkyOworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhBYnMgOiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0
dHJpYnV0ZSBmbG9hdCB5OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgeDI7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5
MjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaWRsCmluZGV4IDFiOWRlMmE2NGQ3MzY3MDAzZGE4
YjQ0OGViN2NmODUzNjA1YWUwMTcuLmY0ODEyZTc3OGUxN2NhMDNhMTEyMjdkZWVhZDc2NzBiYWVi
ODE3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbC5pZGwKQEAgLTI2LDEzICsyNiwxMyBAQAogCiBtb2R1bGUgc3ZnIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBd
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmlj
dFR5cGVDaGVja2luZ10gZmxvYXQgeDI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBmbG9hdCB5MjsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoUmVsIDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0
dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgeTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHgy
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTI7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY0Ficy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuaWRsCmluZGV4IDY5YTk5MzBiOTM5ODc1YWUzNjZkOThiMmUyMTc5NDE3
ZGJhNDI1ZWMuLjg0OGQxYjRlMWVhMDBhM2FhYmNkZTdkZWJiM2Q0YzMxNDM0MDhlNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
LmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCB5OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxv
YXQgeDE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5MTsK
KyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyA6IFNWR1BhdGhT
ZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4MTsKKyAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHkxOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbApp
bmRleCAwNjc5MjgwYTkyYzY3NzdhZjlmY2M5MWVjOGIwZjQyYjRjY2QxY2E2Li45Y2U4NGFmY2U4
NDc5OWE5ZTMwZmFlNjI1ZmRmNDE4MjNhNTRjMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGwKQEAgLTI2LDEzICsyNiwx
MyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsIDogU1ZH
UGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4
OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKLSAgICAg
ICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHgxOwotICAgICAgICBhdHRy
aWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTE7CisgICAgXSBpbnRlcmZhY2UgU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgOiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBh
dHRyaWJ1dGUgZmxvYXQgeDE7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0
ZSBmbG9hdCB5MTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGwKaW5kZXggODgz
NGMwMzQwMDZlN2Y4MDExNWM0NWQ1OTQ2NTc3MDY4MmIxNzcwOC4uYmZiODcxOGVlZTUyMzljOTU0
YTg5MWZhNTViZGQ0MThkZGYxMWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaWRsCkBAIC0yNiwxMSAr
MjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aEFicyA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2lu
Z10gZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0
IHk7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMg
OiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZs
b2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5Owog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbAppbmRleCAzZDA0MmM4NTkxOWU5OTBk
YjA1MzE0M2FiNWI2YjZhYWNmYWFkMjIxLi5kZmI0YmEyODE1ZTM0MjljYWEyODFkZjZmNGVjZWUx
NTVhY2I4NGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5pZGwKQEAgLTI2LDExICsyNiwxMSBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TVkcKLSAgICBdIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsIDogU1ZHUGF0
aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4Owot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKKyAgICBdIGlu
dGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCA6IFNWR1BhdGhTZWcg
eworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAgICAg
ICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmlkbAppbmRleCA3MTRm
YTEwYjkxYzQ3NTVlMTkxOGRkNmFhYzBkZTEzNTc0MDE0ZTA5Li5kZGIxYzhiMGE5Y2RkNjJjYjUx
ZDQ4ZWU1ZTYzYjEwNzEzODcwZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpbmV0b0Ficy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aW5ldG9BYnMuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRo
U2VnTGluZXRvQWJzIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2lu
Z10gZmxvYXQgeTsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvQWJzIDogU1ZHUGF0
aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4Owor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsQWJzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbEFicy5pZGwKaW5kZXggMjk0ODI5NzU3ZDJiYzQ0MjcyYmIwYzM1YjI2OWQzZTNmMjRl
MjNhYi4uZDZhNDcyOThlMmJhNGRkZDQxN2NlNmZhM2FhNmZiNjZjYmEyZTBlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuaWRs
CkBAIC0yNiwxMCArMjYsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbEFicyA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgeDsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbEFicyA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRy
aWJ1dGUgZmxvYXQgeDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwKaW5kZXggMWU0NmRkMGU2M2Vh
OTQyNTg3Y2QzNjIxZDYwMzk5ODJhNmM3YTU4ZC4uYWJhNDhkOGJjNDQ0ZGZjOGFkN2JlNGZhNTUw
MjcwZDM3YWFjNDhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aW5ldG9Ib3Jpem9udGFsUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuaWRsCkBAIC0yNiwxMCArMjYsMTAgQEAKIAogbW9kdWxlIHN2
ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0g
ICAgXSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCA6IFNWR1BhdGhTZWcgewotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKKyAgICBdIGludGVyZmFj
ZSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCA6IFNWR1BhdGhTZWcgeworICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaWRsCmluZGV4IDYyZWEyMzEz
NDQ2YjVjZGExM2FkZmRhMGMxNDQ4MTlmOWRkZGQ1OWYuLjgzNzMyNTJhZDdhYzRiYTJmMTZkZjZj
MTJlYmRkZGQ2ZTEwNGFhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGluZXRvUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0
b1JlbC5pZGwKQEAgLTI2LDExICsyNiwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhTZWdM
aW5ldG9SZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBm
bG9hdCB5OworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9SZWwgOiBTVkdQYXRoU2Vn
IHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5OwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxB
YnMuaWRsCmluZGV4IDk1YzlkMjc3NDVhNmNmMjU5ZDM1OWE2MTQyODFkZGQzNjM0NjhkOGUuLjkw
MjNlMDg0ODIxNTRlMGQ4ZDk2YjgzOWNkMTAxODljN2YzMDIxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsCkBAIC0yNiwxMCAr
MjYsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgOiBT
VkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0
IHk7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzIDogU1ZHUGF0
aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5Owog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxSZWwuaWRsCmluZGV4IDRhMzU5YTU3ZjFlYTQzMjM3ZjM4N2Q4NzRmNGExZDY3
MWU3OGI2ZTYuLmU3YWM3MDhmY2E2NmI5OWM3YTc4OGViNzBjMjMzNTE5NzJhMTM1NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRs
CkBAIC0yNiwxMCArMjYsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWxSZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGZsb2F0IHk7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
UmVsIDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0
ZSBmbG9hdCB5OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
LmlkbAppbmRleCBlYTllNTE1N2FmMDgzOTk2MDIxMjNlYmFkNjBkMDQ5YTMwNjdlOTA2Li4yZDhm
MzRhODI5ZTgyYzEyZmVkOWU3NTM3YmZiYTc5MzExMmJjZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGlzdC5pZGwKQEAgLTI2LDkgKzI2LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQ
YXRoU2VnTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpc3QgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogCiAgICAgICAg
IHZvaWQgY2xlYXIoKQpAQCAtNDcsNCArNDcsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvQWJzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvQWJzLmlkbAppbmRleCAzYTRmODA2M2Nl
YWMxZWY4YzY4NWYzOWJmZTUyY2FkYWM3NzBjMjM1Li5kNmRhMGJjNGI3YjhjNjU2ZmVlODFlNjYx
ZDBiZGQyZDBmZjVmZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z01vdmV0b0Ficy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdNb3ZldG9B
YnMuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnTW92
ZXRvQWJzIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxv
YXQgeTsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnTW92ZXRvQWJzIDogU1ZHUGF0aFNlZyB7
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdNb3ZldG9SZWwuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdNb3ZldG9SZWwuaWRsCmluZGV4IGE2NGIz
NTE3OGU5MThjYjhiMjEzZjAwNzhmMjBjODE1MTgyNDZhYWYuLjkyNTljMjBlNzVlNjI0MzE4MTcw
MGE2MzdkM2NjNWNiODMwMjQ0ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTW92ZXRvUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01v
dmV0b1JlbC5pZGwKQEAgLTI2LDExICsyNiwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhT
ZWdNb3ZldG9SZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5n
XSBmbG9hdCB5OworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdNb3ZldG9SZWwgOiBTVkdQYXRo
U2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHg7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5OwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmlkbAppbmRleCAyZGQ4
OWMyM2ZlZWViMWRiYmFmNmMzNmRmMzgyODc2ODA4ZTYyYmU5Li42MWRhZTgxMWEwYzBmYWM2YzZl
NzEyM2IzYTJiNzhkNDA5ODM5YjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxl
bWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXR0ZXJuRWxl
bWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0dGVybkVsZW1lbnQgOiBT
VkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCkBAIC00NCw0ICs0NCw0IEBA
IG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5n
dGggICAgICAgIGhlaWdodDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwK
aW5kZXggY2UyZDUxZDNkZDVhMDk3MGE5MmIyN2Q0NTliNjM5ODcyNTM5NjllYy4uODkwN2NiNGE4
Y2YxYzdiMDNiODYxYTE2OTUyOGI1ZTMwYzM4ZDdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnQuaWRs
CkBAIC0yMiwxMyArMjIsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQb2ludCB7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1
dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKKyAgICBdIGludGVyZmFjZSBTVkdQb2lu
dCB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAg
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKIAogICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSBTVkdQb2ludCBtYXRyaXhUcmFuc2Zvcm0oaW4gU1ZHTWF0cml4
IG1hdHJpeCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5pZGwK
aW5kZXggOTcxM2NhMmE5NTM0NTZiYzQ2OGM2MzQ3NWIxNDVlN2FlYWIxOGVhMy4uOWUxMGVlMTBm
NGJkMmEwYzgzNTVjZjgwMDYxNjYzYjk1Nzg3OTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQb2ludExpc3Qg
eworICAgIF0gaW50ZXJmYWNlIFNWR1BvaW50TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKICAgICAgICAgdm9pZCBjbGVhcigp
CkBAIC00Niw0ICs0Niw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5Z29uRWxlbWVudC5pZGwKaW5kZXggYmM5Zjk2NmNlNjYwNDczNzcwZTNjMGIyN2I1
OWNiMmNkM2I1MTI4My4uMTNkZjRlYjFhYjRjY2YzNWI1NGZjYmJlYjJmNjY2YjEwYTI4MTczNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUG9seWdvbkVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAg
IF0gaW50ZXJmYWNlIFNWR1BvbHlnb25FbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3Bh
Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTM3LDQgKzM3LDQgQEAgbW9kdWxlIHN2
ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludExpc3QgYW5pbWF0ZWRQb2lu
dHM7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5bGluZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVu
dC5pZGwKaW5kZXggOTNiZGFmMTY3NTk5YmU2NmE0MjVkYjc4MjI3Y2Y5ZTE2MzJmMzg1YS4uNWEw
NTc4ODNhMGU1NWU5ZWQxZDU2ZDVjYTgwYzhjNTFkZTVlMWI4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2
ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0g
ICAgXSBTVkdQb2x5bGluZUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNW
R1BvbHlsaW5lRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNyw0ICszNyw0IEBAIG1vZHVsZSBzdmcgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IGFuaW1hdGVkUG9pbnRzOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5p
ZGwKaW5kZXggOTc1YmZjNzllOTU0ZmMxMWI0NDAyYWE5ODJjYWMxNGY1YjgyNDljZi4uMTFlOWQ1
NzYxNmE5YzBlNWFlOWRhNWE0NDBmZWUwZDg1OGFjYWFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcKLSAgICBdIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8geworICAgIF0gaW50ZXJmYWNlIFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8gewogICAgICAgICAvLyBBbGlnbm1lbnQgVHlwZXMKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiA9IDA7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX05P
TkUgPSAxOwpAQCAtNDYsMTEgKzQ2LDExIEBAIG1vZHVsZSBzdmcgewogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfTUVFVCA9IDE7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNWR19NRUVUT1JTTElDRV9TTElDRSA9IDI7CiAKLSAgICAgICAgYXR0cmli
dXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHVuc2lnbmVkIHNob3J0IGFsaWduCi0gICAgICAgICAg
ICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBhbGlnbgorICAgICAgICAgICAgc2V0cmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IHVuc2lnbmVkIHNob3J0IG1lZXRPclNsaWNlCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCBtZWV0T3JTbGljZQorICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5pZGwKaW5kZXggMDAwZjZiNGY3MzdjY2ZmM2YxN2I5NDA0ZTIxMjMyMDJi
NjM2YTdmZS4uZDY0MDdjZjViNDI4ZGIzNGI3MGEwYWE4ZTM4MTlmMTZhODBiOGVhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5pZGwKQEAgLTI1
LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQgOiBT
VkdHcmFkaWVudEVsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR1JhZGlhbEdyYWRpZW50RWxl
bWVudCA6IFNWR0dyYWRpZW50RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZExlbmd0aCBjeDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1h
dGVkTGVuZ3RoIGN5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5n
dGggcjsKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBmeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JlY3QuaWRsCmluZGV4IDRiZmNlMGVkZGFmMjZiMzBiOTcwZGNiNjEyMzUyM2JlMTdkMzI0Zjgu
LmMyM2EzZWEyOTEzNTdkZTgyMDkzNmFkYTc0YmM0ZjdiNDYwOWYzNWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdC5pZGwKQEAgLTIyLDEzICsyMiwxMyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1JlY3Qgewot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB3aWR0aDsKLSAgICAgICAgYXR0cmlidXRlIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IGhlaWdodDsKKyAgICBdIGludGVyZmFjZSBTVkdSZWN0
IHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5OworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgd2lkdGg7CisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCBoZWlnaHQ7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaWRsCmluZGV4IGQ5M2Y1ZDcxMGZmNjMwMTg0ZmVi
NjBjYTI5NDhhNjBjNmZlMjYzYjcuLjdkM2M1NTJmOGUyODc4ZjdkYTRjMWYxMTNmNDZlNmUwNTYw
NmY2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmlkbApAQCAtMjYsOSArMjYs
OSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1JlY3RFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBd
IGludGVyZmFjZSBTVkdSZWN0RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsCkBAIC00Miw0ICs0Miw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcnk7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZW5kZXJpbmdJbnRlbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlbmRlcmluZ0ludGVudC5pZGwKaW5kZXggYzY2ZDY0OGM2
ZDZlNGI5MDM4MDJkOTRmYjAyOTk3OGJlZmYyMjU0OC4uOGQwNmY5N2U0YzU0MmQwMjNjNDdhZThh
YmMyNDg1NzMwYmNlYmZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlbmRl
cmluZ0ludGVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlbmRlcmluZ0ludGVu
dC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIFN1cHByZXNzVG9K
U09iamVjdAotICAgIF0gU1ZHUmVuZGVyaW5nSW50ZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdS
ZW5kZXJpbmdJbnRlbnQgewogICAgICAgICAvLyBSZW5kZXJpbmcgSW50ZW50IFR5cGVzCiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUklOR19JTlRFTlRfVU5LTk9XTiAgICAgICAg
ICAgICAgID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSSU5HX0lOVEVO
VF9BVVRPICAgICAgICAgICAgICAgICAgPSAxOwpAQCAtMzgsNCArMzgsNCBAQCBtb2R1bGUgc3Zn
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVOREVSSU5HX0lOVEVOVF9BQlNPTFVU
RV9DT0xPUklNRVRSSUMgPSA1OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5pZGwKaW5kZXggNTRmNGM2MTlmMDg0Mzc4ZDFiYzc4YjI4ZWMyMWFlNzFlNTkxODcw
Yy4uMmY1OWI1YWY0OTMwZmJjZmRlYjQ4ZjQwODYxOTM4ZDc3NTE3MGJlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQCBtb2R1bGUgc3ZnIHsKICAg
ICAvLyBUT0RPOiBubyBjc3M6OlZpZXdDU1MgYXZhaWxhYmxlIQogICAgIC8vIFRPRE86IEZpeCBT
VkdTVkdFbGVtZW50IGluaGVyaXRhbmNlIChjc3M6OkRvY3VtZW50Q1NTKSEgCiAgICAgLy8gVE9E
Tzogbm8gZXZlbnRzOjpEb2N1bWVudEV2ZW50IGF2YWlsYWJsZSEKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdTVkdFbGVtZW50IDogU1ZH
RWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdTVkdFbGVtZW50IDogU1ZHRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1Nw
YWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTQwLDkgKzQwLDkgQEAgbW9kdWxlIHN2ZyB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB3aWR0aDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIGhlaWdodDsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50U2NyaXB0VHlwZQotICAgICAg
ICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAg
ICAgICAgICAgICAgIC8qc2V0cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50U3R5bGVUeXBlCi0gICAgICAgICAgICAgICAg
ICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICAg
ICAgLypzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKSovOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHUmVjdCB2aWV3cG9ydDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHBp
eGVsVW5pdFRvTWlsbGltZXRlclg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBw
aXhlbFVuaXRUb01pbGxpbWV0ZXJZOwpAQCAtNTEsMjYgKzUxLDI2IEBAIG1vZHVsZSBzdmcgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB1c2VDdXJyZW50VmlldzsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ZpZXdTcGVjIGN1cnJlbnRWaWV3OwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgY3VycmVudFNjYWxlCi0gICAgICAgICAgICAgICAgICAg
ICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKSovOworICAgICAgICAgICAgICAgICAgICAg
LypzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKSovOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUG9pbnQgY3VycmVudFRyYW5zbGF0ZTsKIAotICAgICAgICB1bnNpZ25lZCBsb25nIHN1c3Bl
bmRSZWRyYXcoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBt
YXhXYWl0TWlsbGlzZWNvbmRzKTsKLSAgICAgICAgdm9pZCB1bnN1c3BlbmRSZWRyYXcoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBzdXNwZW5kSGFuZGxlSWQp
OworICAgICAgICB1bnNpZ25lZCBsb25nIHN1c3BlbmRSZWRyYXcoW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBtYXhXYWl0TWlsbGlzZWNvbmRzKTsKKyAgICAg
ICAgdm9pZCB1bnN1c3BlbmRSZWRyYXcoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgbG9uZyBzdXNwZW5kSGFuZGxlSWQpOwogICAgICAgICB2b2lkIHVuc3VzcGVuZFJl
ZHJhd0FsbCgpOwogICAgICAgICB2b2lkIGZvcmNlUmVkcmF3KCk7CiAgICAgICAgIHZvaWQgcGF1
c2VBbmltYXRpb25zKCk7CiAgICAgICAgIHZvaWQgdW5wYXVzZUFuaW1hdGlvbnMoKTsKICAgICAg
ICAgYm9vbGVhbiBhbmltYXRpb25zUGF1c2VkKCk7CiAgICAgICAgIGZsb2F0IGdldEN1cnJlbnRU
aW1lKCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VycmVudFRpbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgc2Vjb25kcyk7Ci0gICAgICAgIE5vZGVMaXN0IGdldEludGVyc2Vj
dGlvbkxpc3QoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHUmVjdCByZWN0LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBTVkdFbGVtZW50IHJlZmVyZW5jZUVsZW1lbnQpOwotICAgICAgICBOb2Rl
TGlzdCBnZXRFbmNsb3N1cmVMaXN0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNW
R1JlY3QgcmVjdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHRWxlbWVudCByZWZlcmVuY2VFbGVtZW50KTsKLSAg
ICAgICAgYm9vbGVhbiBjaGVja0ludGVyc2VjdGlvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBTVkdFbGVtZW50IGVsZW1lbnQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNWR1JlY3QgcmVjdCk7Ci0g
ICAgICAgIGJvb2xlYW4gY2hlY2tFbmNsb3N1cmUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gU1ZHRWxlbWVudCBlbGVtZW50LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBTVkdSZWN0IHJlY3QpOworICAgICAg
ICB2b2lkIHNldEN1cnJlbnRUaW1lKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHNlY29uZHMpOworICAgICAgICBOb2RlTGlzdCBnZXRJbnRlcnNlY3Rpb25MaXN0KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFNWR1JlY3QgcmVjdCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
U1ZHRWxlbWVudCByZWZlcmVuY2VFbGVtZW50KTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RW5jbG9z
dXJlTGlzdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBTVkdSZWN0IHJlY3QsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIFNWR0VsZW1lbnQgcmVmZXJlbmNlRWxlbWVudCk7CisgICAgICAgIGJvb2xlYW4g
Y2hlY2tJbnRlcnNlY3Rpb24oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHRWxl
bWVudCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBTVkdSZWN0IHJlY3QpOworICAgICAgICBib29sZWFu
IGNoZWNrRW5jbG9zdXJlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFNWR0VsZW1l
bnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHUmVjdCByZWN0KTsKICAgICAgICAgdm9pZCBkZXNlbGVj
dEFsbCgpOwogCiAgICAgICAgIFNWR051bWJlciBjcmVhdGVTVkdOdW1iZXIoKTsKQEAgLTgwLDgg
KzgwLDggQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIFNWR01hdHJpeCBjcmVhdGVTVkdNYXRyaXgo
KTsKICAgICAgICAgU1ZHUmVjdCBjcmVhdGVTVkdSZWN0KCk7CiAgICAgICAgIFNWR1RyYW5zZm9y
bSBjcmVhdGVTVkdUcmFuc2Zvcm0oKTsKLSAgICAgICAgU1ZHVHJhbnNmb3JtIGNyZWF0ZVNWR1Ry
YW5zZm9ybUZyb21NYXRyaXgoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHTWF0
cml4IG1hdHJpeCk7Ci0gICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CisgICAgICAgIFNWR1Ry
YW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIFNWR01hdHJpeCBtYXRyaXgpOworICAgICAgICBFbGVtZW50IGdldEVsZW1l
bnRCeUlkKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBlbGVtZW50
SWQpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5p
ZGwKaW5kZXggMTExZWU1OWFmYTkwOTliNjdjZDc1ZTYxN2JlMDdkODQwZTZiZDdhOS4uZTgwNDk0
ODg1ZDdmMjBmODQ0NjYzZDhjZmE1NjQ2NzYwNDFhNTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmlkbApAQCAtMjUsMTMgKzI1LDEzIEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0g
U1ZHU2NyaXB0RWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHU2NyaXB0
RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
IHsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBE
T01TdHJpbmcgdHlwZQotICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbikqLzsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZQorICAgICAgICAgICAgICAgICAgICAgLypzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKSovOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2V0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxl
bWVudC5pZGwKaW5kZXggYTI4NTc4OTIzNTk4YzE2MjFhYzllZWI1MWQxZjlhNGJlODAyOTc3ZC4u
NTIwZjllMjM1ZDRlNzkxMDE2NjZlYTczMjA3YzczM2I4OGNlMzkyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTZXRFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNW
R1NldEVsZW1lbnQgOiBTVkdBbmltYXRpb25FbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdT
ZXRFbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaWRsCmluZGV4IDE0YTJiYTMwYTg1YTAwMDU1M2VlYTg4
NWIzMDI5MDNmNDFlMDk4N2EuLjM1ODQ4MjgxYThiMzExZGMzY2I4NmU2MjIxMmM4MjcyMjdhYTAx
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmlkbApAQCAtMjUsMTEgKzI1LDEx
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHU3RvcEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0g
aW50ZXJmYWNlIFNWR1N0b3BFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdTdHlsYWJsZSB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBvZmZzZXQ7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmlkbAppbmRleCA5ZDk0ZTcxMWJiYWY0YWQ0
NTcyYjZhZGI5ODEyMTQxMzU2MzA3OTJlLi5lNmRkMTdjZTEwYzQ5ZGZkMmEzYWRmYzk4YzY5MWQ2
ZWYxZDY5YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaWRsCkBAIC0yNSw5ICsy
NSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHU3RyaW5nTGlzdCB7CisgICAgXSBpbnRlcmZhY2Ug
U1ZHU3RyaW5nTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IG51bWJlck9mSXRlbXM7CiAKICAgICAgICAgdm9pZCBjbGVhcigpCkBAIC00Niw0ICs0Niw0IEBA
IG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0
aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxhYmxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsYWJsZS5pZGwKaW5kZXgg
NTMyNjljOThlYTg4YjI4MGQ1NWRiNGVhY2EzOWYxOTBmYThkYjk4YS4uNTAwYjdhN2M2ZjhiOTlk
YzEzZjYxYWEzNmRkYTBiNTVkMzFkNzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxhYmxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGFibGUuaWRs
CkBAIC0yNywxNiArMjcsMTYgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAg
ICAgICAgIFN1cHByZXNzVG9KU09iamVjdCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAg
XSBTVkdTdHlsYWJsZSB7CisgICAgXSBpbnRlcmZhY2UgU1ZHU3R5bGFibGUgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgY2xhc3NOYW1lOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKIAotICAgICAgICBD
U1NWYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBDU1NWYWx1ZSBnZXRQcmVzZW50YXRp
b25BdHRyaWJ1dGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5h
bWUpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaWRs
CmluZGV4IDdmYmU5OTk1NTBjNDRjYmRlZTM3YjY1Mzc1MDBjOWVhZDc4YzY4NjMuLjJlNmRjOGYx
MDUxNjA5NzBjMzcxYzc0Y2U1ODg2Yzg0MjAwYTc5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHlsZUVsZW1lbnQuaWRsCkBAIC0yNiwxNyArMjYsMTcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdT
dHlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR1N0eWxlRWxlbWVu
dCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNWR0xhbmdTcGFjZSB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29s
ZWFuIGRpc2FibGVkOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGUK
LSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB0aXRsZQot
ICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmlkbAppbmRleCAxMGY4MzMyZWVhMTRh
MWUzYjE4NDNiZDEyYzNmZmY3YzMyNDYzZDhmLi44ODZkNTA0NmE4MTVmYWZhYTIyYjlkYTZmMjNl
OWQ3YzFkNjFlMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaWRsCkBA
IC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHU3dpdGNoRWxlbWVudCA6IFNWR0Vs
ZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHU3dpdGNoRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNW
R0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNSw0ICszNSw0IEBAIG1v
ZHVsZSBzdmcgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1ZHVHJhbnNmb3JtYWJsZSB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTeW1ib2xFbGVtZW50LmlkbAppbmRleCBmMjE0MTE2OTJjZTZiNzVjYTU5MmMzZWM3NDAz
ZDViOTg3MmM3NjEzLi5kMTg2MDgwMzU2ZDg2MTQ1YjkxMDViNDE3YjMzN2Y0YzcxZDBkYzU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaWRsCkBAIC0yNSwxMyArMjUsMTMg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdTeW1ib2xFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBd
IGludGVyZmFjZSBTVkdTeW1ib2xFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdTdHlsYWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpdFRvVmlld0JveCB7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaWRsCmluZGV4IDA4NjM3ZjRiZDJlOTc2MWEz
ZGU1MGZlM2RlYzNlMjAyZGIzODM4ZDIuLjc0MmE2YWU3NmFhZjI4YmE3NGQxZjBmYTMyMjg0NDBk
ZWI1ZDI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmlkbApAQCAtMjUsMTAg
KzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHVFJlZkVsZW1lbnQgOiBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR1RSZWZFbGVtZW50IDogU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUU3BhbkVsZW1lbnQuaWRsCmluZGV4IDVhZWMzYTg4Zjg3MGY0Y2JiZjM0ZmFjZTA3
NzAxNmRkN2MxYmUzYzcuLjUyNmVhMWY3MmFkY2QzM2I5MWEzZjAxYmM4ZmY0OTNjMDc3Nzc5OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBA
CiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVNWRwotICAgIF0gU1ZHVFNwYW5FbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHVFNwYW5FbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXN0cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuaWRsCmluZGV4
IGQ5Zjc5Y2NiZjJhOWM3Zjg1ZjZlNWM1YjY4MzU4M2U4YzM1YjUwYjQuLmMzZDc1NGU2NGI5ZTMw
MWQyNTQxNTUzOTMyZDQyNGUzMjgyZTljZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmlkbApAQCAt
MjYsMTcgKzI2LDE3IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAg
ICBTdXBwcmVzc1RvSlNPYmplY3QsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gU1ZH
VGVzdHMgeworICAgIF0gaW50ZXJmYWNlIFNWR1Rlc3RzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR1N0cmluZ0xpc3QgcmVxdWlyZWRGZWF0dXJlczsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR1N0cmluZ0xpc3QgcmVxdWlyZWRFeHRlbnNpb25zOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCBzeXN0ZW1MYW5ndWFnZTsKIAotICAgICAgICBi
b29sZWFuIGhhc0V4dGVuc2lvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01T
dHJpbmcgZXh0ZW5zaW9uKTsKKyAgICAgICAgYm9vbGVhbiBoYXNFeHRlbnNpb24oW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGV4dGVuc2lvbik7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGwKaW5k
ZXggNmNlOGE1MzAyNmYyMmVjNDJjMTgwYTNjYWY2MjY4ZWQzZjJiMTgwNi4uNmRmYmVjMzZlODFh
NmEzYzJhOGY5YjRjMTU5MjQzMzkzMDBiNWI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAg
XSBTVkdUZXh0Q29udGVudEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNW
R1RleHRDb250ZW50RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC00MiwyMSArNDIsMjEgQEAgbW9kdWxl
IHN2ZyB7CiAKICAgICAgICAgbG9uZyBnZXROdW1iZXJPZkNoYXJzKCk7CiAgICAgICAgIGZsb2F0
IGdldENvbXB1dGVkVGV4dExlbmd0aCgpOwotICAgICAgICBmbG9hdCBnZXRTdWJTdHJpbmdMZW5n
dGgoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25n
IG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQorICAgICAg
ICBmbG9hdCBnZXRTdWJTdHJpbmdMZW5ndGgoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJ
c0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIGluIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIFNWR1BvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCkKKyAgICAgICAgU1ZHUG9p
bnQgZ2V0U3RhcnRQb3NpdGlvbk9mQ2hhcihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElz
SW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIFNWR1BvaW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQpCisg
ICAgICAgIFNWR1BvaW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWQsSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgU1ZHUmVjdCBnZXRFeHRlbnRPZkNoYXIoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNl
dCkKKyAgICAgICAgU1ZHUmVjdCBnZXRFeHRlbnRPZkNoYXIoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZCxJc0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBmbG9hdCBnZXRSb3RhdGlvbk9mQ2hhcihpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0
KQorICAgICAgICBmbG9hdCBnZXRSb3RhdGlvbk9mQ2hhcihbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkLElzSW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24oaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHUG9pbnQgcG9pbnQpOwotICAgICAgICB2
b2lkIHNlbGVjdFN1YlN0cmluZyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElzSW5k
ZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25nIGxl
bmd0aCkKKyAgICAgICAgbG9uZyBnZXRDaGFyTnVtQXRQb3NpdGlvbihbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBTVkdQb2ludCBwb2ludCk7CisgICAgICAgIHZvaWQgc2VsZWN0U3Vi
U3RyaW5nKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gaW4gdW5zaWduZWQg
bG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dEVsZW1lbnQuaWRsCmluZGV4IGEzODFkZDJhOGIzZDZjMGFkNzc4ZDk5NjY1MTA3
ZjU2OWM0NDE5OTUuLmVhMmRkOGZiZDdjM2RhYWZkOTFjY2FkN2UyMDcwOGY2MTA4YjRmOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHVGV4dEVsZW1lbnQgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LAorICAgIF0gaW50ZXJmYWNlIFNWR1RleHRFbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdUcmFuc2Zvcm1hYmxlIHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmlkbAppbmRleCAwOTA0YTBjZmJkOTZkMmZkYzM3YjE2MjI5NjUyNDYy
ZDg0M2VhNzcwLi43NWU1ZDVhMTg1NGMzYjQ2MTI4YzdmMTJmZGE4YjU5ZTExMTAzOTQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcKLSAgICBdIFNWR1RleHRQYXRoRWxlbWVudCA6IFNWR1RleHRDb250ZW50RWxl
bWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdUZXh0UGF0aEVsZW1lbnQgOiBTVkdUZXh0Q29udGVu
dEVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR1VSSVJlZmVyZW5jZSB7ICAgIAogICAgICAgICAvLyB0ZXh0UGF0aCBNZXRob2Qg
VHlwZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVYVFBBVEhfTUVUSE9EVFlQRV9V
TktOT1dOICAgPSAwOwpAQCAtNDQsNCArNDQsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3BhY2luZzsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQuaWRsCmluZGV4IDA0MTBmNzdlMTM3OTZmODA1OGY2MzhkYTNjYjI0OGNiMjIzZGU0NTEuLmJk
ZGMwN2U1ZDkwNWNkYWZkZTc0ZjVlYmQ0ZmYxYjU5NWYyZmY3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IDogU1ZHVGV4dENv
bnRlbnRFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
IDogU1ZHVGV4dENvbnRlbnRFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdCB4OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0IHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZExlbmd0aExpc3QgZHg7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHJvdGF0ZTsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmlkbAppbmRleCAyY2YyNDFi
ODZmY2E3M2QxMTA2N2I5OTY1NTI5MmFkNjA1YzY4ZGYwLi43ZjdjMThjODM1NDRjOTc2YWVlOTAx
ZGI5NWQ5ZDQxMzUyZDEwNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0
bGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50Lmlk
bApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHVGl0bGVFbGVtZW50IDog
U1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdUaXRsZUVsZW1lbnQgOiBTVkdFbGVtZW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdM
YW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR1N0eWxhYmxlIHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNm
b3JtLmlkbAppbmRleCBlM2U5ZjVlMWYzNzI3MDhmMzlhZjMzMWZmOWM1MWE2NjQ0ZDg3ZjBiLi5j
ZjEzMmMwN2U2YmZhMjJiNDBmZTg5ZDIzNGI3MjdhYjAwOGQyNDdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVHJhbnNmb3JtLmlkbApAQCAtMjEsOSArMjEsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1Ry
YW5zZm9ybSB7IAorICAgIF0gaW50ZXJmYWNlIFNWR1RyYW5zZm9ybSB7IAogICAgICAgICAvLyBU
cmFuc2Zvcm0gVHlwZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9S
TV9VTktOT1dOID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1RSQU5TRk9S
TV9NQVRSSVggPSAxOwpAQCAtNDUsNCArNDUsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRTa2V3WShpbiBmbG9hdCBhbmdsZSk7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAppbmRleCA1OTBm
ZTY1Y2ZmZjdjMjM3MmVmNWQ1YzkzNzUzMWJhNDQ1MjVlOTA5Li5iYTk0MzhlOTA1OTdhZjFlMjQ0
MTJlNjU1YWE2Nzk0MzY2ZDU4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHVHJhbnNmb3JtTGlz
dCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKICAgICAgICAgdm9pZCBj
bGVhcigpCkBAIC01Myw0ICs1Myw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1hYmxlLmlkbAppbmRleCAxYWYzODk1NjRiNWY3YjgzM2I2MTYwNWI2ZDY1NjJkN2Y2NTRm
MjkxLi41MjFmZjViY2YyMmU4OTczYjY3ZjcwOGQ5YWE0YTM3YWIxYzA0ODI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsCkBAIC0yNiwxMiArMjYsMTIgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAg
IF0gU1ZHVHJhbnNmb3JtYWJsZSA6IFNWR0xvY2F0YWJsZSB7CisgICAgXSBpbnRlcmZhY2UgU1ZH
VHJhbnNmb3JtYWJsZSA6IFNWR0xvY2F0YWJsZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QgdHJhbnNmb3JtOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaWRsCmluZGV4IDk2MDg3M2U5Y2Q2MGFhNjk3
NmY3MTNmODc1OGZlODhjNzVhZjdmYzMuLmE5ODAxMDE2YzkzY2NiYWVmNGQ0MzZmZGUwZjk4NzE5
YjMzYjgxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2Uu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuaWRsCkBAIC0yNiwx
MyArMjYsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIFN1
cHByZXNzVG9KU09iamVjdCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBTVkdVUklS
ZWZlcmVuY2UgeworICAgIF0gaW50ZXJmYWNlIFNWR1VSSVJlZmVyZW5jZSB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBocmVmOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5cGVzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaWRsCmluZGV4IDdlZDhiMGJhNmFhMTdjZTFhODUz
MTcyYWVhZWJkYzIzYzg1MjVmYmIuLmZhMDc0NzA5N2RmYjFiMjI5MTQ0ZmFiZTFkMjNiOWJjYjM0
YTgxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaWRsCkBAIC0yNSwxNCArMjUsMTQg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHLAogICAgICAgICBTdXBwcmVzc1RvSlNPYmplY3QKLSAgICBdIFNWR1VuaXRU
eXBlcyB7CisgICAgXSBpbnRlcmZhY2UgU1ZHVW5pdFR5cGVzIHsKICAgICAgICAgLy8gVW5pdCBU
eXBlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVU5JVF9UWVBFX1VOS05PV04g
ICAgICAgICAgID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQ
RV9VU0VSU1BBQ0VPTlVTRSAgICA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1ggPSAyOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5pZGwKaW5kZXggMDMyZjQ1M2VhMDlmMTc3NzVhMDQyMTkz
YmZhYmZlYmFkMzMwYWQ5Yy4uYjdlNGFkMGIxYjE3MjFiNDE1MTQyMzNlMjQ3MThhYTg5MjJmYzc2
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TVkcKLSAgICBdIFNWR1VzZUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJm
YWNlIFNWR1VzZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCkBAIC00Myw0
ICs0Myw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxl
bWVudEluc3RhbmNlIGFuaW1hdGVkSW5zdGFuY2VSb290OwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaWRsCmluZGV4IDdmZThkYzI5YzhhZTQ4ZGVjZmI2
YzQ1NGJiMDE1YmUzNjYyMjE5YWIuLjZkOThkOTI5NDUwNDM0MDZiNmNiMDRhODMyZDFjNWU5ZDE5
ODYxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaWRsCkBAIC0xOSw5ICsx
OSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR1ZLZXJuRWxlbWVudCA6IFNWR0Vs
ZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR1ZLZXJuRWxlbWVudCA6IFNWR0VsZW1lbnQgewog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0Vs
ZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmlkbAppbmRleCAw
NGIyNDU3ZDNmYTYzZGRjMTUyYzAzOTU5ZDhlOGJmMTIxNzhhZjY2Li4wMGY0YjdhMTI1YmQ1Yjhh
YzA3OTI1ODI3NjhkZGJkY2NkNzE5MjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVu
dC5pZGwKQEAgLTI1LDEzICsyNSwxMyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1ZpZXdFbGVtZW50
IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdWaWV3RWxlbWVudCA6IFNWR0VsZW1l
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdGaXRUb1ZpZXdCb3gsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHWm9vbUFuZFBhbiB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHZpZXdUYXJnZXQ7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaWRsCmluZGV4IGVjNTQ1ZDE0YmRkNWU2NDFkZGM4
Nzc1MDY5YWJiNTA0ZjFkOTUzNzYuLjllMjYyZWJhNGU4Mjg3ZjdiMDdhYTFhNTUxNzUyMWIxYTll
NmQ2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmlkbApAQCAtMjcsMTAgKzI3LDEwIEBA
IG1vZHVsZSBzdmcgewogCiAgICAgLy8gU1ZHVmlld1NwZWMgaW50ZW50aW9uYWxseSBkb2Vzbid0
IGluaGVyaXQgZnJvbSBTVkdab29tQW5kUGFuICYgU1ZHRml0VG9WaWV3Qm94IG9uIHRoZSBJRExz
LgogICAgIC8vIEl0IHdvdWxkIHJlcXVpcmUgdGhhdCBhbnkgb2YgdGhvc2UgY2xhc3NlcyB3b3Vs
ZCBiZSBSZWZDb3VudGVkLCBhbmQgd2Ugd2FudCB0byBhdm9pZCB0aGF0LgotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIEpTR2VuZXJhdGVU
b0pTT2JqZWN0Ci0gICAgXSBTVkdWaWV3U3BlYyB7CisgICAgXSBpbnRlcmZhY2UgU1ZHVmlld1Nw
ZWMgewogICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdUcmFuc2Zvcm1MaXN0IHRyYW5z
Zm9ybTsKICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHRWxlbWVudCB2aWV3VGFyZ2V0
OwogICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmlld0JveFN0cmluZzsK
QEAgLTQwLDExICs0MCwxMSBAQCBtb2R1bGUgc3ZnIHsKIAogICAgICAgICAgIC8vIFNWR1pvb21B
bmRQYW4KICAgICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgem9vbUFuZFBhbgotICAg
ICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgIHNl
dHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgICAgLy8gU1ZHRml0VG9WaWV3Qm94CiAg
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUmVjdCB2aWV3Qm94OwogICAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8g
cHJlc2VydmVBc3BlY3RSYXRpbzsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1pv
b21BbmRQYW4uaWRsCmluZGV4IDM3NjIxYmI4Y2I2YjI2ZTRhMzdmYTkwYjI3NDVhYjc2NmZjNzQ2
ZGQuLjM4NDg4ZGQ2ZTNkZDg0NDg3ZjgxNTU3NThiY2U2NDNkMTc5MjNjZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHWm9vbUFuZFBhbi5pZGwKQEAgLTI2LDExICsyNiwxMSBAQAogCiBtb2R1bGUgc3Zn
IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAg
ICAgICAgIE9iakNQcm90b2NvbCwKICAgICAgICAgU3VwcHJlc3NUb0pTT2JqZWN0Ci0gICAgXSBT
Vkdab29tQW5kUGFuIHsKKyAgICBdIGludGVyZmFjZSBTVkdab29tQW5kUGFuIHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1pPT01BTkRQQU5fVU5LTk9XTiA9IDA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19aT09NQU5EUEFOX0RJU0FCTEUgPSAxOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfWk9PTUFORFBBTl9NQUdOSUZZID0gMjsKQEAgLTM4
LDQgKzM4LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9y
dCB6b29tQW5kUGFuOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHWm9vbUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQu
aWRsCmluZGV4IGEyODgyMzc5YTExZGYyMTAxMDZhMzU2NTRiODM3M2I4ZTk0M2I1OTEuLjk1YTI2
YjEyZDM0NTA0OGJjMzRiZjhmODgxYTQxNDgwYjVkNWUzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkda
b29tRXZlbnQuaWRsCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdab29t
RXZlbnQgOiBVSUV2ZW50IHsgCisgICAgXSBpbnRlcmZhY2UgU1ZHWm9vbUV2ZW50IDogVUlFdmVu
dCB7IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVjdCB6b29tUmVjdFNjcmVlbjsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHByZXZpb3VzU2NhbGU7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBwcmV2aW91c1RyYW5zbGF0
ZTsKKyAgICAgICAgW0ltbXV0YWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IHByZXZp
b3VzVHJhbnNsYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgbmV3U2NhbGU7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBuZXdUcmFu
c2xhdGU7CisgICAgICAgIFtJbW11dGFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludCBu
ZXdUcmFuc2xhdGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDE5NjVmMDVlN2I2ODM0ZmY1YzVkMzhjYjg5MDE4ZGJj
ZTY4YmM0ZjYuLmViMGZiZWY1YzgyZmE0NDQ5MDljYWMzMDFhZGFmYjM4ZjM2ZjlkZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMjQsOSArMjQs
OSBAQAogICovCiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIEludGVybmFsU2V0dGluZ3MgeworICAgIF0gaW50
ZXJmYWNlIEludGVybmFsU2V0dGluZ3MgewogICAgICAgICB2b2lkIHNldEluc3BlY3RvclJlc291
cmNlc0RhdGFTaXplTGltaXRzKGluIGxvbmcgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBp
biBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShpbiBib29sZWFuIGVu
YWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwpAQCAtNjMsNSArNjMsNSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChpbiBib29sZWFuIGNyZWF0ZXMpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFdpbmRvd0ZvY3VzUmVzdHJpY3RlZChpbiBi
b29sZWFuIHJlc3RyaWN0ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07Ci19Cit9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMmYxN2Y1NTU4ZTI1ODViZDIy
ZjI2Mjc2Y2RlZmUyY2IwYTcwMDMzNS4uOTg4NGRlZWJhZmMwZWExZDQwMmE2MGNmMzI1NjMxOTZk
ZmQ2ODJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjQsOSArMjQs
OSBAQAogICovCiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIEludGVybmFscyB7CisgICAgXSBpbnRlcmZhY2Ug
SW50ZXJuYWxzIHsKICAgICAgICAgRE9NU3RyaW5nIGFkZHJlc3MoaW4gTm9kZSBub2RlKTsKIAog
ICAgICAgICBET01TdHJpbmcgZWxlbWVudFJlbmRlclRyZWVBc1RleHQoaW4gRWxlbWVudCBlbGVt
ZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTE2OSw1ICsxNjksNSBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNl
Y3VyaXR5UG9saWN5KGluIERPTVN0cmluZyBzY2hlbWUpOwogICAgICAgICB2b2lkIHJlbW92ZVVS
TFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShpbiBET01T
dHJpbmcgc2NoZW1lKTsKICAgICB9OwotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fi
c3RyYWN0V29ya2VyLmlkbAppbmRleCAzYzkwZDFlZDc5N2JlZDgxNDAzMjFmY2JmNjVlN2E4YmUz
YjFjNDc5Li4xOTc3MWQ4NDIwNTc0MTIwZTY3NWJiNDcyYjk5NDFmNzRmYjU3N2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbApAQCAtMzEsMjMgKzMxLDIzIEBA
CiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1XT1JLRVJTLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIEpT
Q3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRXZlbnRUYXJnZXQKLSAgICBdIEFic3RyYWN0V29y
a2VyIHsKKyAgICBdIGludGVyZmFjZSBBYnN0cmFjdFdvcmtlciB7CiAKICAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKIAogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVu
ZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBF
dmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJl
bW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNh
cHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAg
ICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5pZGwKaW5kZXgg
NDhlY2ZkY2FlMjdmZmZlNGZlZjRmOWE1YjcxNmUzMzM4NjUwMTk1ZS4uOWY5ZTg3ODU3ZmRhMjk0
NzIxNjE1ZWY2NjcyNDg0MGQ2N2NhNzQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaWRsCkBAIC0zMCwyNCArMzAsMjQgQEAKIAogbW9k
dWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVdPUktFUlMsCiAgICAgICAgIEV4dGVuZHNET01HbG9iYWxPYmplY3QsCiAgICAgICAgIElz
V29ya2VyQ29udGV4dCwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAg
ICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIERlZGlj
YXRlZFdvcmtlckNvbnRleHQgOiBXb3JrZXJDb250ZXh0IHsKKyAgICBdIGludGVyZmFjZSBEZWRp
Y2F0ZWRXb3JrZXJDb250ZXh0IDogV29ya2VyQ29udGV4dCB7CiAKICNpZiAhZGVmaW5lZChMQU5H
VUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBwb3N0TWVz
c2FnZShpbiBhbnkgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSBtZXNzYWdlUG9ydHMpCisg
ICAgICAgIFtDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gYW55IG1lc3NhZ2UsIFtPcHRpb25h
bF0gaW4gQXJyYXkgbWVzc2FnZVBvcnRzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgd2Via2l0UG9zdE1lc3NhZ2UoaW4gYW55IG1lc3Nh
Z2UsIGluIFtPcHRpb25hbF0gQXJyYXkgdHJhbnNmZXJMaXN0KQorICAgICAgICBbQ3VzdG9tXSB2
b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIGFueSBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIEFycmF5
IHRyYW5zZmVyTGlzdCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UK
ICAgICAgICAgLy8gVGhlcmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4gYXJyYXkgdmlhIHRo
ZSBPYmpDIGJpbmRpbmdzLCBzbyBmb3Igbm93IGp1c3QgYWxsb3cgcGFzc2luZyBpbiBhIHNpbmds
ZSBwb3J0LgotICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBp
biBbT3B0aW9uYWxdIE1lc3NhZ2VQb3J0IG1lc3NhZ2VQb3J0KQorICAgICAgICB2b2lkIHBvc3RN
ZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIE1lc3NhZ2VQb3J0IG1l
c3NhZ2VQb3J0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKICNl
bmRpZgpAQCAtNTYsNCArNTYsNCBAQCBtb2R1bGUgdGhyZWFkcyB7CiAKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsCmluZGV4IDQwY2NkZDQwMzQx
ZTBiYmRlZTU0MTk0MzU3ZGY0OGRjMzEzOGI0YTguLjY1NTVkMTAzZmFmYzZiYmVkMGE4ZWY3OWU1
NTY0NzQzOTVlOTg5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlci5pZGwK
QEAgLTMxLDE4ICszMSwxOCBAQAogCiBtb2R1bGUgdGhyZWFkcyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0hBUkVEX1dPUktFUlMsCiAgICAgICAgIEFj
dGl2ZURPTU9iamVjdCwKICAgICAgICAgSlNDdXN0b21Db25zdHJ1Y3RvciwKLSAgICAgICAgQ29u
c3RydWN0b3IoaW4gRE9NU3RyaW5nIHNjcmlwdFVSTCwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051
bGxTdHJpbmddIERPTVN0cmluZyBuYW1lKSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3Ry
aW5nIHNjcmlwdFVSTCwgW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddIGluIERPTVN0cmlu
ZyBuYW1lKSwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICAg
ICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0
aW9uLAogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJh
dGVUb0pTT2JqZWN0Ci0gICAgXSBTaGFyZWRXb3JrZXIgOiBBYnN0cmFjdFdvcmtlciB7CisgICAg
XSBpbnRlcmZhY2UgU2hhcmVkV29ya2VyIDogQWJzdHJhY3RXb3JrZXIgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5pZGwKaW5kZXggNjc2OTgx
MTIyMTJjYjE2MDE2YTNjZDEyM2QzNzZlNTI0ZjQxODY4ZS4uNjJmZmY4MmU3Yzk4MmZkYjBjZDJk
ZDEwMjFkZTM0ZDA4MDU5NDgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9T
aGFyZWRXb3JrZXJDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJl
ZFdvcmtlckNvbnRleHQuaWRsCkBAIC0zMCwxOCArMzAsMTggQEAKIAogbW9kdWxlIHRocmVhZHMg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNIQVJFRF9X
T1JLRVJTLAogICAgICAgICBFeHRlbmRzRE9NR2xvYmFsT2JqZWN0LAogICAgICAgICBJc1dvcmtl
ckNvbnRleHQsCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNO
b1N0YXRpY1RhYmxlcywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBTaGFyZWRXb3Jr
ZXJDb250ZXh0IDogV29ya2VyQ29udGV4dCB7CisgICAgXSBpbnRlcmZhY2UgU2hhcmVkV29ya2Vy
Q29udGV4dCA6IFdvcmtlckNvbnRleHQgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25jb25uZWN0OwogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbApp
bmRleCAwODMzNTNjMDQ2MTI4Mzc4YjNhOTBiYWE0YTI5ZWZhNzMzYTBkNjVkLi5mZjlmMTQyMDJj
OTdlNzhhZDMzNWVlNDE0NGUxZjQzYjllNWU5ZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIu
aWRsCkBAIC0yNyw3ICsyNyw3IEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XT1JLRVJTLAogICAgICAgICBBY3RpdmVE
T01PYmplY3QsCiAgICAgICAgIEpTQ3VzdG9tQ29uc3RydWN0b3IsCkBAIC0zNiwyMiArMzYsMjIg
QEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbiwK
ICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0dlbmVyYXRlVG9K
U09iamVjdAotICAgIF0gV29ya2VyIDogQWJzdHJhY3RXb3JrZXIgeworICAgIF0gaW50ZXJmYWNl
IFdvcmtlciA6IEFic3RyYWN0V29ya2VyIHsKIAogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbm1lc3NhZ2U7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSBtZXNzYWdl
UG9ydHMpCisgICAgICAgIFtDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIG1lc3NhZ2UsIFtPcHRpb25hbF0gaW4gQXJyYXkgbWVzc2FnZVBvcnRzKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgd2Vi
a2l0UG9zdE1lc3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRp
b25hbF0gQXJyYXkgbWVzc2FnZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdFBv
c3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBbT3B0aW9uYWxdIGlu
IEFycmF5IG1lc3NhZ2VQb3J0cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwog
I2Vsc2UKICAgICAgICAgLy8gVGhlcmUncyBubyBnb29kIHdheSB0byBleHBvc2UgYW4gYXJyYXkg
dmlhIHRoZSBPYmpDIGJpbmRpbmdzLCBzbyBmb3Igbm93IGp1c3QgYWxsb3cgcGFzc2luZyBpbiBh
IHNpbmdsZSBwb3J0LgotICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIE1lc3NhZ2VQb3J0IG1lc3NhZ2VQb3J0KQor
ICAgICAgICB2b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdl
LCBbT3B0aW9uYWxdIGluIE1lc3NhZ2VQb3J0IG1lc3NhZ2VQb3J0KQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHRlcm1pbmF0ZSgpOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmlkbApp
bmRleCA2NWE2NGZkYzBmZDZkNzc0ODQ4Y2NmZWJkN2MxNWQ5MjhmNWE4NTRlLi4wN2IwN2ViOTA5
Mzk1ZmI5M2IzYjUyNzg0ZTAyMTNmMjhmNDY3ZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKIAogbW9kdWxlIHRocmVhZHMgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdPUktFUlMsCiAg
ICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBKU0N1c3RvbUdldE93blByb3Bl
cnR5U2xvdEFuZERlc2NyaXB0b3IsCkBAIC0zNywzNiArMzcsMzYgQEAgbW9kdWxlIHRocmVhZHMg
ewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAg
ICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gV29ya2VyQ29udGV4dCB7CisgICAgXSBp
bnRlcmZhY2UgV29ya2VyQ29udGV4dCB7CiAKICAgICAgICAgLy8gV29ya2VyR2xvYmFsU2NvcGUK
ICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQK
LSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gV29ya2VyQ29udGV4dCBz
ZWxmOworICAgICAgICAgICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBXb3JrZXJDb250
ZXh0IHNlbGY7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJs
ZV0gV29ya2VyTG9jYXRpb24gbG9jYXRpb247CisgICAgICAgICAgICAgICAgIFtSZXBsYWNlYWJs
ZV0gYXR0cmlidXRlIFdvcmtlckxvY2F0aW9uIGxvY2F0aW9uOwogICAgICAgICB2b2lkIGNsb3Nl
KCk7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAK
ICAgICAgICAgLy8gV29ya2VyVXRpbHMKICAgICAgICAgW0N1c3RvbV0gdm9pZCBpbXBvcnRTY3Jp
cHRzKC8qW1ZhcmlhZGljXSBpbiBET01TdHJpbmcgdXJscyAqLyk7Ci0gICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIFdvcmtlck5hdmlnYXRvciBuYXZpZ2F0b3I7CisgICAg
ICAgICAgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIFdvcmtlck5hdmlnYXRvciBuYXZp
Z2F0b3I7CiAKICAgICAgICAgLy8gVGltZXJzCiAgICAgICAgIFtDdXN0b21dIGxvbmcgc2V0VGlt
ZW91dChpbiBUaW1lb3V0SGFuZGxlciBoYW5kbGVyLCBpbiBsb25nIHRpbWVvdXQpOwogICAgICAg
ICAvLyBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoaW4gRE9NU3RyaW5nIGNvZGUsIGluIGxvbmcg
dGltZW91dCk7Ci0gICAgICAgIHZvaWQgY2xlYXJUaW1lb3V0KGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgaGFuZGxlKTsKKyAgICAgICAgdm9pZCBjbGVhclRpbWVvdXQoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBoYW5kbGUpOwogICAgICAgICBbQ3Vz
dG9tXSBsb25nIHNldEludGVydmFsKGluIFRpbWVvdXRIYW5kbGVyIGhhbmRsZXIsIGluIGxvbmcg
dGltZW91dCk7CiAgICAgICAgIC8vIFtDdXN0b21dIGxvbmcgc2V0SW50ZXJ2YWwoaW4gRE9NU3Ry
aW5nIGNvZGUsIGluIGxvbmcgdGltZW91dCk7Ci0gICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGhhbmRsZSk7CisgICAgICAgIHZv
aWQgY2xlYXJJbnRlcnZhbChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGhh
bmRsZSk7CiAKIAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9p
ZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUp
OwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5l
ciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVu
dChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogCkBA
IC03NiwyMCArNzYsMjAgQEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBhdHRyaWJ1dGUgV29y
a2VyTG9jYXRpb25Db25zdHJ1Y3RvciBXb3JrZXJMb2NhdGlvbjsKIAogI2lmIEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORwotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyXSBNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yIE1lc3NhZ2VDaGFubmVsOworICAgICAgICBbSlNDdXN0b21HZXR0
ZXJdIGF0dHJpYnV0ZSBNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yIE1lc3NhZ2VDaGFubmVsOwog
I2VuZGlmCi0gICAgICAgIGF0dHJpYnV0ZSBbSlNDdXN0b21HZXR0ZXJdIEV2ZW50U291cmNlQ29u
c3RydWN0b3IgRXZlbnRTb3VyY2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbSlNDdXN0b21HZXR0ZXJd
IFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3Q7CisgICAgICAgIFtKU0N1
c3RvbUdldHRlcl0gYXR0cmlidXRlIEV2ZW50U291cmNlQ29uc3RydWN0b3IgRXZlbnRTb3VyY2U7
CisgICAgICAgIFtKU0N1c3RvbUdldHRlcl0gYXR0cmlidXRlIFhNTEh0dHBSZXF1ZXN0Q29uc3Ry
dWN0b3IgWE1MSHR0cFJlcXVlc3Q7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX0JMT0Ip
ICYmIEVOQUJMRV9CTE9CCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TEVHQUNZX1dF
QktJVF9CTE9CX0JVSUxERVJdIFdlYktpdEJsb2JCdWlsZGVyQ29uc3RydWN0b3IgV2ViS2l0Qmxv
YkJ1aWxkZXI7CisgICAgICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCS0lUX0JMT0JfQlVJTERF
Ul0gYXR0cmlidXRlIFdlYktpdEJsb2JCdWlsZGVyQ29uc3RydWN0b3IgV2ViS2l0QmxvYkJ1aWxk
ZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBCbG9iQ29uc3RydWN0b3IgQmxvYjsKICAgICAgICAgYXR0
cmlidXRlIEZpbGVSZWFkZXJDb25zdHJ1Y3RvciBGaWxlUmVhZGVyOwogICAgICAgICBhdHRyaWJ1
dGUgRmlsZVJlYWRlclN5bmNDb25zdHJ1Y3RvciBGaWxlUmVhZGVyU3luYzsKICNlbmRpZgogCi0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQl0gRE9NVVJMQ29uc3RydWN0b3Igd2Vi
a2l0VVJMOworICAgICAgICBbQ29uZGl0aW9uYWw9QkxPQl0gYXR0cmlidXRlIERPTVVSTENvbnN0
cnVjdG9yIHdlYmtpdFVSTDsKIAogICAgICAgICBhdHRyaWJ1dGUgQXJyYXlCdWZmZXJDb25zdHJ1
Y3RvciBBcnJheUJ1ZmZlcjsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCiAgICAgICAgIGF0
dHJpYnV0ZSBJbnQ4QXJyYXlDb25zdHJ1Y3RvciBJbnQ4QXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5l
dyBvcGVyYXRvcgpAQCAtMTA0LDQgKzEwNCw0IEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAg
YXR0cmlidXRlIERhdGFWaWV3Q29uc3RydWN0b3IgRGF0YVZpZXc7IC8vIFVzYWJsZSB3aXRoIG5l
dyBvcGVyYXRvcgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckxvY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TG9jYXRpb24uaWRsCmluZGV4IDNiMzAyYzQ5MzJiYWQxYWZmNzAxZDc3YjQ2YTBlNDkxMmJhN2Nl
OTMuLmU4NzNjOTA5YTFkNTM4NTNkZTQ5NTdiNzAwNGFiY2Y2ZjJhYjg4NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9jYXRpb24uaWRsCkBAIC0yOCwxMSArMjgsMTEgQEAKIAog
bW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVdPUktFUlMsCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAg
ICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBXb3JrZXJMb2NhdGlvbiB7CisgICAgXSBpbnRl
cmZhY2UgV29ya2VyTG9jYXRpb24gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGhyZWY7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvdG9jb2w7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaG9zdDsKQEAgLTQ1LDQgKzQ1
LDQgQEAgbW9kdWxlIHRocmVhZHMgewogICAgICAgICBbTm90RW51bWVyYWJsZV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9ET01QYXJzZXIuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5pZGwKaW5k
ZXggNWU1MWJjMWU3MDZlM2Y2YzA4NDE1ZmU0MjIyYmVkZTE2YzNiZTllOS4uZjg5ZDBjZDg5YjI4
Y2RjOWU0ZDA4NzA3MWVhYzAxODY3YjhmYTc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL0RPTVBhcnNlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL0RPTVBhcnNlci5pZGwK
QEAgLTE4LDEwICsxOCwxMCBAQAogICovCiAKIG1vZHVsZSB4cGF0aCB7Ci0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yCi0gICAgXSBET01QYXJzZXIgewotICAgICAg
ICBEb2N1bWVudCBwYXJzZUZyb21TdHJpbmcoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIHN0ciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29udGVudFR5cGUpOworICAg
IF0gaW50ZXJmYWNlIERPTVBhcnNlciB7CisgICAgICAgIERvY3VtZW50IHBhcnNlRnJvbVN0cmlu
ZyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgc3RyLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyBjb250ZW50VHlwZSk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAppbmRleCAwOTVmNGRjNWNmNGYyYmFkYzliOTQ1YjA0YTdlYzg5
NDM5ZDM3YzUxLi4xOTk4YmYyZTdjMzE3MWM0Y2U4YTA4Y2EzOGNiNmE4YzhmM2VkZTEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKQEAgLTI4LDcgKzI4LDcgQEAKIAogbW9k
dWxlIHhtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQWN0aXZlRE9NT2Jq
ZWN0LAogICAgICAgICBDb25zdHJ1Y3RvciwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwKQEAgLTM2LDcgKzM2LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIEpTQ3Vz
dG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlNOb1N0YXRp
Y1RhYmxlcwotICAgIF0gWE1MSHR0cFJlcXVlc3QgeworICAgIF0gaW50ZXJmYWNlIFhNTEh0dHBS
ZXF1ZXN0IHsKICAgICAgICAgLy8gRnJvbSBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0CiAgICAg
ICAgIC8vIGV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmFib3J0OwpAQCAtNTksOSArNTksOSBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7CiAKICAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gd2l0aENyZWRlbnRpYWxzCi0gICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICBbQ3VzdG9tXSB2b2lkIG9wZW4oaW4gRE9NU3RyaW5nIG1ldGhvZCwgaW4gRE9N
U3RyaW5nIHVybCwgaW4gW09wdGlvbmFsXSBib29sZWFuIGFzeW5jLCBpbiBbT3B0aW9uYWxdIERP
TVN0cmluZyB1c2VyLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBwYXNzd29yZCkKKyAgICAgICAg
W0N1c3RvbV0gdm9pZCBvcGVuKGluIERPTVN0cmluZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmws
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiBhc3luYywgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgdXNl
ciwgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgcGFzc3dvcmQpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lkIHNldFJlcXVlc3RIZWFkZXIoaW4gRE9NU3Ry
aW5nIGhlYWRlciwgaW4gRE9NU3RyaW5nIHZhbHVlKQpAQCAtODksMjAgKzg5LDIwIEBAIG1vZHVs
ZSB4bWwgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihp
biBET01TdHJpbmcgaGVhZGVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9u
c2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVudHMgVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVzcG9u
c2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVudHMgVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsCisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IHJlc3BvbnNlWE1MCi0gICAgICAgICAgICBn
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc3BvbnNlVHlwZQotICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gT2JqZWN0IHJlc3BvbnNlCi0gICAgICAgICAgICBnZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIE9iamVjdCBy
ZXNwb25zZQorICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHN0YXR1cwotICAgICAgICAgICAgZ2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVzVGV4dAot
ICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRXh0ZW5zaW9uCiAgICAgICAgIHZv
aWQgb3ZlcnJpZGVNaW1lVHlwZShpbiBET01TdHJpbmcgb3ZlcnJpZGUpOwpAQCAtMTEwLDEyICsx
MTAsMTIgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQog
ICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJp
bmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3Rl
bmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBk
aXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2Vw
dGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaWRsCmluZGV4IGEwYmU0NTgyNWY0Yzk2NjQyNGFiNjExNzhkZTJjZWM3
ZWIyYmVhYTEuLmI5OWJhM2MxM2M4NzNlMDRiMTA3NGNhZDUzODBhNGY3YWRiNWY3ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbApAQCAtMjgs
MTAgKzI4LDEwIEBACiAKIG1vZHVsZSB4bWwgewogCi0gICAgZXhjZXB0aW9uIFsKKyAgICBbCiAg
ICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAg
ICBdIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBYTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0ICAgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bmFtZTsKQEAgLTQ3LDQgKzQ3LDQgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IEFCT1JUX0VSUiA9IDEwMjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbAppbmRleCBiMWNh
MzU1MjI3ZDQxMGIyZGU5NWZiNjQ5YTc0NDFlNDgwNmE0N2RmLi5jYzU1NzI1NTk1ODZmZjJmNGNm
ZGM5Y2Q4NTY0YjVjMWY1YzRiYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbApAQCAtMjUsMTIgKzI1LDEyIEBACiAKIG1vZHVs
ZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTTm9TdGF0aWNU
YWJsZXMKICAgICAvLyBXZSBzaG91bGQgYWxzbyBpbmhlcml0IGZyb20gTFNQcm9ncmVzc0V2ZW50
IHdoZW4gdGhlIGlkbCBpcyBhZGRlZC4KLSAgICBdIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dCA6IFByb2dyZXNzRXZlbnQgeworICAgIF0gaW50ZXJmYWNlIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudCA6IFByb2dyZXNzRXZlbnQgewogICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbG9uZyBwb3NpdGlvbjsKICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxvbmcgdG90YWxTaXplOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaWRsIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbAppbmRleCA1ODRjMjkzYjM5ZDc4MThk
NDJkZWJlYzA0MGY3YWM4MGM1MWU2YTY3Li40NmFmNmJmYWY5YjBkYWRkODhhZmJiNGRhYjU4MWU1
ZDdmYjEyZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5p
ZGwKQEAgLTI4LDExICsyOCwxMSBAQAogCiBtb2R1bGUgeG1sIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbCwKICAgICAgICAgRXZl
bnRUYXJnZXQsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFhNTEh0dHBSZXF1ZXN0
VXBsb2FkIHsKKyAgICBdIGludGVyZmFjZSBYTUxIdHRwUmVxdWVzdFVwbG9hZCB7CiAgICAgICAg
IC8vIEZyb20gWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldAogICAgICAgICAvLyBldmVudCBoYW5k
bGVyIGF0dHJpYnV0ZXMKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsK
QEAgLTQ1LDEyICs0NSwxMiBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQg
aW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVh
biB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0g
aW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2Vz
KEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTFNlcmlh
bGl6ZXIuaWRsCmluZGV4IDU4MzI3Y2MyYTQ0Mjc0NGZmZTRhYWJkYzAzNzdmN2E3M2Y4ZDBhZDcu
LjVhYzVkMDBjNDc1ZTE3Y2MyZjVhZmY2M2EzZDFkOTBlYzIzYTQ4YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MU2VyaWFsaXplci5pZGwKQEAgLTIwLDExICsyMCwxMSBAQAogCiBtb2R1bGUgeHBhdGgg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yCi0gICAgXSBY
TUxTZXJpYWxpemVyIHsKLSAgICAgICAgRE9NU3RyaW5nIHNlcmlhbGl6ZVRvU3RyaW5nKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgbm9kZSkKKyAgICBdIGludGVyZmFjZSBY
TUxTZXJpYWxpemVyIHsKKyAgICAgICAgRE9NU3RyaW5nIHNlcmlhbGl6ZVRvU3RyaW5nKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgbm9kZSkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZh
bHVhdG9yLmlkbAppbmRleCBjYjk5NTBjMmE4OTQ3MzYyZWVkYjhiODQ0YmY0MjhjOTYxY2NiOWUz
Li4yZWUxMmIwNmFmMmViZGRiZjkxMGZmODE0NzBiMzQzMGU2YjZhZTc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aEV2YWx1YXRvci5pZGwKQEAgLTE4LDIwICsxOCwyMCBAQAogICovCiAKIG1vZHVs
ZSB4cGF0aCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yCi0g
ICAgXSBYUGF0aEV2YWx1YXRvciB7Ci0gICAgICAgIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHBy
ZXNzaW9uKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBleHByZXNz
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCisgICAgXSBp
bnRlcmZhY2UgWFBhdGhFdmFsdWF0b3IgeworICAgICAgICBYUGF0aEV4cHJlc3Npb24gY3JlYXRl
RXhwcmVzc2lvbihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZXhw
cmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgWFBhdGhOU1Jlc29sdmVy
IGNyZWF0ZU5TUmVzb2x2ZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBu
b2RlUmVzb2x2ZXIpOworICAgICAgICBYUGF0aE5TUmVzb2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGVSZXNvbHZlcik7CiAKLSAg
ICAgICAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIGV4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgY29udGV4dE5vZGUsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBY
UGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIHNob3J0IHR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IFhQYXRoUmVzdWx0IGluUmVzdWx0KQorICAgICAgICBYUGF0aFJlc3VsdCBldmFsdWF0ZShbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZXhwcmVzc2lvbiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
Tm9kZSBjb250ZXh0Tm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgc2hvcnQgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gWFBhdGhSZXN1bHQgaW5SZXN1bHQpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFBhdGhFeGNlcHRpb24uaWRsCmluZGV4IGNlYzBjNTQxZDkwNTE3NjZkZTE3NzNkYjY1NzhmYzUy
MTU0YTg3NzguLmY4Y2FmNGIwY2U2MjAwMjkyNzQ3NjI0OGY5MjU4MDY0Yzc0ODllY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbApAQCAtMjgsOSArMjgsOSBAQAogCiBtb2R1
bGUgeHBhdGggewogCi0gICAgZXhjZXB0aW9uIFsKKyAgICBbCiAgICAgICAgIERvTm90Q2hlY2tD
b25zdGFudHMKLSAgICBdIFhQYXRoRXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBYUGF0aEV4
Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAg
Y29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsK
QEAgLTQ2LDQgKzQ2LDQgQEAgbW9kdWxlIHhwYXRoIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgVFlQRV9FUlIgPSA1MjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhFeHByZXNzaW9uLmlkbAppbmRleCA1ZTYwODQwZDI3OTBmMWY1NzRmY2NhYTExMDg0NzU1ODYw
ZWZmNmU5Li5hODAxYjI5MDU5Y2M5ZGE3OGY2Mjg3MTU2MDViM2VjODkyZDI1Y2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhFeHByZXNzaW9uLmlkbApAQCAtMjEsMTAgKzIxLDEwIEBACiBtb2R1
bGUgeHBhdGggewogCiAgICAgaW50ZXJmYWNlIFhQYXRoRXhwcmVzc2lvbiB7Ci0gICAgICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIFhQYXRoUmVzdWx0IGV2YWx1YXRlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgY29udGV4dE5vZGUsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSB1bnNpZ25lZCBzaG9ydCB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gWFBhdGhS
ZXN1bHQgaW5SZXN1bHQpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIFhQ
YXRoUmVzdWx0IGV2YWx1YXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUg
Y29udGV4dE5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gWFBhdGhSZXN1bHQgaW5SZXN1bHQpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhOU1Jlc29sdmVyLmlkbAppbmRleCBlOWZhNDFiZTQyMmYwNGQ3ZTNhMWY4NGFhMDYxZDlmNTE2
NmY2N2IwLi4yNzdjYmYwOWI0NTJjYWFjMjFkZWQyM2U4OWU5MTJiNzk5YjkyZGYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhOU1Jlc29sdmVyLmlkbApAQCAtMjAsMTEgKzIwLDExIEBACiAKIG1v
ZHVsZSB4cGF0aCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgT2JqQ1Byb3Rv
Y29sLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFhQYXRoTlNSZXNvbHZlciB7Ci0g
ICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBsb29rdXBO
YW1lc3BhY2VVUkkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHBy
ZWZpeCk7CisgICAgXSBpbnRlcmZhY2UgWFBhdGhOU1Jlc29sdmVyIHsKKyAgICAgICAgW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJlZml4KTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKaW5kZXggNzdjNWI4ZTdjMjQ4
Nzg1Yjc1YmNmNjIyMDViMGI5OWZhMTIxOGM3Ny4uMjAzODllMThhNDE4NzNjN2UwN2QzNGNmN2E1
MjlkMDU2MzhhYWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCkBAIC0xOSw5ICsx
OSw5IEBACiAKIG1vZHVsZSB4cGF0aCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgSlNDdXN0b21NYXJrRnVuY3Rpb24KLSAgICBdIFhQYXRoUmVzdWx0IHsKKyAgICBdIGludGVy
ZmFjZSBYUGF0aFJlc3VsdCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFOWV9UWVBF
ICAgICAgICAgICAgICAgICAgICAgICA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IE5VTUJFUl9UWVBFICAgICAgICAgICAgICAgICAgICA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNUUklOR19UWVBFICAgICAgICAgICAgICAgICAgICA9IDI7CkBAIC0zNSwyNSAr
MzUsMjUgQEAgbW9kdWxlIHhwYXRoIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgIHJlc3VsdFR5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3Vi
bGUgICAgICAgICAgbnVtYmVyVmFsdWUKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
ICAgICAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICBzdHJpbmdW
YWx1ZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgIGdldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIGJvb2xlYW5WYWx1ZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgIHNpbmdsZU5vZGVW
YWx1ZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgIGdldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiAgICAgICAgIGludmFsaWRJdGVyYXRvclN0YXRlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgIHNuYXBzaG90TGVuZ3RoCi0gICAgICAgICAgICBn
ZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFpc2VzIChET01F
eGNlcHRpb24pOwogICAgICAgICAgICAgCiAgICAgICAgIE5vZGUgaXRlcmF0ZU5leHQoKQogICAg
ICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBOb2RlIHNuYXBzaG90SXRl
bShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KQor
ICAgICAgICBOb2RlIHNuYXBzaG90SXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3Nvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKaW5kZXgg
NDhlYzZjMjBlMWRkOTBiYzgwMDA4MTZkNmZiZWFmOTUwNDkyMTMyZC4uZWZjMTA2ZWJlZWU4YTll
MDA5ZWM4YWU2YjI2ZmZkYTU3NTU0MTc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29y
LmlkbApAQCAtMzIsMTAgKzMyLDEwIEBAIG1vZHVsZSB4bWwgewogICAgIC8vIGh0dHA6Ly9seHIu
bW96aWxsYS5vcmcvc2VhbW9ua2V5L3NvdXJjZS9jb250ZW50L3hzbC9wdWJsaWMvbnNJWFNMVEV4
Y2VwdGlvbi5pZGwKICAgICAvLyBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDQ2CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9WFNM
VCwKICAgICAgICAgQ29uc3RydWN0b3IKLSAgICBdIFhTTFRQcm9jZXNzb3IgeworICAgIF0gaW50
ZXJmYWNlIFhTTFRQcm9jZXNzb3IgewogICAgICAgICAKICAgICAgICAgW0N1c3RvbV0gdm9pZCBp
bXBvcnRTdHlsZXNoZWV0KGluIE5vZGUgc3R5bGVzaGVldCk7CiAgICAgICAgIFtDdXN0b21dIERv
Y3VtZW50RnJhZ21lbnQgdHJhbnNmb3JtVG9GcmFnbWVudChpbiBOb2RlIHNvdXJjZSwgaW4gRG9j
dW1lbnQgZG9jVmFsKTsKQEAgLTUwLDQgKzUwLDQgQEAgbW9kdWxlIHhtbCB7CiAKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDQyMjI1NWVjNTg1YTMwNGZhNmFiOGI4YmJiMjliOTZkZDFhYzBiNDQuLjBiZTY0OWUzZDE3
OTc4ODQxYWFlODQyYzU2MGQ4OGUwMzExMjg5NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNy0wNCAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvR0NDb250cm9sbGVyLmlkbDoK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91
dFRlc3RDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xsZXIuaWRsOgorICAgICAgICBBZGRlZCAi
OyIgdG8gbW9kdWxlJ3MgIn0iLgorCiAyMDEyLTA3LTA0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdDIgdGVzdGluZyBib3Qg
dW5hYmxlIHRvIGZpbmQgdGhlIGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbAppbmRleCAyZGY4YzI3OWY5YmQ4ODk2MTI2N2E2
YjBjYzQwYjBhYmNmMTE0OGQ5Li44MzI2NjdmMDUwZWY3YTdjMmE0NjQ3NWRjZmVmOGRkNzI4MmNl
ZGVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlk
bApAQCAtNDAsNCArNDAsNCBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCByZXNldFRvQ29u
c2lzdGVudFN0YXRlKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwKaW5kZXggODg1NTg0ODE1NWE4MTNlMWQ1N2E0YTdm
ZTk5MDc4NmJhZGM3MWIxMS4uYjZhZWY5NjFjOTZkMTMwYzQ4Mjc3YjA1ODRjOGY2OThiNTUwYjdi
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwK
QEAgLTI5LDQgKzI5LDQgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIGJvb2xlYW4gaXNFcXVhbChp
biBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciBvdGhlck1hcmtlcik7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aWRsCmluZGV4IDZjMmI2MGU1NzE4MmZlYTRkOTIzOTlkYjFlOTFiNTk1ODg3YTFiY2UuLmM5NzFj
ZDgxODQ0ODQ2MmVjYWVlMGFjNzhhMDY1ZjcwZjJlYTNkMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZS5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmlkbApAQCAtMjksNCArMjks
NCBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgYm9vbGVhbiBpc0VxdWFsKGluIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2Ugb3RoZXJNYXJrZXJSYW5nZSk7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IGExZThh
MDYyYzZlOGU1NmI5M2JjYjJmOWRmMmQ2NzUyN2UxOGUxYTguLmUwMzA3MTZjOTAwZGJhNGJlMTRi
YjIyOWM5N2Y0ZjhlZmRlN2RjMzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbApAQCAtMTY2LDQgKzE2Niw0IEBAIG1vZHVsZSBXVFIgewogICAgICAg
ICAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5pZGwKaW5kZXggOTM0YmU2ZDU3NWY3YjIyMjAzOGIzMzc2M2YwYmMwYmMxY2JkNTZh
Yi4uNmI1ODIwNDk1NzYyZDFmMmVmNTY2YjVhMTMwOTg2NDZkOWYwMjEwOSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCkBAIC01OCw0ICs1OCw0IEBA
IG1vZHVsZSBXVFIgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvR0NDb250cm9sbGVyLmlk
bCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvR0NDb250
cm9sbGVyLmlkbAppbmRleCBlYjNkZGVlN2FhZDJkNDc5MTJkOTY3MDI4ZGQ4MWE4YTMyOGJiNzg1
Li4zNDA2NDJlZmM5Y2YwYzk2MDAwZjY1OTZhNzJkNmJjNjFiNzBlYWEyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0dDQ29udHJvbGxl
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9HQ0NvbnRyb2xsZXIuaWRsCkBAIC0zMSw0ICszMSw0IEBAIG1vZHVsZSBXVFIgewogICAgICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgZ2V0SlNPYmplY3RDb3VudCgpOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDdhMmE0
ODhlYmVmMTA3YzdiNDVlNDVmMTg3YjBiODNkMWEyZjA4NzQuLmI5MTJmOTAyZWU5N2Q5NGJjY2I0
MDZlNWVjMjkzYzVlZmEwNTg5ZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaWRsCkBAIC0xNTMsNCArMTUzLDQgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZv
aWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGluIGJvb2xlYW4gdmFsdWUpOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlkbApp
bmRleCBjZWIzYTAwNGVhMmRmOWQyMWQ0NzJiNDRmZDE0MWU3NjY5MTc1ODE1Li5kNzI2MjgwMTA1
YzE5MzdjODkxZjhmZDdkNWM1MzY0ZTUzZjQwZmZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xsZXIuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGV4
dElucHV0Q29udHJvbGxlci5pZGwKQEAgLTMyLDUgKzMyLDUgQEAgbW9kdWxlIFdUUiB7CiAgICAg
ICAgIHZvaWQgaW5zZXJ0VGV4dChpbiBET01TdHJpbmcgc3RyaW5nKTsKICAgICB9OwogCi19Cit9
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150888</attachid>
            <date>2012-07-05 01:23:42 -0700</date>
            <delta_ts>2012-07-12 00:22:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120705172339.patch</filename>
            <type>text/plain</type>
            <size>912198</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTIwN2Q0ZTBkOTY0YTJl
ODU0NzkzNzYzMWRkNzZjZTFiMDg2YzQyOS4uMTFmMTA2YTA2M2U0MjhlNTExMmJhMzIwZmM3NWNj
ZDIwMmQ4ODJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwMyBAQAorMjAxMi0wNy0wNCAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAxMS9XRC1XZWJJREwtMjAxMTA3MTIvI2lkbC1ncmFtbWFyCisgICAgICAg
IFRoZSByZWFzb24gd2h5IHRoZSBwYXJzZXIgaXMgbm90IGJhc2VkIG9uIHRoZSBsYXRlc3QgV2Vi
SURMIGlzIHRoYXQKKyAgICAgICAgdGhlIGxhdGVzdCBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnkgIm1v
ZHVsZSIuIEFjY29yZGluZyB0byB0aGUgSURMCisgICAgICAgIGdyYW1tYXIsIGltcGxlbWVudGVk
IExMKDEpIHBhcnNlci4gTm93IGFjY29yZGluZyB0byB0aGUgc3BlYywgSURMCisgICAgICAgIGZp
bGVzIGFyZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIHdheToKKyAgICAgICAgLSBleHRlbmRl
ZCBhdHRyaWJ1dGVzIGFyZSBtb3ZlZCB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklE
TCwKKyAgICAgICAgICBlLmcuICJpbnRlcmZhY2UgWyAuLi4gXSBuYW1lIC4uLiIgaXMgbW9kaWZp
ZWQgdG8KKyAgICAgICAgICAiWyAuLi4gXSBpbnRlcmZhY2UgbmFtZSAuLi4iLgorICAgICAgICAt
ICJnZXR0ZXIgcmFpc2VzIiBhbmQgInNldHRlciByYWlzZXMiIGFyZSByZW5hbWVkIHRvICJnZXRy
YWlzZXMiIGFuZAorICAgICAgICAgICJzZXRyYWlzZXMiIGRlZmluZWQgaW4gV2ViSURMLgorICAg
ICAgICAtIGFkZGVkICI7IiBhZnRlciBtb2R1bGUncyAifSIsIGkuZS4gIm1vZHVsZSB7IC4uLiB9
IiBpcyBtb2RpZmllZCB0bworICAgICAgICAgICJtb2R1bGUgeyAuLi4gfTsiLgorICAgICAgICAt
IHJlbW92ZWQgIiwiIGFmdGVyIHRoZSBsYXN0IGV4dGVuZGVkIGF0dHJpYnV0ZSwKKyAgICAgICAg
ICBpLmUuICJbLi4uLCBhdHRyaWJ1dGUsXSIgaXMgbW9kaWZpZWQgdG8gIlsuLi4sIGF0dHJpYnV0
ZV0iLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdGVkIGJ5IGNvbXBhcmluZyB3aXRoIHNv
dXJjZXMgZ2VuZXJhdGVkIGJ5CisgICAgICAgIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0uCisK
KyAgICAgICAgKiBNb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JCYXR0ZXJ5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lz
dGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0v
RE9NV2luZG93RmlsZVN5c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL0Rh
dGFUcmFuc2Zlckl0ZW1GaWxlU3lzdGVtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW0vRGlyZWN0b3J5RW50cnkuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJl
Y3RvcnlFbnRyeVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3Rv
cnlSZWFkZXIuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFk
ZXJTeW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cmllc0NhbGxiYWNr
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFycmF5LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW0vRW50cnlBcnJheVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bS9FbnRyeUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlT
eW5jLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRXJyb3JDYWxsYmFjay5pZGw6
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVDYWxsYmFjay5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVFbnRyeS5pZGw6CisgICAgICAgICogTW9kdWxlcy9m
aWxlc3lzdGVtL0ZpbGVFbnRyeVN5bmMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3Rl
bS9GaWxlU3lzdGVtQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9G
aWxlV3JpdGVyLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlckNh
bGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdyaXRlclN5bmMu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbS9IVE1MSW5wdXRFbGVtZW50RmlsZVN5
c3RlbS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtL01ldGFkYXRhLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNvbnRleHRGaWxlU3lzdGVtLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGw6CisgICAgICAgICogTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRMaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGw6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaWRsOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRo
VmFsdWUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGw6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleS5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9p
bnRlbnRzL0RPTVdpbmRvd0ludGVudHMuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9E
ZWxpdmVyZWRJbnRlbnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9JbnRlbnQuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFTdHJlYW0uaWRsOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRp
YXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtRXZlbnQuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1MaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2
ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tM
aXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3Ry
ZWFtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YUVycm9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJN
ZWRpYUVycm9yQ2FsbGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21l
ZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1NpZ25hbGluZ0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL25ldHdvcmtpbmZv
L05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGw6CisgICAgICAgICogTW9kdWxlcy9u
ZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMv
cXVvdGEvRE9NV2luZG93UXVvdGEuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFn
ZUluZm8uaWRsOgorICAgICAgICAqIE1vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9FcnJvckNhbGxi
YWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
ay5pZGw6CisgICAgICAgICogTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJhY2su
aWRsOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoR3JhbW1hci5pZGw6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkFsdGVybmF0aXZlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkVycm9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvblJlc3VsdC5pZGw6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25SZXN1bHRMaXN0LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3ZpYnJhdGlvbi9OYXZpZ2F0
b3JWaWJyYXRpb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGw6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbFNwbGl0dGVyLmlkbDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0dhaW4uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9HYWlu
Tm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGw6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1By
b2Nlc3NpbmdFdmVudC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NvdXJj
ZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0phdmFTY3JpcHRBdWRpb05vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9Pc2NpbGxhdG9yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1JlYWx0aW1l
QW5hbHlzZXJOb2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJO
b2RlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVUYWJsZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5pZGw6CisgICAg
ICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGw6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlU3luYy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxFcnJvci5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFeGNlcHRp
b24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVzdWx0U2V0LmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5pZGw6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNhbGxiYWNrLmlkbDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFj
ay5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmMu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2Fs
bGJhY2suaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvV29ya2VyQ29udGV4dFdl
YkRhdGFiYXNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5p
ZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRvd1dlYlNvY2tldC5pZGw6
CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGw6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q2FsbGJhY2suaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJpdHkuaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RXZlbnRDb25zdHJ1Y3Rvci5pZGw6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFdmVudFRhcmdldC5pZGw6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0SW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0TmFtZWRDb25zdHJ1Y3Rvci5pZGw6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROb2RlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsOgorICAgICAgICAqIGNzcy9DU1NDaGFyc2V0
UnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGw6CisgICAgICAgICog
Y3NzL0NTU0ltcG9ydFJ1bGUuaWRsOgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuaWRsOgor
ICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NT
U1J1bGVMaXN0LmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6Cisg
ICAgICAgICogY3NzL0NTU1N0eWxlUnVsZS5pZGw6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsOgorICAgICAgICAqIGNzcy9DU1NVbmtub3duUnVsZS5pZGw6CisgICAgICAgICogY3Nz
L0NTU1ZhbHVlLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0LmlkbDoKKyAgICAgICAg
KiBjc3MvQ291bnRlci5pZGw6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5pZGw6CisgICAgICAg
ICogY3NzL01lZGlhUXVlcnlMaXN0LmlkbDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5pZGw6CisgICAgICAgICogY3NzL1JHQkNvbG9yLmlkbDoKKyAgICAgICAgKiBjc3Mv
UmVjdC5pZGw6CisgICAgICAgICogY3NzL1N0eWxlTWVkaWEuaWRsOgorICAgICAgICAqIGNzcy9T
dHlsZVNoZWV0LmlkbDoKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldExpc3QuaWRsOgorICAgICAg
ICAqIGNzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENT
U0tleWZyYW1lUnVsZS5pZGw6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUu
aWRsOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsOgorICAgICAgICAqIGNzcy9X
ZWJLaXRDU1NSZWdpb25SdWxlLmlkbDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaWRsOgorICAgICAgICAqIGRvbS9BdHRyLmlkbDoKKyAgICAgICAgKiBkb20vQmVmb3Jl
TG9hZEV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vQ0RBVEFTZWN0aW9uLmlkbDoKKyAgICAgICAg
KiBkb20vQ2hhcmFjdGVyRGF0YS5pZGw6CisgICAgICAgICogZG9tL0NsaWVudFJlY3QuaWRsOgor
ICAgICAgICAqIGRvbS9DbGllbnRSZWN0TGlzdC5pZGw6CisgICAgICAgICogZG9tL0NsaXBib2Fy
ZC5pZGw6CisgICAgICAgICogZG9tL0NvbW1lbnQuaWRsOgorICAgICAgICAqIGRvbS9Db21wb3Np
dGlvbkV2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vQ3VzdG9tRXZlbnQuaWRsOgorICAgICAgICAq
IGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRE9NRXJyb3IuaWRsOgor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RPTVN0
cmluZ0xpc3QuaWRsOgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaWRsOgorICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbDoKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRl
bUxpc3QuaWRsOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGw6CisgICAgICAg
ICogZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudFR5cGUuaWRsOgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAg
KiBkb20vRW50aXR5LmlkbDoKKyAgICAgICAgKiBkb20vRW50aXR5UmVmZXJlbmNlLmlkbDoKKyAg
ICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgICogZG9tL0V2ZW50LmlkbDoKKyAg
ICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGRvbS9FdmVudExpc3Rl
bmVyLmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaWRsOgorICAgICAgICAqIGRvbS9I
YXNoQ2hhbmdlRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDoKKyAg
ICAgICAgKiBkb20vTWVzc2FnZUNoYW5uZWwuaWRsOgorICAgICAgICAqIGRvbS9NZXNzYWdlRXZl
bnQuaWRsOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5pZGw6CisgICAgICAgICogZG9tL01v
dXNlRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDoKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25FdmVudC5pZGw6CisgICAgICAgICogZG9tL011dGF0aW9uUmVjb3Jk
LmlkbDoKKyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAgKiBkb20vTm9k
ZS5pZGw6CisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICAqIGRvbS9Ob2Rl
SXRlcmF0b3IuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5pZGw6CisgICAgICAgICogZG9t
L05vdGF0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vT3ZlcmZsb3dFdmVudC5pZGw6CisgICAgICAg
ICogZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Qb3BTdGF0ZUV2
ZW50LmlkbDoKKyAgICAgICAgKiBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBkb20vUHJvZ3Jlc3NFdmVudC5pZGw6CisgICAgICAgICogZG9tL1JhbmdlLmlkbDoKKyAg
ICAgICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOgorICAgICAgICAqIGRvbS9SZXF1ZXN0QW5p
bWF0aW9uRnJhbWVDYWxsYmFjay5pZGw6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaWRsOgor
ICAgICAgICAqIGRvbS9TdHJpbmdDYWxsYmFjay5pZGw6CisgICAgICAgICogZG9tL1RleHQuaWRs
OgorICAgICAgICAqIGRvbS9UZXh0RXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaC5pZGw6
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaExpc3Qu
aWRsOgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2VyLmlkbDoKKyAgICAgICAgKiBkb20vVUlFdmVu
dC5pZGw6CisgICAgICAgICogZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbDoKKyAgICAgICAg
KiBkb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGw6CisgICAgICAgICogZG9tL1dlYktpdE5h
bWVkRmxvdy5pZGw6CisgICAgICAgICogZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGw6Cisg
ICAgICAgICogZG9tL1doZWVsRXZlbnQuaWRsOgorICAgICAgICAqIGVkaXRpbmcvVW5kb01hbmFn
ZXIuaWRsOgorICAgICAgICAqIGZpbGVhcGkvQmxvYi5pZGw6CisgICAgICAgICogZmlsZWFwaS9G
aWxlLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVFcnJvci5pZGw6CisgICAgICAgICogZmls
ZWFwaS9GaWxlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVMaXN0LmlkbDoK
KyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaWRsOgorICAgICAgICAqIGZpbGVhcGkvRmls
ZVJlYWRlclN5bmMuaWRsOgorICAgICAgICAqIGZpbGVhcGkvV2ViS2l0QmxvYkJ1aWxkZXIuaWRs
OgorICAgICAgICAqIGh0bWwvRE9NRm9ybURhdGEuaWRsOgorICAgICAgICAqIGh0bWwvRE9NU2V0
dGFibGVUb2tlbkxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0LmlkbDoKKyAg
ICAgICAgKiBodG1sL0RPTVVSTC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQWxsQ29sbGVjdGlv
bi5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQlJFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5p
ZGw6CisgICAgICAgICogaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxCb2R5RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGw6CisgICAgICAgICog
aHRtbC9IVE1MQ29sbGVjdGlvbi5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRExpc3RFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXJlY3Rv
cnlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5p
ZGw6CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEZvbnRFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhSRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSGVhZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEhlYWRpbmdFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MSUZyYW1lRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTEludGVudEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExJRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTGFiZWxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWFwRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQu
aWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRt
bC9IVE1MTWVudUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE1ldGFFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTE1vZEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGw6CisgICAgICAg
ICogaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdy
YXBoRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxQcmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxRdW90ZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTFNwYW5FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxTdHlsZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlQ29sRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVFbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0
bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTFVM
aXN0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsOgor
ICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9JbWFn
ZURhdGEuaWRsOgorICAgICAgICAqIGh0bWwvTWVkaWFDb250cm9sbGVyLmlkbDoKKyAgICAgICAg
KiBodG1sL01lZGlhRXJyb3IuaWRsOgorICAgICAgICAqIGh0bWwvTWVkaWFLZXlFcnJvci5pZGw6
CisgICAgICAgICogaHRtbC9NZWRpYUtleUV2ZW50LmlkbDoKKyAgICAgICAgKiBodG1sL1JhZGlv
Tm9kZUxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvVGV4dE1ldHJpY3MuaWRsOgorICAgICAgICAq
IGh0bWwvVGltZVJhbmdlcy5pZGw6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmlkbDoK
KyAgICAgICAgKiBodG1sL1ZvaWRDYWxsYmFjay5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMv
QXJyYXlCdWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRs
OgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJy
YXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0ludDhBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGw6
CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5
LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGw6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGw6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRnJhbWVidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGw6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xTaGFkZXIuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbDoKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hU
TUxTaGFkb3dFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFjay5pZGw6
CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRsOgorICAgICAgICAqIGh0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5pZGw6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2tMaXN0LmlkbDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1RyYWNrRXZlbnQuaWRsOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6
CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGw6CisgICAgICAgICogbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbDoKKyAgICAgICAgKiBub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DZW50ZXIuaWRsOgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBub3RpZmljYXRpb25zL1dvcmtlckNvbnRleHRO
b3RpZmljYXRpb25zLmlkbDoKKyAgICAgICAgKiBwYWdlL0Fic3RyYWN0Vmlldy5pZGw6CisgICAg
ICAgICogcGFnZS9CYXJJbmZvLmlkbDoKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaWRsOgorICAg
ICAgICAqIHBhZ2UvQ29vcmRpbmF0ZXMuaWRsOgorICAgICAgICAqIHBhZ2UvQ3J5cHRvLmlkbDoK
KyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5pZGw6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93UGFnZVBvcHVwLmlkbDoKKyAgICAgICAg
KiBwYWdlL0V2ZW50U291cmNlLmlkbDoKKyAgICAgICAgKiBwYWdlL0hpc3RvcnkuaWRsOgorICAg
ICAgICAqIHBhZ2UvTG9jYXRpb24uaWRsOgorICAgICAgICAqIHBhZ2UvTWVtb3J5SW5mby5pZGw6
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9y
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsOgorICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ29u
dHJvbGxlci5pZGw6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5pZGw6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50
cnlMaXN0LmlkbDoKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGw6Cisg
ICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbDoKKyAgICAgICAgKiBw
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbDoKKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrLmlk
bDoKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5pZGw6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1
dEV2ZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbDoKKyAgICAg
ICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGw6CisgICAgICAgICogcGFnZS9XZWJL
aXRBbmltYXRpb24uaWRsOgorICAgICAgICAqIHBhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGw6
CisgICAgICAgICogcGFnZS9XZWJLaXRQb2ludC5pZGw6CisgICAgICAgICogcGFnZS9Xb3JrZXJO
YXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBsdWdpbnMvRE9NTWltZVR5cGUuaWRsOgorICAgICAg
ICAqIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5pZGw6CisgICAgICAgICogcGx1Z2lucy9ET01Q
bHVnaW4uaWRsOgorICAgICAgICAqIHBsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaWRsOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZS5pZGw6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlRXZlbnQu
aWRsOgorICAgICAgICAqIHN2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdBRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0FsdEdseXBoSXRlbUVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5pZGw6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZH
QW5pbWF0ZWRCb29sZWFuLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bi5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5pZGw6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJl
Y3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGw6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGlvbkVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdDaXJjbGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHQ29s
b3IuaWRsOgorICAgICAgICAqIHN2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdEZWZzRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0Rlc2NFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRG9jdW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZF
QmxlbmRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jQUVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNCRWxlbWVudC5pZGw6CisgICAgICAgICogc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQu
aWRsOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmlkbDoKKyAg
ICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVUaWxlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHRml0VG9WaWV3Qm94LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9T
VkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0dseXBoRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0dseXBoUmVmRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5p
ZGw6CisgICAgICAgICogc3ZnL1NWR0hLZXJuRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xhbmdTcGFjZS5pZGw6CisgICAg
ICAgICogc3ZnL1NWR0xlbmd0aC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaWRs
OgorICAgICAgICAqIHN2Zy9TVkdMaW5lRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR0xvY2F0YWJsZS5pZGw6
CisgICAgICAgICogc3ZnL1NWR01QYXRoRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR01h
cmtlckVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5pZGw6CisgICAg
ICAgICogc3ZnL1NWR01hdHJpeC5pZGw6CisgICAgICAgICogc3ZnL1NWR01ldGFkYXRhRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsOgorICAgICAg
ICAqIHN2Zy9TVkdOdW1iZXIuaWRsOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0LmlkbDoK
KyAgICAgICAgKiBzdmcvU1ZHUGFpbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWcuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQXJjQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0FyY1JlbC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1JlbC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhBYnMuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5pZGw6CisgICAgICAg
ICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbDoKKyAgICAgICAg
KiBzdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnTGluZXRvQWJzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxBYnMuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbFJlbC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9SZWwuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdNb3ZldG9BYnMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQb2ludC5pZGw6CisgICAgICAg
ICogc3ZnL1NWR1BvaW50TGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BvbHlnb25FbGVtZW50
LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBz
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGw6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1JlY3QuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdSZWN0RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1JlbmRlcmluZ0ludGVu
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9T
VkdTY3JpcHRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU2V0RWxlbWVudC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1N0b3BFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU3RyaW5n
TGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1N0eWxhYmxlLmlkbDoKKyAgICAgICAgKiBzdmcv
U1ZHU3R5bGVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHU3dpdGNoRWxlbWVudC5pZGw6
CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdU
UmVmRWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1RTcGFuRWxlbWVudC5pZGw6CisgICAg
ICAgICogc3ZnL1NWR1Rlc3RzLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVGl0bGVFbGVtZW50LmlkbDoKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlz
dC5pZGw6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdVUklSZWZlcmVuY2UuaWRsOgorICAgICAgICAqIHN2Zy9TVkdVbml0VHlwZXMuaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVktlcm5F
bGVtZW50LmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdWaWV3U3BlYy5pZGw6CisgICAgICAgICogc3ZnL1NWR1pvb21BbmRQYW4uaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdab29tRXZlbnQuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAg
ICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtlcnMvRGVkaWNh
dGVkV29ya2VyQ29udGV4dC5pZGw6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRs
OgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5pZGw6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXIuaWRsOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5pZGw6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5pZGw6CisgICAgICAgICogeG1sL0RP
TVBhcnNlci5pZGw6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFVw
bG9hZC5pZGw6CisgICAgICAgICogeG1sL1hNTFNlcmlhbGl6ZXIuaWRsOgorICAgICAgICAqIHht
bC9YUGF0aEV2YWx1YXRvci5pZGw6CisgICAgICAgICogeG1sL1hQYXRoRXhjZXB0aW9uLmlkbDoK
KyAgICAgICAgKiB4bWwvWFBhdGhFeHByZXNzaW9uLmlkbDoKKyAgICAgICAgKiB4bWwvWFBhdGhO
U1Jlc29sdmVyLmlkbDoKKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuaWRsOgorICAgICAgICAq
IHhtbC9YU0xUUHJvY2Vzc29yLmlkbDoKKyAgICAgICAgQWRkZWQgbWlzc2luZyAiOyIgYWZ0ZXIg
bW9kdWxlJ3MgIn0iLiBNb3ZlZCBleHRlbmRlZCBhdHRyaWJ1dGVzIHRvIHRoZQorICAgICAgICBs
b2NhdGlvbiBzcGVjaWZpZWQgaW4gV2ViSURMIHNwZWMuIFJlbmFtZWQgInNldHRlciByYWlzZXMi
IGFuZAorICAgICAgICAiZ2V0dGVyIHJhaXNlcyIgaW50byAic2V0cmFpc2VzIiBhbmQgImdldHJh
aXNlcyIsIGJlY2F1c2UKKyAgICAgICAgInNldHRlciByYWlzZXMiIGFuZCAiZ2V0dGVyIHJhaXNl
cyIgYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBzcGVjLgorICAgICAgICBSZW1vdmVkICIsIiBhZnRl
ciB0aGUgbGFzdCBleHRlbmRlZCBhdHRyaWJ1dGUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoUGFyc2UpOgorICAgICAg
ICBBIG1ldGhvZCB0byBzdGFydCBwYXJzaW5nIGEgSURMIGZpbGUuIEFyZ3VtZW50cyBhbmQgcmV0
dXJuIHZhbHVlcyBhcmUKKyAgICAgICAgdGhlIHNhbWUgYXMgdGhlIHByZXZpb3VzIElETFBhcnNl
ci5wbSdzIFBhcnNlIG1ldGhvZC4KKyAgICAgICAgKHRva2VuU2hvdWxkQmUpOgorICAgICAgICBP
YnRhaW5zIGEgbmV3IHRva2VuIGFuZCBjb21wYXJlcyB3aXRoIHRoZSBzcGVjaWZpZWQgdHlwZSBh
bmQgdmFsdWUuCisgICAgICAgIElmIG5vdCBtYXRjaCwgdGhyb3dzIGFuIGV4Y2VwdGlvbiBieSB1
c2luZyAiZGllIi4KKyAgICAgICAgKHRva2VuU2hvdWxkQmVJZGVudGlmaWVyKToKKyAgICAgICAg
Q2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHRva2VuIGlzIGFuIGlkZW50aWZpZXIgb3Igbm90LiBJ
ZiBub3QgYW4KKyAgICAgICAgaWRlbnRpZmllciwgdGhyb3dzIGFuIGV4Y2VwdGlvbiBieSB1c2lu
ZyAiZGllIi4KKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbnMpOgorICAgICAgICAocGFyc2VEZWZp
bml0aW9uKToKKyAgICAgICAgKHBhcnNlTm9ybWFsRGVmaW5pdGlvbik6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZSk6CisgICAgICAgIChwYXJzZVBhcnRp
YWxJbnRlcmZhY2UpOgorICAgICAgICAocGFyc2VJbmhlcml0YW5jZSk6CisgICAgICAgIFdlYklE
TCBkb2Vzbid0IHN1cHBvcnQgbXVsdGlwbGUgcGFyZW50cywgYnV0IFNWR0FsdEdseXBoRWxlbWVu
dCBoYXMgdHdvCisgICAgICAgIHBhcmVudHMsIGkuZS4gU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dCBhbmQgU1ZHVVJJUmVmZXJlbmNlLiBTbyBjaGFuZ2VzCisgICAgICAgIHRoZSBvcmlnaW5hbCBn
cmFtbWFyIHRvIHN1cHBvcnQgc3VjaCBhIElETCBmaWxlLgorICAgICAgICAocGFyc2VJbnRlcmZh
Y2VNZW1iZXJzKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNlTWVtYmVyKToKKyAgICAgICAgKHBh
cnNlRGljdGlvbmFyeSk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlNZW1iZXJzKToKKyAgICAg
ICAgKHBhcnNlRGljdGlvbmFyeU1lbWJlcik6CisgICAgICAgIChwYXJzZURlZmF1bHRWYWx1ZSk6
CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbik6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk1lbWJl
cnMpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0
YXRlbWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RFeHBy
KToKKyAgICAgICAgKHBhcnNlQm9vbGVhbkxpdGVyYWwpOgorICAgICAgICAocGFyc2VBdHRyaWJ1
dGVPck9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRlT3JPcGVy
YXRpb24pOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAocGFyc2VSZWFkT25s
eSk6CisgICAgICAgIChwYXJzZUdldCk6CisgICAgICAgIChwYXJzZUluaGVyaXRzR2V0dGVyKToK
KyAgICAgICAgKHBhcnNlR2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlU2V0UmFpc2VzKToKKyAg
ICAgICAgKHBhcnNlT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVycyk6CisgICAg
ICAgIChwYXJzZVNwZWNpYWxzKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6CisgICAgICAgIChw
YXJzZU9wZXJhdGlvblJlc3QpOgorICAgICAgICAocGFyc2VPcHRpb25hbElkZW50aWZpZXIpOgor
ICAgICAgICAocGFyc2VSYWlzZXMpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25MaXN0KToKKyAg
ICAgICAgKHBhcnNlQXJndW1lbnRMaXN0KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnRzKToKKyAg
ICAgICAgKHBhcnNlQXJndW1lbnQpOgorICAgICAgICAocGFyc2VJbik6CisgICAgICAgIChwYXJz
ZU9wdGlvbmFsKToKKyAgICAgICAgKHBhcnNlRWxsaXBzaXMpOgorICAgICAgICAocGFyc2VFeGNl
cHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVsZCk6CisgICAgICAgIChw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmli
dXRlcyk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNl
VHlwZSk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAocGFyc2VDb25z
dFR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVPclN0cmluZ1R5cGUpOgorICAgICAgICAo
cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKToKKyAgICAgICAgKHBhcnNlSW50ZWdlclR5cGUpOgor
ICAgICAgICBBZGRlZCAiaW50IiB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgV2ViSURMIHNw
ZWMsIGJlY2F1c2Ugc29tZSBvZgorICAgICAgICBJREwgZmlsZXMgdXNlICJpbnQiLCBlLmcuIFRv
dWNoLmlkbCwgQXJyYXlCdWZmZXIuaWRsLCBhbmQgc28gb24uCisgICAgICAgIChwYXJzZU9wdGlv
bmFsTG9uZyk6CisgICAgICAgIChwYXJzZVR5cGVTdWZmaXgpOgorICAgICAgICAocGFyc2VUeXBl
U3VmZml4U3RhcnRpbmdXaXRoQXJyYXkpOgorICAgICAgICAocGFyc2VOdWxsKToKKyAgICAgICAg
KHBhcnNlUmV0dXJuVHlwZSk6CisgICAgICAgIChwYXJzZVNjb3BlZE5hbWVMaXN0KToKKyAgICAg
ICAgKHBhcnNlU2NvcGVkTmFtZXMpOgorICAgICAgICAocGFyc2VTY29wZWROYW1lKToKKyAgICAg
ICAgKHBhcnNlQWJzb2x1dGVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlUmVsYXRpdmVTY29w
ZWROYW1lKToKKyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZVBhcnRzKToKKyAgICAgICAgcGFyc2VY
WFhYcyBhcmUgaW1wbGVtZW50ZWQgdG8gcGFyc2UgdGhlIGdyYW1tYXI6ICJYWFhYIi4gRm9yIGV4
YW1wbGUsCisgICAgICAgIHBhcnNlU2NvcGVkTmFtZVBhcnRzIGlzIGZvciBwYXJzaW5nIHRoZSBn
cmFtbWFyOgorICAgICAgICBbNjhdIFNjb3BlZE5hbWVQYXJ0cyA6PSAiOjoiIGlkZW50aWZpZXIg
U2NvcGVkTmFtZVBhcnRzIHwgZXBzaWxvbi4KKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGUxKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKToKKyAgICAgICAgKHBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGUzKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGU0KToK
KyAgICAgICAgVGhlc2UgYXJlIGltcGxlbWVudGVkIHRvIHBhcnNlIHRoZSByZXN0cmljdGVkICJF
eHRlbmRlZEF0dHJpYnV0ZSIsIGkuZS4KKyAgICAgICAgRXh0ZW5kZWRBdHRyaWJ1dGVOb0FyZywg
RXh0ZW5kZWRBdHRyaWJ1dGVBcmdMaXN0LAorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZU5hbWVk
QXJnTGlzdCwgRXh0ZW5kZWRBdHRyaWJ1dGVJZGVudCBhbmQKKyAgICAgICAgRXh0ZW5kZWRBdHRy
aWJ1dGVTY29wZWROYW1lLiBIb3dldmVyLCB0aGVzZSBydWxlcyBkb24ndCBzdXBwb3J0CisgICAg
ICAgICJWYWx1ZT0wIiwgIlZhbHVlPUEmQiIsIGFuZCAiVmFsdWU9QXxCIiwgYmVjYXVzZSAwLCBB
JkIsIGFuZCBBfEIgYXJlCisgICAgICAgIG5laXRoZXIgaWRlbnRpZmllcnMgbm9yIHNjb3BlZCBu
YW1lcy4gU28gbW9kaWZpZWQgdG8gc3VwcG9ydCB0aGVzZQorICAgICAgICBleHRlbmRlZCBhdHRy
aWJ1dGUuCisgICAgICAgIChhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChw
cmludFRva2VuKToKKyAgICAgICAgQWRkZWQgZm9yIGRlYnVnZ2luZy4KKyAgICAgICAgKG5leHRU
b2tlbik6CisgICAgICAgIEltcGxlbWVudGVkIHRvIHNlZSBhIG5leHQgdG9rZW4sIGJlY2F1c2Ug
b2YgTEwoMSkuCisgICAgICAgIChnZXRUb2tlbik6CisgICAgICAgIFJldHVybnMgY3VycmVudCB0
b2tlbiwgYW5kIHVwZGF0ZSBuZXh0IGFuZCBjdXJyZW50IHRva2VuLgorICAgICAgICAoZ2V0VG9r
ZW5JbnRlcm5hbCk6CisgICAgICAgIEV4dHJhY3RzIGEgdG9rZW4gYnkgcGFyc2luZyBpbnB1dCBk
b2N1bWVudCBjb250ZW50LgorICAgICAgICAoZ2V0SW50ZWdlclRva2VuKToKKyAgICAgICAgUGFy
c2VzIGFuZCByZXR1cm5zIGludGVnZXIgdG9rZW4gaWYgaW5wdXQgY2hhcmFjdGVycyBtYXRjaCAi
aW50ZWdlciIKKyAgICAgICAgcGF0dGVybiwgaS5lLiAiLT8oMChbMC03XSp8W1h4XVswLTlBLUZh
LWZdKyl8WzEtOV1bMC05XSopIi4KKyAgICAgICAgKGdldEZsb2F0VHlwZTJUb2tlbik6CisgICAg
ICAgIFBhcnNlcyBhbmQgcmV0dXJucyBmbG9hdCB0b2tlbiBpZiBpbnB1dCBjaGFyYWN0ZXJzIG1h
dGNoICJmbG9hdCIKKyAgICAgICAgcGF0dGVybiwgaS5lLiAiLT9bMC05XStbRWVdWystXT9bMC05
XSsiLgorICAgICAgICAoZ2V0RmxvYXRUb2tlbik6CisgICAgICAgIFBhcnNlcyBhbmQgcmV0dXJu
cyBmbG9hdCB0b2tlbiBpZiBpbnB1dCBjaGFyYWN0ZXJzIG1hdGNoICJmbG9hdCIKKyAgICAgICAg
cGF0dGVybiwgaS5lLiAiLT8oWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bKy1d
P1swLTldKyk/Ii4KKyAgICAgICAgQXMgaW50ZWdlciBwYXR0ZXJuIGFuZCBmbG9hdCBwYXR0ZXJu
cyBjYW4gaGF2ZSB0aGUgc2FtZSBwcmVmaXgsCisgICAgICAgIGkuZS4gIi0/WzAtN10rIiwgZmly
c3RseSB0cnkgZmxvYXQgcGF0dGVybnMuIElmIG5vdCBtYXRjaCBmbG9hdAorICAgICAgICBwYXR0
ZXJucywgdHJ5IGludGVnZXIgcGF0dGVybi4gSWYgZmlyc3RseSB0cnkgaW50ZWdlciBwYXR0ZXJu
LAorICAgICAgICAiLTAwMDEuIiBpcyB0cmVhdGVkIGFzIGludGVnZXI6Ii0wMDAxIiBhbmQgb3Ro
ZXI6Ii4iLCBidXQgc2hvdWxkIGJlCisgICAgICAgIHRyZWF0IGFzIGZsb2F0OiItMDAwMS4iLgor
ICAgICAgICAoZ2V0Q2hhcik6CisgICAgICAgIE9idGFpbnMgb25lIG1vcmUgY2hhcmFjdGVyIGZy
b20gdGhlIHNwZWNpZmllZCBkb2N1bWVudCBjb250ZW50LgorICAgICAgICAodW5nZXRDaGFyKToK
KyAgICAgICAgUHVzaCBiYWNrIGEgc2luZ2xlIGNoYXJhY3RlciB0byByZWFkIGJ1ZmZlci4gU28g
Z2V0Q2hhciByZXR1cm5zIHRoZQorICAgICAgICBjaGFyYWN0ZXIgYXQgdGhlIG5leHQgaW52b2tl
ZCB0aW1lLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bik6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2Vw
dGlvbik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRo
X2dldHRlcl9leGNlcHRpb24pOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0
aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2Vz
KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgt
W0RPTVRlc3RPYmogc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgtW0RP
TVRlc3RPYmogc2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgt
W0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzOl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXM6XSk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOElu
dGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKToKKyAg
ICAgICAgVXBkYXRlZCByZWZlcmVuY2UgZmlsZXMgdXNlZCBieSBydW4tYmluZGluZy10ZXN0cywg
YmVjYXVzZSB0aGVzZQorICAgICAgICBtZXRob2QgZG9lc24ndCByYWlzZSBhbnkgc2V0dGVyIGV4
Y2VwdGlvbnMsIGJ1dCBnZW5lcmF0ZWQgY29kZXMKKyAgICAgICAgZXhwZWN0IHNldHRlciBleGNl
cHRpb25zLgorCiAyMDEyLTA3LTA0ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIEFkZCB2aXJ0dWFsIGtleXdvcmQgdG8gfkJpdG1hcEltYWdlIGFu
ZCB+U3RpbGxJbWFnZSBiZWNhdXNlIH5JbWFnZSBpcyB2aXJ0dWFsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5pZGwKaW5kZXggZTU1MmRmMzZl
ZGUzYzFjMzYxN2MyMTc3ZGY1OWIzMWNhZTk3ZWRiMy4uYzM5NDRmY2M4NjljNzliZTE2YWNjN2Vh
NjYzYzVjMjhmMGQ1NmJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0
ZXJ5L0JhdHRlcnlNYW5hZ2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRl
cnkvQmF0dGVyeU1hbmFnZXIuaWRsCkBAIC0yMCwxMSArMjAsMTEgQEAKIG1vZHVsZSB3aW5kb3cg
ewogCiAgICAgLy8gaHR0cDovL2Rldi53My5vcmcvMjAwOS9kYXAvc3lzdGVtLWluZm8vYmF0dGVy
eS1zdGF0dXMuaHRtbAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1CQVRURVJZX1NUQVRVUywKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBFdmVu
dFRhcmdldAotICAgICBdIEJhdHRlcnlNYW5hZ2VyIHsKKyAgICAgXSBpbnRlcmZhY2UgQmF0dGVy
eU1hbmFnZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjaGFyZ2luZzsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBjaGFyZ2luZ1RpbWU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOwpAQCAtMzgsMTMgKzM4
LDEzIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UK
ICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1
c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmlu
ZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5l
ciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNw
YXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlv
bik7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9iYXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9i
YXR0ZXJ5L05hdmlnYXRvckJhdHRlcnkuaWRsCmluZGV4IDVjMjE0NzI3NGY5NDRhNWMwZDk4OGIw
ZjczMmUxNmNiYjJjODhhNTIuLjg1ZGZhYTEwNTVkNDYyNGU4NzRkMzVkZWRiZjM2ZmNmM2UwM2I0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9OYXZpZ2F0b3JC
YXR0ZXJ5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvTmF2aWdhdG9y
QmF0dGVyeS5pZGwKQEAgLTE5LDEyICsxOSwxMiBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1CQVRURVJZX1NUQVRVUywK
ICAgICAgICAgU3VwcGxlbWVudGFsPU5hdmlnYXRvcgotICAgIF0gTmF2aWdhdG9yQmF0dGVyeSB7
CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yQmF0dGVyeSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBCYXR0ZXJ5TWFuYWdlciB3ZWJraXRCYXR0ZXJ5OwogICAgIH07CiAKLX0KK307CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lz
dGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVt
LmlkbAppbmRleCAyZTk4ZmJmOTM3MzNkYzUyMjkyMWFlZjg2OTljZWM2NjkzMGIxMDc1Li4wZDI1
NzZlNWUyOTI0MzczZjhmZGJmZGU5MDM1MWMxYzNhZWI4MmI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NRmlsZVN5c3RlbS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW0uaWRsCkBAIC0zMCwxMiAr
MzAsMTIgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBBY3RpdmVET01PYmpl
Y3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERPTUZpbGVTeXN0ZW0geworICAg
IF0gaW50ZXJmYWNlIERPTUZpbGVTeXN0ZW0gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEaXJlY3RvcnlFbnRy
eSByb290OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtL0RPTUZpbGVTeXN0ZW1TeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbS9ET01GaWxlU3lzdGVtU3luYy5pZGwKaW5kZXggNzA2YWE1MDI3NmY1MDQy
Y2RkNzFmMDk0ZTg4Zjc3MDg5OTRjYjg1ZC4uMTVjZDdhYWQ5NDcwMmNlYmE1NjE3NDZlZjUyZWVi
OTljMWY0YWU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RPTUZpbGVTeXN0ZW1TeW5jLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRE9NRmlsZVN5c3RlbVN5bmMuaWRsCkBAIC0yOSwxMSArMjksMTEgQEAKICAqLwogCiBt
b2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBET01GaWxl
U3lzdGVtU3luYyB7CisgICAgXSBpbnRlcmZhY2UgRE9NRmlsZVN5c3RlbVN5bmMgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEaXJlY3RvcnlFbnRyeVN5bmMgcm9vdDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lzdGVt
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9ET01XaW5kb3dGaWxlU3lz
dGVtLmlkbAppbmRleCBiNmVmNTEzMTk2YWFkYjY4MmExM2Y0YjVhNDlhYjM3ZDJjNjhlMTM4Li41
N2I1MzVlYWUxMDQwNWYyNDhhZjY0ODEyMDcxMDVlNWU3MjA4NDQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRE9NV2luZG93RmlsZVN5c3RlbS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RPTVdpbmRvd0ZpbGVTeXN0ZW0u
aWRsCkBAIC0yNiwxNyArMjYsMTcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIFN1
cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd0ZpbGVTeXN0ZW0geworICAgIF0g
aW50ZXJmYWNlIERPTVdpbmRvd0ZpbGVTeXN0ZW0gewogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBURU1QT1JBUlkgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJTSVNU
RU5UID0gMTsKIAogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVTeXN0ZW1dIHZvaWQg
d2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oaW4gdW5zaWduZWQgc2hvcnQgdHlwZSwgaW4gbG9uZyBs
b25nIHNpemUsCi0gICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrXSBGaWxlU3lzdGVtQ2FsbGJh
Y2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBFcnJvckNhbGxiYWNr
IGVycm9yQ2FsbGJhY2spOworICAgICAgICAgICAgICAgIFtDYWxsYmFja10gaW4gRmlsZVN5c3Rl
bUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gRXJyb3JD
YWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxl
U3lzdGVtXSB2b2lkIHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoaW4gRE9NU3RyaW5n
IHVybCwKLSAgICAgICAgICAgICAgICBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBFbnRyeUNhbGxi
YWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRXJyb3JDYWxsYmFj
ayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBp
biBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4g
RXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RhdGFUcmFuc2Zlckl0ZW1GaWxl
U3lzdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EYXRhVHJhbnNm
ZXJJdGVtRmlsZVN5c3RlbS5pZGwKaW5kZXggMWM1MGRiNDIwZmJjNGZmMTI1NDIzZDM2ZDQxYmEx
Y2Y1ZTQxZTVmYS4uMThkMGY0NmE3ZDc5NmQ1NzY1OTI5ZDk2Y2IyM2JhYzJhNDA4M2YxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RhdGFUcmFuc2Zlckl0
ZW1GaWxlU3lzdGVtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RGF0YVRyYW5zZmVySXRlbUZpbGVTeXN0ZW0uaWRsCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogbW9k
dWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PURBVEFfVFJBTlNGRVJfSVRFTVMmRklMRV9TWVNURU0sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1E
YXRhVHJhbnNmZXJJdGVtCi0gICAgXSBEYXRhVHJhbnNmZXJJdGVtRmlsZVN5c3RlbSB7CisgICAg
XSBpbnRlcmZhY2UgRGF0YVRyYW5zZmVySXRlbUZpbGVTeXN0ZW0gewogICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gRW50cnkgd2Via2l0R2V0QXNFbnRyeSgpOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW0vRGlyZWN0b3J5RW50cnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
L0RpcmVjdG9yeUVudHJ5LmlkbAppbmRleCBjNmM5YWU5YmIxOGM0YzdjNmEzNmVkOGJhMzdiYzVk
MzA0Mjc2MjA4Li44YTYwOWU4ZDRmZmNmZmE2MDAwZTFiOWI2YzViOTQzMTQ4MWVmMWE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RW50cnku
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRy
eS5pZGwKQEAgLTI5LDE1ICsyOSwxNSBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAg
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERpcmVjdG9yeUVudHJ5IDogRW50
cnkgeworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeUVudHJ5IDogRW50cnkgewogICAgICAgICBE
aXJlY3RvcnlSZWFkZXIgY3JlYXRlUmVhZGVyKCk7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0
RmlsZShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgcGF0aCwgaW4gW09wdGlvbmFsXSBXZWJLaXRGbGFncyBmbGFncywgaW4g
W09wdGlvbmFsLCBDYWxsYmFja10gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtP
cHRpb25hbCwgQ2FsbGJhY2tdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7Ci0gICAgICAg
IFtDdXN0b21dIHZvaWQgZ2V0RGlyZWN0b3J5KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBU
cmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBwYXRoLCBpbiBbT3B0aW9uYWxd
IFdlYktpdEZsYWdzIGZsYWdzLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNhbGxiYWNr
IHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrKTsKLSAgICAgICAgdm9pZCByZW1vdmVSZWN1cnNpdmVseShpbiBbQ2FsbGJh
Y2tdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25hbCwgQ2FsbGJhY2td
IEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgZ2V0
RmlsZShbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5n
XSBpbiBET01TdHJpbmcgcGF0aCwgW09wdGlvbmFsXSBpbiBXZWJLaXRGbGFncyBmbGFncywgW09w
dGlvbmFsLCBDYWxsYmFja10gaW4gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIFtPcHRp
b25hbCwgQ2FsbGJhY2tdIGluIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAg
IFtDdXN0b21dIHZvaWQgZ2V0RGlyZWN0b3J5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVh
dFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBwYXRoLCBbT3B0aW9uYWxdIGlu
IFdlYktpdEZsYWdzIGZsYWdzLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBFbnRyeUNhbGxiYWNr
IHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCByZW1vdmVSZWN1cnNpdmVseShbQ2FsbGJhY2td
IGluIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIFtPcHRpb25hbCwgQ2FsbGJhY2tdIGlu
IEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5RW50cnlTeW5jLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRyeVN5bmMu
aWRsCmluZGV4IDY2YzI4OGZiYmM1YTJjZWEyYzgzYTVhNTEzMzY3ZDYzNjlkODc0MDUuLmEwMGUw
YWRhNTgxYzdiNWI4YmU2MGEyNmYxOGZiN2FlZmMyY2E3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRyeVN5bmMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlFbnRyeVN5bmMuaWRsCkBA
IC0yOSwxNSArMjksMTUgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAg
ICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBEaXJlY3RvcnlFbnRyeVN5bmMgOiBFbnRyeVN5
bmMgeworICAgIF0gaW50ZXJmYWNlIERpcmVjdG9yeUVudHJ5U3luYyA6IEVudHJ5U3luYyB7CiAg
ICAgICAgIERpcmVjdG9yeVJlYWRlclN5bmMgY3JlYXRlUmVhZGVyKCkgcmFpc2VzIChGaWxlRXhj
ZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gRmlsZUVudHJ5U3luYyBnZXRGaWxlKGluIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBwYXRoLCBpbiBXZWJLaXRGbGFncyBmbGFncykgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKLSAg
ICAgICAgW0N1c3RvbV0gRGlyZWN0b3J5RW50cnlTeW5jIGdldERpcmVjdG9yeShpbiBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
cGF0aCwgaW4gV2ViS2l0RmxhZ3MgZmxhZ3MpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CisgICAg
ICAgIFtDdXN0b21dIEZpbGVFbnRyeVN5bmMgZ2V0RmlsZShbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgcGF0aCwgaW4gV2Vi
S2l0RmxhZ3MgZmxhZ3MpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b21d
IERpcmVjdG9yeUVudHJ5U3luYyBnZXREaXJlY3RvcnkoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHBhdGgsIGluIFdlYktp
dEZsYWdzIGZsYWdzKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlbW92
ZVJlY3Vyc2l2ZWx5KCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFk
ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRl
ci5pZGwKaW5kZXggODdjZTg1MjFkZTg1M2NlNWQ1MDQ3ZmM3ZDNmNjUzMmRjN2ZiNDg4ZS4uYmMw
MjZmYmI2OTRhMzU3NTRiZTg1MjAxMWZjNTI1OTIxZDI5ZmUzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRlci5pZGwKQEAgLTI5
LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIEpTTm9TdGF0
aWNUYWJsZXMKLSAgICBdIERpcmVjdG9yeVJlYWRlciB7Ci0gICAgICAgIHZvaWQgcmVhZEVudHJp
ZXMoaW4gW0NhbGxiYWNrXSBFbnRyaWVzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0
aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgIF0gaW50
ZXJmYWNlIERpcmVjdG9yeVJlYWRlciB7CisgICAgICAgIHZvaWQgcmVhZEVudHJpZXMoW0NhbGxi
YWNrXSBpbiBFbnRyaWVzQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9uYWwsIENhbGxi
YWNrXSBpbiBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJlYWRl
clN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0RpcmVjdG9yeVJl
YWRlclN5bmMuaWRsCmluZGV4IGE4ZmY2ODVjZWU1ODNlOWZlMjdmYzJlYjcxNjBmNjFiZTkwMjg2
MjEuLmQyOTAyOGY1YzkyZmM4YTViMjdkMWRhMmYyYTQxY2ZjZjQwZTZhZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9EaXJlY3RvcnlSZWFkZXJTeW5jLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRGlyZWN0b3J5UmVhZGVy
U3luYy5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAg
ICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIERpcmVjdG9yeVJlYWRlclN5bmMgeworICAg
IF0gaW50ZXJmYWNlIERpcmVjdG9yeVJlYWRlclN5bmMgewogICAgICAgICBFbnRyeUFycmF5U3lu
YyByZWFkRW50cmllcygpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cmllc0NhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyaWVzQ2FsbGJh
Y2suaWRsCmluZGV4IDczYjM3NGQ3OTI4ZWU0ODA2NjJlYzM5YzMzYzliMWYwNGU4NjgxMzcuLjg4
NjExYThlNDdhMTcwMTU3OWQxNTI1OTZjOTNkMDY0N2VhY2U5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyaWVzQ2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyaWVzQ2FsbGJhY2suaWRsCkBAIC0y
OSwxMCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBDYWxsYmFj
awotICAgIF0gRW50cmllc0NhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBFbnRyaWVzQ2FsbGJh
Y2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEVudHJ5QXJyYXkgZW50cmllcyk7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRW50cnkuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5
LmlkbAppbmRleCBjNmNkYmE1YmQ4YjBjYmVlY2VkZWI0ODc0OGU0NzRmZjE0YWNmODc5Li4wZDUx
NGQ4YmQyZTBlNzUwM2YwM2ZjNmEzZjcxZTJlM2M5NDJmMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeS5pZGwKQEAgLTI5LDIyICsyOSwyMiBAQAogICovCiAK
IG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEpT
Tm9TdGF0aWNUYWJsZXMKLSAgICBdIEVudHJ5IHsKKyAgICBdIGludGVyZmFjZSBFbnRyeSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRmlsZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gaXNEaXJlY3Rvcnk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBmdWxsUGF0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUZpbGVTeXN0ZW0gZmls
ZXN5c3RlbTsKIAotICAgICAgICB2b2lkIGdldE1ldGFkYXRhKGluIFtDYWxsYmFja10gTWV0YWRh
dGFDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIEVycm9y
Q2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7Ci0gICAgICAgIHZvaWQgbW92ZVRvKGluIERpcmVjdG9y
eUVudHJ5IHBhcmVudCwgaW4gW09wdGlvbmFsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVh
dFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lLCBpbiBbT3B0aW9uYWwsIENh
bGxiYWNrXSBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxs
YmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICAgICAgdm9pZCBjb3B5VG8o
aW4gRGlyZWN0b3J5RW50cnkgcGFyZW50LCBpbiBbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxT
dHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWUsIGluIFtP
cHRpb25hbCwgQ2FsbGJhY2tdIEVudHJ5Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBbT3B0
aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICB2
b2lkIGdldE1ldGFkYXRhKFtDYWxsYmFja10gaW4gTWV0YWRhdGFDYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2ssIFtPcHRpb25hbCwgQ2FsbGJhY2tdIGluIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
ayk7CisgICAgICAgIHZvaWQgbW92ZVRvKGluIERpcmVjdG9yeUVudHJ5IHBhcmVudCwgW09wdGlv
bmFsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmdd
IGluIERPTVN0cmluZyBuYW1lLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBFbnRyeUNhbGxiYWNr
IHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCBjb3B5VG8oaW4gRGlyZWN0b3J5RW50cnkgcGFy
ZW50LCBbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9
TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIG5hbWUsIFtPcHRpb25hbCwgQ2FsbGJhY2tdIGluIEVu
dHJ5Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBFcnJv
ckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBET01TdHJpbmcgdG9VUkwoKTsKLSAg
ICAgICAgdm9pZCByZW1vdmUoaW4gW0NhbGxiYWNrXSBWb2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxi
YWNrLCBpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2sp
OwotICAgICAgICB2b2lkIGdldFBhcmVudChpbiBbT3B0aW9uYWwsIENhbGxiYWNrXSBFbnRyeUNh
bGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgdm9pZCByZW1vdmUoW0NhbGxiYWNrXSBpbiBW
b2lkQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9uYWwsIENhbGxiYWNrXSBpbiBFcnJv
ckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOworICAgICAgICB2b2lkIGdldFBhcmVudChbT3B0aW9u
YWwsIENhbGxiYWNrXSBpbiBFbnRyeUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW09wdGlvbmFs
LCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFy
cmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFycmF5Lmlk
bAppbmRleCAzMjRkYmM2OGIwNDhlY2Y4ZWMyNWIzMDZjYzcwODQ5MDQ1NmY5NjM4Li44YzE2NjE4
YzQzOTJkYjE3MTg4OTU2ZDg3NTg2NTM2YTFiNjgwMzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5QXJyYXkuaWRsCkBAIC0yOSwxMiArMjksMTIgQEAK
ICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAg
ICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBFbnRyeUFycmF5IHsKKyAgICBdIGludGVyZmFjZSBF
bnRyeUFycmF5IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwotICAgICAgICBFbnRyeSBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4
KTsKKyAgICAgICAgRW50cnkgaXRlbShbSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRW50cnlBcnJheVN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0VudHJ5QXJyYXlTeW5jLmlkbAppbmRleCAyMjRhNjhhMjRlOTk2Zjk1NDNhMTBiZTRkMmZi
NDEwYmNmMzBiMTQwLi4zMzViYzY2MzczNjg3Y2ZmYjU1ZDQ2Y2FjYWZmNzU3OGQxMjA2MzJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlBcnJheVN5
bmMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUFycmF5
U3luYy5pZGwKQEAgLTI5LDEyICsyOSwxMiBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAg
ICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIEVu
dHJ5QXJyYXlTeW5jIHsKKyAgICBdIGludGVyZmFjZSBFbnRyeUFycmF5U3luYyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgRW50cnlT
eW5jIGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBFbnRy
eVN5bmMgaXRlbShbSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlD
YWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRW50cnlDYWxs
YmFjay5pZGwKaW5kZXggYmVhM2ZkMTQ3MGVkMGM3YzA0YjliMTFlMmM2MTA1Y2RmZjlhNGE3OS4u
ODA0NThhYzIwNzNhNTEzNmFmZjEzMTFkZTNkYzMzMmUyNTZhMzRhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5Q2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeUNhbGxiYWNrLmlkbApAQCAtMjks
MTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2UgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAgICAgICAgQ2FsbGJhY2sK
LSAgICBdIEVudHJ5Q2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEVudHJ5Q2FsbGJhY2sgewog
ICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEVudHJ5IGVudHJ5KTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FbnRyeVN5
bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwK
aW5kZXggY2Q0YmFlN2RlNjljNGRmNzMyZTc2MzM1NTZjZjYwMWNlMTQ0YjY4Ni4uNTI5ODI3M2Mx
MGMxMDE5NzgzMGU0YmE3YTA3NzM3MzM3MzI0MDI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtL0VudHJ5U3luYy5pZGwKQEAgLTI5LDExICsyOSwxMSBAQAogICov
CiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAg
IEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIEVudHJ5U3luYyB7CisgICAgXSBpbnRlcmZhY2UgRW50
cnlTeW5jIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNGaWxlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0RpcmVjdG9yeTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwpAQCAtNDEsMTAgKzQxLDEwIEBAIG1vZHVs
ZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTUZpbGVTeXN0ZW1TeW5j
IGZpbGVzeXN0ZW07CiAKICAgICAgICAgTWV0YWRhdGEgZ2V0TWV0YWRhdGEoKSByYWlzZXMgKEZp
bGVFeGNlcHRpb24pOwotICAgICAgICBFbnRyeVN5bmMgbW92ZVRvKGluIERpcmVjdG9yeUVudHJ5
U3luYyBwYXJlbnQsIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmddIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwotICAg
ICAgICBFbnRyeVN5bmMgY29weVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIGluIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0
cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOworICAgICAgICBFbnRyeVN5bmMgbW92
ZVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMg
KEZpbGVFeGNlcHRpb24pOworICAgICAgICBFbnRyeVN5bmMgY29weVRvKGluIERpcmVjdG9yeUVu
dHJ5U3luYyBwYXJlbnQsIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFz
PU51bGxTdHJpbmddIGluIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwog
ICAgICAgICBET01TdHJpbmcgdG9VUkwoKTsKICAgICAgICAgdm9pZCByZW1vdmUoKSByYWlzZXMg
KEZpbGVFeGNlcHRpb24pOwogICAgICAgICBEaXJlY3RvcnlFbnRyeVN5bmMgZ2V0UGFyZW50KCk7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW0vRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggZmM3ZmE4NWM0MDU4MjhhZjcyNzI5NWZlZDZmNjYw
MDAyOTQ4Zjc4OC4uOTA1ODU1M2MyZjU5YTBkOWNmZGUwNTRiYjYzNzU3ZDlhYWMzOGNiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0Vycm9yQ2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9FcnJvckNhbGxiYWNr
LmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2UgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAgICAg
ICAgQ2FsbGJhY2sKLSAgICBdIEVycm9yQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEVycm9y
Q2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEZpbGVFcnJvciBlcnJv
cik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vRmlsZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbS9GaWxlQ2FsbGJhY2suaWRsCmluZGV4IDBhYjgxNGZlZDlmMDkzNDcyOWE1MjNlY2JlOTUw
NDIyMzU2M2QzN2UuLjAzNzQzMWZlYzNmNTBmNzU4MmE3NzVlZTQ2YTMyOGFiOTU1ODM1MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlQ2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlQ2FsbGJhY2su
aWRsCkBAIC0yOSwxMCArMjksMTAgQEAKICAqLwogCiBtb2R1bGUgZmlsZWFwaSB7Ci0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAg
ICBDYWxsYmFjawotICAgIF0gRmlsZUNhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBGaWxlQ2Fs
bGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEZpbGUgZmlsZSk7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0v
RmlsZUVudHJ5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50
cnkuaWRsCmluZGV4IDYzYjAwNDA1MDNiNWQ0ZmNjMjc5ZjE0NGZjNTA4ODM1ODM0MmFiYjguLmM0
ZDk4YTY5NGI2NzkyNzlmNzA0NDZhYmYyZWIzNWQ4MDRmNGM2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnkuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlRW50cnkuaWRsCkBAIC0yOSwxMyArMjksMTMg
QEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVP
YmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAogICAgICAgICBKU05vU3RhdGlj
VGFibGVzCi0gICAgXSBGaWxlRW50cnkgOiBFbnRyeSB7Ci0gICAgICAgIHZvaWQgY3JlYXRlV3Jp
dGVyKGluIFtDYWxsYmFja10gRmlsZVdyaXRlckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4g
W09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKLSAgICAg
ICAgdm9pZCBmaWxlKGluIFtDYWxsYmFja10gRmlsZUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywg
aW4gW09wdGlvbmFsLCBDYWxsYmFja10gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAg
ICBdIGludGVyZmFjZSBGaWxlRW50cnkgOiBFbnRyeSB7CisgICAgICAgIHZvaWQgY3JlYXRlV3Jp
dGVyKFtDYWxsYmFja10gaW4gRmlsZVdyaXRlckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgW09w
dGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAg
ICAgdm9pZCBmaWxlKFtDYWxsYmFja10gaW4gRmlsZUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywg
W09wdGlvbmFsLCBDYWxsYmFja10gaW4gRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bS9GaWxlRW50cnlTeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9G
aWxlRW50cnlTeW5jLmlkbAppbmRleCA4YWM0MGJhYTJkOWRkYmJjZjEzYzUxYjdiZmNiMzMzZjJl
NTNjZGZmLi4yNWFlOWI5ZmIwY2UzYmJmOGMzMzE5NzliMjdhZTkzZWM2YTNkYWFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZUVudHJ5U3luYy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVFbnRyeVN5bmMuaWRs
CkBAIC0yOSwxMyArMjksMTMgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAgICAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAog
ICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBGaWxlRW50cnlTeW5jIDogRW50cnlTeW5j
IHsKKyAgICBdIGludGVyZmFjZSBGaWxlRW50cnlTeW5jIDogRW50cnlTeW5jIHsKICAgICAgICAg
RmlsZSBmaWxlKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICAgICAgRmlsZVdyaXRlclN5
bmMgY3JlYXRlV3JpdGVyKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlU3lzdGVt
Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVTeXN0
ZW1DYWxsYmFjay5pZGwKaW5kZXggY2Y2ODZmZjFiZjVmZDA4ODNiYTY4MjQxMjNlZDYzMDE4MGZk
M2UyMC4uYWZkOTY0MDA2NTdhY2NiMWJkM2NkZTQyMmU5YzBiNGEzYWY0ZTc1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVTeXN0ZW1DYWxsYmFjay5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVTeXN0ZW1DYWxs
YmFjay5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNURU0sCiAg
ICAgICAgIENhbGxiYWNrCi0gICAgXSBGaWxlU3lzdGVtQ2FsbGJhY2sgeworICAgIF0gaW50ZXJm
YWNlIEZpbGVTeXN0ZW1DYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4g
RE9NRmlsZVN5c3RlbSBmaWxlU3lzdGVtKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyLmlkbAppbmRleCA3NTRmYTBmMTRi
MjI2ZjJkMWRkYTdlNDExZGM0YWU2ZjYyNzAyZGRiLi5jN2VjMjUzMjc3ZWQ3ODY2MTZmZGFiOWUx
N2ZmNGRjYmY3ZjU2NTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vRmlsZVdyaXRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0ZpbGVXcml0ZXIuaWRsCkBAIC0zMCwxMyArMzAsMTMgQEAKICAqLwogCiBtb2R1bGUgaHRt
bCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lT
VEVNLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIENhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBKU05vU3RhdGlj
VGFibGVzCi0gICAgXSBGaWxlV3JpdGVyIHsKKyAgICBdIGludGVyZmFjZSBGaWxlV3JpdGVyIHsK
ICAgICAgICAgLy8gcmVhZHkgc3RhdGVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IElO
SVQgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBXUklUSU5HID0gMTsKQEAgLTY0
LDExICs2NCwxMSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVy
ZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNh
cHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29s
ZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9N
U3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFu
IGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhj
ZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKaW5kZXggZGY4MmZlZDhkODRi
ZWMxNTQyZmE3N2Y2MTgwY2QxYjQ4ZDlkODYxZC4uOTk4MTI0Y2M0NDI5YmJmYTIzY2FjZTMzYzI2
MGJjNjgyYzZmY2U1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtL0ZpbGVXcml0ZXJDYWxsYmFjay5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICov
CiAKIG1vZHVsZSBmaWxlYXBpIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9RklMRV9TWVNURU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBGaWxlV3JpdGVy
Q2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEZpbGVXcml0ZXJDYWxsYmFjayB7CiAgICAgICAg
IGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRmlsZVdyaXRlciBmaWxlV3JpdGVyKTsKICAgICB9Owot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxl
V3JpdGVyU3luYy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vRmlsZVdy
aXRlclN5bmMuaWRsCmluZGV4IDU3Y2QyNTY3Y2IxN2RkZTM4YzAzZGNhNjM3NTAyOWRjYzM0MzEw
NGMuLjhiYmFiMzAzMGVkZmQyYzJjMDkzMWY5ZjEzN2I4M2IxMTM5MDQyOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9GaWxlV3JpdGVyU3luYy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0ZpbGVXcml0ZXJTeW5jLmlkbApA
QCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAgICAgICAgSlNOb1N0
YXRpY1RhYmxlcwotICAgIF0gRmlsZVdyaXRlclN5bmMgeworICAgIF0gaW50ZXJmYWNlIEZpbGVX
cml0ZXJTeW5jIHsKICAgICAgICAgLy8gc3luY2hyb25vdXMgd3JpdGUvbW9kaWZ5IG1ldGhvZHMK
ICAgICAgICAgdm9pZCB3cml0ZShpbiBCbG9iIGRhdGEpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgc2VlayhpbiBsb25nIGxvbmcgcG9zaXRpb24pIHJhaXNlcyAoRmlsZUV4
Y2VwdGlvbik7CkBAIC00MSw0ICs0MSw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgbG9uZyBwb3NpdGlvbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgbG9uZyBsZW5ndGg7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vSFRNTElucHV0RWxlbWVudEZpbGVTeXN0ZW0uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL0hUTUxJbnB1dEVsZW1lbnRGaWxl
U3lzdGVtLmlkbAppbmRleCBkMWMxMGE0ZmJmZDEwMTlhZjlkNWU0NWQxMGMwNTMxYTFmZDQzYmY2
Li41ZTc1MmMyNDQzYjA2ODFmZjg4N2NiNjM0NzJiNjM4ZjFhMWNiYWJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vSFRNTElucHV0RWxlbWVudEZpbGVTeXN0
ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9IVE1MSW5wdXRF
bGVtZW50RmlsZVN5c3RlbS5pZGwKQEAgLTMwLDEyICszMCwxMiBAQAogCiBtb2R1bGUgY29yZSB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RklMRV9TWVNU
RU0sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1IVE1MSW5wdXRFbGVtZW50Ci0gICAgXSBIVE1MSW5w
dXRFbGVtZW50RmlsZVN5c3RlbSB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFi
bGVkQXRSdW50aW1lPUZpbGVTeXN0ZW0sQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
RW50cnlBcnJheSB3ZWJraXRFbnRyaWVzOworICAgIF0gaW50ZXJmYWNlIEhUTUxJbnB1dEVsZW1l
bnRGaWxlU3lzdGVtIHsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxlU3lzdGVtLENh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbnRyeUFy
cmF5IHdlYmtpdEVudHJpZXM7CiAgICAgfTsKIAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL01ldGFkYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbS9NZXRhZGF0YS5pZGwKaW5kZXggY2VhZjIxYjVhZTFmMWMxOGZl
Yzc1MDcxZTJkMTliYmJhYThjZGE4Zi4uMGM5MGViMDMxYTY3YWY2YzQ3NDJiOTkzMjY0Y2Q1NDBm
MGIwZTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL01l
dGFkYXRhLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vTWV0YWRh
dGEuaWRsCkBAIC0yOSwxMSArMjksMTEgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUZJTEVfU1lTVEVNLAogICAg
ICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBNZXRhZGF0YSB7CisgICAgXSBpbnRlcmZhY2Ug
TWV0YWRhdGEgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRGF0ZSBtb2RpZmljYXRpb25U
aW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW0vTWV0YWRhdGFDYWxsYmFjay5pZGwKaW5kZXggNDRjYTE4MDU0MjBhNmFlMDU0ZmI0MWQ4
NjhkM2ZmMDE1NzRkZmMzMy4uZGE2ODQxYjg5M2VjZGFhZmEzNmFkMDEwMGE4NmI3NDA0NmViYzVi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL01ldGFkYXRh
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9NZXRh
ZGF0YUNhbGxiYWNrLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3Jh
Z2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZ
U1RFTSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE1ldGFkYXRhQ2FsbGJhY2sgeworICAgIF0g
aW50ZXJmYWNlIE1ldGFkYXRhQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50
KGluIE1ldGFkYXRhIG1ldGFkYXRhKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW0vV29ya2VyQ29udGV4dEZpbGVTeXN0
ZW0uaWRsCmluZGV4IGNiOWMzMjg0OTcwZTZkMGM1YzllNWE0NmI1NDExMWM4NzkwZjczMDUuLjJh
ZDIyODFjMzhlZDM5NjNiZDlmODU3MDVjZmQ3Yzg5NmQzYjY1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbS9Xb3JrZXJDb250ZXh0RmlsZVN5c3RlbS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtL1dvcmtlckNvbnRleHRGaWxl
U3lzdGVtLmlkbApAQCAtMjYsMjAgKzI2LDIwIEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1GSUxFX1NZU1RFTSwKICAg
ICAgICAgU3VwcGxlbWVudGFsPVdvcmtlckNvbnRleHQKLSAgICBdIFdvcmtlckNvbnRleHRGaWxl
U3lzdGVtIHsKKyAgICBdIGludGVyZmFjZSBXb3JrZXJDb250ZXh0RmlsZVN5c3RlbSB7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFBFUlNJU1RFTlQgPSAxOwogCi0gICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRp
bWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXF1ZXN0RmlsZVN5c3RlbShpbiB1bnNpZ25lZCBz
aG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRmls
ZVN5c3RlbUNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0g
RXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZT1GaWxlU3lzdGVtXSB2b2lkIHdlYmtpdFJlcXVlc3RGaWxlU3lzdGVtKGluIHVuc2lnbmVkIHNo
b3J0IHR5cGUsIGluIGxvbmcgbG9uZyBzaXplLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBGaWxl
U3lzdGVtQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBF
cnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1l
PUZpbGVTeXN0ZW1dIERPTUZpbGVTeXN0ZW1TeW5jIHdlYmtpdFJlcXVlc3RGaWxlU3lzdGVtU3lu
YyhpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLCBpbiBsb25nIGxvbmcgc2l6ZSkgcmFpc2VzIChGaWxl
RXhjZXB0aW9uKTsKLSAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxlU3lzdGVtXSB2b2lk
IHdlYmtpdFJlc29sdmVMb2NhbEZpbGVTeXN0ZW1VUkwoaW4gRE9NU3RyaW5nIHVybCwgaW4gW0Nh
bGxiYWNrLCBPcHRpb25hbF0gRW50cnlDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtDYWxs
YmFjaywgT3B0aW9uYWxdIEVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjayk7CisgICAgICAgIFtW
OEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gdm9pZCB3ZWJraXRSZXNvbHZlTG9jYWxGaWxl
U3lzdGVtVVJMKGluIERPTVN0cmluZyB1cmwsIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIEVudHJ5
Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBFcnJvckNh
bGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVT
eXN0ZW1dIEVudHJ5U3luYyB3ZWJraXRSZXNvbHZlTG9jYWxGaWxlU3lzdGVtU3luY1VSTChpbiBE
T01TdHJpbmcgdXJsKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogCi0gICAgICAgIGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lPUZpbGVTeXN0ZW1dIEZpbGVFcnJvckNvbnN0cnVjdG9yIEZp
bGVFcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3Rl
bV0gRmlsZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIEZpbGVFeGNlcHRpb247CisgICAgICAgIFtWOEVu
YWJsZWRBdFJ1bnRpbWU9RmlsZVN5c3RlbV0gYXR0cmlidXRlIEZpbGVFcnJvckNvbnN0cnVjdG9y
IEZpbGVFcnJvcjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GaWxlU3lzdGVtXSBhdHRy
aWJ1dGUgRmlsZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIEZpbGVFeGNlcHRpb247CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFk
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmlkbAppbmRleCBl
MDBlMmRjM2Q4ODU1Y2Y4ZWYwNDU2NTMxN2YyYzc0NjAzN2IzYWEzLi5lOTA1MTIyYzZjNDc2YmE0
ZDQ5MGNlOTE2YzA0MDJkMmMyYzVkZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBkb20gewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQQUQKLSAgICBdIEdh
bWVwYWQgeworICAgIF0gaW50ZXJmYWNlIEdhbWVwYWQgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGlkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBpbmRleDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0aW1lc3RhbXA7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBkb20gewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZmxvYXRbXSBidXR0b25zOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0LmlkbAppbmRleCA0ZjFlMWRm
OWExOTc4Zjg5Y2M4NzNkM2FmNjI4ZmQxZGIwMzBmM2U2Li4yMDJjYzViYzE1MDY5ZjEwMGU3ZGE0
MGY2N2VhYjJiNWNiNzc0ODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dh
bWVwYWQvR2FtZXBhZExpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkTGlzdC5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgZG9tIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1HQU1FUEFELAogICAg
ICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBHYW1lcGFkTGlzdCB7CisgICAgXSBpbnRlcmZhY2Ug
R2FtZXBhZExpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7Ci0gICAgICAgIEdhbWVwYWQgaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgR2FtZXBhZCBpdGVtKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdh
dG9yR2FtZXBhZC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGwKaW5kZXggZThhOTQ1ZGI2ZDhiNDZiOTQzNWRjNGI0OTExZWVjOWM5ODJjZjc5
OS4uM2E1NDM4ZjhkZmE3MTUwNTBiOTY2MTM3OTMyNjI4MWRiMzg4M2RkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbApAQCAt
MTksMTEgKzE5LDExIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUdBTUVQQUQsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1O
YXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvckdhbWVwYWQgewotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gR2FtZXBhZExpc3Qgd2Via2l0R2FtZXBhZHM7Cisg
ICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yR2FtZXBhZCB7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBHYW1lcGFkTGlzdCB3ZWJraXRHYW1lcGFkczsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbAppbmRleCA0ZjE1OWJjYjFlYzJmZDQ2OWI5MjNhMTNhZDcyNzc5MDUw
MWIzYjU1Li4zMDdkNjExZTcyN2RjODE0NGQ5ODZkMGM1ZDAwMzQxZjZkYjI4OTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlkbApA
QCAtMjYsMjAgKzI2LDIwIEBACiBtb2R1bGUgY29yZSB7CiAKICAgICAvLyBodHRwOi8vd3d3Lncz
Lm9yZy9UUi9nZW9sb2NhdGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwgCiAgICAgICAg
IEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3Rv
cgotICAgIF0gR2VvbG9jYXRpb24geworICAgIF0gaW50ZXJmYWNlIEdlb2xvY2F0aW9uIHsKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCBnZXRDdXJyZW50UG9zaXRpb24oaW4gUG9zaXRpb25DYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbF0gUG9zaXRpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gUG9z
aXRpb25PcHRpb25zIG9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWxdIGluIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNr
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGlu
IFBvc2l0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgICAgICBbQ3VzdG9tXSBsb25nIHdhdGNo
UG9zaXRpb24oaW4gUG9zaXRpb25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIFBvc2l0aW9uRXJyb3JDYWxs
YmFjayBlcnJvckNhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBQb3NpdGlvbk9wdGlvbnMgb3B0aW9ucyk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIFBvc2l0aW9uRXJyb3JDYWxsYmFjayBl
cnJvckNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsXSBpbiBQb3NpdGlvbk9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICAgICAgdm9pZCBjbGVhcldh
dGNoKGluIGxvbmcgd2F0Y2hJZCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKaW5kZXggY2JlNzI4YTgx
ZmRlYzkyYjA0ODg4ZjE2MTBmMGJmOWRlZDZlZGI0Yy4uNGU0ZDNkYzQyYjM1NmQ3MjdhMjhkODIy
Nzc1YWVhNjY0ZDJiNzgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUgY29y
ZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9D
QVRJT04sCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gR2VvcG9zaXRpb24geworICAg
IF0gaW50ZXJmYWNlIEdlb3Bvc2l0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENv
b3JkaW5hdGVzIGNvb3JkczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFt
cCB0aW1lc3RhbXA7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCmluZGV4IGUw
YjhmMGVkMWRmYmMzZmI4ZjZiZWQ2ZTBmODY3OGZkODUxOTkwMGEuLjU2MmRhZjNlZGFlMjc3YzM3
ZDA1N2QzMWVjMGZjNTBlZWNkNzlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsCkBAIC0xOSwx
MSArMTksMTEgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1O
YXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIEdlb2xvY2F0aW9uIGdlb2xvY2F0aW9uOwor
ICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvckdlb2xvY2F0aW9uIHsKKyAgICAgICAgW1Y4RW5hYmxl
ZEF0UnVudGltZV0gcmVhZG9ubHkgYXR0cmlidXRlIEdlb2xvY2F0aW9uIGdlb2xvY2F0aW9uOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCAzOWNmYTM0ZWI1NjljN2VjM2M5MjZi
N2FiZDVlYmQ3ODE3MGZmY2E4Li42ODQ3MzM2MDllZTE0Nzk4NDQzODE3NzRhZWVlOGZmZjE4NzFk
MjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25DYWxsYmFjay5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICovCiAKIG1vZHVsZSBj
b3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9R0VPTE9D
QVRJT04sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBQb3NpdGlvbkNhbGxiYWNrIHsKKyAgICBd
IGludGVyZmFjZSBQb3NpdGlvbkNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVu
dChpbiBHZW9wb3NpdGlvbiBwb3NpdGlvbik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAppbmRleCA5
OGUwMzZmN2I1Yjg2ZDY5MjhhOWY4NGUxYzc4MjhjYTA0Mzk2NGFlLi45ZDlmNjgxNTI4NzkyMmZk
NjdkZDcwZGQwNGQzODI4NjE4OWNiNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAog
bW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUdFT0xPQ0FUSU9OCi0gICAgXSBQb3NpdGlvbkVycm9yIHsKKyAgICBdIGludGVyZmFjZSBQ
b3NpdGlvbkVycm9yIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKIApA
QCAtMzYsNCArMzYsNCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFRJTUVPVVQgPSAzOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwK
aW5kZXggYTdkYzkzMmQ1ZTJlZDZiNjAxYTgxZjY1MTRiZWNmMTJhZmIyYmFhMC4uNmMwYTk4ZjY4
MjMzNzAxZGQ0M2U0YjQ0NmVlMWI1YjA2Y2MyYzM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlk
bApAQCAtMjMsMTAgKzIzLDEwIEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKICAgICAgICAgQ2Fs
bGJhY2sKLSAgICBdIFBvc2l0aW9uRXJyb3JDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgUG9z
aXRpb25FcnJvckNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBQb3Np
dGlvbkVycm9yIGVycm9yKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaWRs
CmluZGV4IGFkMzk5OGI0OWQ3NmI5YmQzZThmZWQ3NTZhYTg3ODY3MTE4YmU5YmUuLmIzOGY1ZGNl
ZDlmMTkwMGQ2OWVjZjZkOTE3MzZlNjRmZDU4OWQwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNl
LmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAg
ICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd0luZGV4ZWREYXRhYmFz
ZSB7CisgICAgXSBpbnRlcmZhY2UgRE9NV2luZG93SW5kZXhlZERhdGFiYXNlIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIElEQkZhY3Rvcnkgd2Via2l0SW5kZXhlZERCOwogCiAgICAgICAg
IGF0dHJpYnV0ZSBJREJDdXJzb3JDb25zdHJ1Y3RvciB3ZWJraXRJREJDdXJzb3I7CkBAIC00Myw0
ICs0Myw0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rp
b25Db25zdHJ1Y3RvciB3ZWJraXRJREJUcmFuc2FjdGlvbjsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5pZGwKaW5kZXggZGQ1MWM0ZGFh
YzY2ZDY5OTAzNTU1ZGFmNzAwOTQ1MzdhZWY1MzU5Zi4uZGEwMWE0ZWE2NDBmN2IwN2IxZDgzNWY5
NTg3MmY5NjdmNTU4MzZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQW55LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJBbnkuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0Us
CiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIElEQkFueSB7CisgICAgXSBpbnRlcmZh
Y2UgSURCQW55IHsKICAgICAgICAgLy8gVGhpcyBzcGFjZSBpcyBpbnRlbnRpb25hbGx5IGxlZnQg
YmxhbmsuCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmlkbAppbmRleCBkNzNkMTQ2Mjc0NDE4NDAyNzQyMzIwZjRmM2U2MDZhYjNk
MjAyZTQ5Li5iYjU3Njg0MTk4ZGQwMDQwZmRlYWE4NDdkYzdjYjViZDJlYjI2M2YxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwKQEAgLTI1LDkg
KzI1LDkgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAg
Q29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKLSAgICBdIElEQkN1cnNvciB7CisgICAgWwor
ICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBpbnRlcmZhY2UgSURC
Q3Vyc29yIHsKICAgICAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgcmVtb3ZlIGxlZ2FjeSBlbnVt
IGNvbnN0YW50cywgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NTMxNQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVhUID0gMDsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgTkVYVF9OT19EVVBMSUNBVEUgPSAxOwpAQCAtNDMsOSArNDMsOSBA
QCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0
aW9uKTsKICAgICAgICAgdm9pZCBhZHZhbmNlKGluIHVuc2lnbmVkIGxvbmcgY291bnQpCiAgICAg
ICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0ltcGxlbWVu
dGVkQXM9Y29udGludWVGdW5jdGlvbl0gdm9pZCBjb250aW51ZShpbiBbT3B0aW9uYWxdIElEQktl
eSBrZXkpCisgICAgICAgIFtJbXBsZW1lbnRlZEFzPWNvbnRpbnVlRnVuY3Rpb25dIHZvaWQgY29u
dGludWUoW09wdGlvbmFsXSBpbiBJREJLZXkga2V5KQogICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBJbXBsZW1lbnRlZEFzPWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZSgpCiAg
ICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldp
dGhWYWx1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JX
aXRoVmFsdWUuaWRsCmluZGV4IDUxMmVhNDA1ZTQ0YTkxYzU3NjEzNjU0NGQ3YjUzZWFmMTJmODAw
NzUuLjQ1ZWUzM2Y0Njc2NzJhNmMwY2VhMDg0NGU5ZjdlZTc2YWE5NWYyYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVl
LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQotICAgIF0g
SURCQ3Vyc29yV2l0aFZhbHVlIDogSURCQ3Vyc29yIHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtWOEN1c3RvbUdldHRlcl0gSURCQW55IHZhbHVlOworICAgIF0gaW50ZXJmYWNlIElEQkN1
cnNvcldpdGhWYWx1ZSA6IElEQkN1cnNvciB7CisgICAgICAgIFtWOEN1c3RvbUdldHRlcl0gcmVh
ZG9ubHkgYXR0cmlidXRlIElEQkFueSB2YWx1ZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmlkbAppbmRleCAyNDBhZWU5
MzJkNzdmMjc4N2ZhNzgzZGNhMjJkZjhjY2FhOThmZWVlLi43ODM3YTgyZmNmN2RhMzM2MDRkOTBi
NzMzODA1MjZjNWQxZDk4YWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2UuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN0b3Jh
Z2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UsCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAgICAgRXZlbnRUYXJn
ZXQKLSAgICBdIElEQkRhdGFiYXNlIHsKKyAgICBdIGludGVyZmFjZSBJREJEYXRhYmFzZSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nTGlzdCBvYmplY3RTdG9yZU5hbWVzOwpAQCAtMzksMTcgKzM5LDE3IEBAIG1v
ZHVsZSBzdG9yYWdlIHsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb252ZXJzaW9uY2hhbmdlOwogCi0gICAg
ICAgIElEQk9iamVjdFN0b3JlIGNyZWF0ZU9iamVjdFN0b3JlKGluIERPTVN0cmluZyBuYW1lLCBp
biBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb3B0aW9ucykKKyAgICAgICAgSURCT2JqZWN0U3RvcmUg
Y3JlYXRlT2JqZWN0U3RvcmUoaW4gRE9NU3RyaW5nIG5hbWUsIFtPcHRpb25hbF0gaW4gRGljdGlv
bmFyeSBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW4gRE9NU3RyaW5nIG5hbWUpCiAgICAg
ICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IHNldFZlcnNp
b24oaW4gRE9NU3RyaW5nIHZlcnNpb24pCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNl
RXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElE
QlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZ0xpc3Q/IHN0b3JlTmFtZXMsIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9kZSkKKyAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0
aW9uKGluIERPTVN0cmluZ0xpc3Q/IHN0b3JlTmFtZXMsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxs
U3RyaW5nXSBpbiBET01TdHJpbmcgbW9kZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
SURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24oaW4gRE9NU3RyaW5nW10/IHN0b3JlTmFtZXMsIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9kZSkKKyAgICAgICAg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0
aW9uKGluIERPTVN0cmluZ1tdPyBzdG9yZU5hbWVzLCBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0
cmluZ10gaW4gRE9NU3RyaW5nIG1vZGUpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNl
RXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElE
QlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGluIERPTVN0cmluZyBzdG9yZU5hbWUsIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbW9kZSkKKyAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKGlu
IERPTVN0cmluZyBzdG9yZU5hbWUsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBE
T01TdHJpbmcgbW9kZSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OwogCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCkBAIC02NSwxMiArNjUsMTIg
QEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAg
ICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VD
YXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBs
aXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRj
aEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAppbmRleCA5ODRjYWI5MjJiZDY2Y2E3
ZjRlMjc2ZjZiMjE0NDFjOWUyZTYzYWQzLi43NWVjZmJmN2MyNDczMWViZGVmMTZiNmY0YjY0NjA5
NjRlZGEyZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9k
dWxlIHN0b3JhZ2UgewogCi0gICAgZXhjZXB0aW9uIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBd
IElEQkRhdGFiYXNlRXhjZXB0aW9uIHsKKyAgICBdIGV4Y2VwdGlvbiBJREJEYXRhYmFzZUV4Y2Vw
dGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29k
ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKQEAg
LTU5LDQgKzU5LDQgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBRVU9UQV9FUlIgPSAyMjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbAppbmRleCAwMzg5ZWIyYWFlN2UxMjk5
NTRkOWFjZjAzYTU5ZmZiY2M3ZmJhYWNjLi4zYzNhM2YxNjE5ZDI4OWIwMGZlZTNmYTY5MThiNGNl
MzE4N2QzZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQot
ICAgIF0gSURCRmFjdG9yeSB7CisgICAgXSBpbnRlcmZhY2UgSURCRmFjdG9yeSB7CiAgICAgICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPWdldERhdGFi
YXNlTmFtZXNdIElEQlJlcXVlc3Qgd2Via2l0R2V0RGF0YWJhc2VOYW1lcygpOwogCiAgICAgICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW4oaW4gRE9N
U3RyaW5nIG5hbWUpCkBAIC0zOSw0ICszOSw0IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAg
ICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKaW5kZXggYTE3MDhj
YTYyYzMwZDhhNzViNjgyMjY3MDdmZTJhYTIyYmY5YmNmYy4uMWUxY2Y3YjBmZmU3ZDA2YTg0Yjg2
ZGNmNzdmNGRkOGRhNmFlZjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkluZGV4LmlkbApAQCAtMjUsMzQgKzI1LDM0IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RB
VEFCQVNFCi0gICAgXSBJREJJbmRleCB7CisgICAgXSBpbnRlcmZhY2UgSURCSW5kZXggewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZSBvYmplY3RTdG9yZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIElEQkFueSBrZXlQYXRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiB1bmlxdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG11bHRpRW50
cnk7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVl
c3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwgaW4gW09wdGlv
bmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFu
Z2U/IHJhbmdlLCBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBkaXJlY3Rpb24pCiAgICAgICAgICAg
ICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBJREJLZXkga2V5LCBp
biBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24pCisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtleSwg
W09wdGlvbmFsXSBpbiBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIAotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0g
SURCS2V5UmFuZ2U/IHJhbmdlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyAgZGlyZWN0aW9uKQor
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVu
S2V5Q3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9uYWxdIGlu
IERPTVN0cmluZyAgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4
Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJS
ZXF1ZXN0IG9wZW5LZXlDdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSBET01TdHJp
bmcgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
SURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIFtPcHRpb25hbF0gaW4gRE9N
U3RyaW5nIGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRp
b24pOwogCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbgogICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCi0g
ICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5D
dXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/
IHJhbmdlLCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAg
ICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXks
IGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktl
eSBrZXksIFtPcHRpb25hbF0gaW4gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQogICAgICAgICAg
ICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3IoaW4gW09wdGlvbmFs
XSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVz
dCBvcGVuS2V5Q3Vyc29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURC
RGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIGluIFtPcHRpb25h
bF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIElEQktleSBrZXksIFtP
cHRpb25hbF0gaW4gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2Vz
IChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIAogICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5UmFuZ2U/IGtleSkK
QEAgLTYzLDEwICs2MywxMCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgICAgICByYWlzZXMg
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0S2V5KGluIElEQktleSBrZXkpCiAgICAgICAgICAgICBy
YWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5n
ZT8gcmFuZ2UpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJS
ZXF1ZXN0IGNvdW50KFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlKQogICAgICAgICAg
ICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KGluIElEQktleSBrZXkpCiAgICAg
ICAgICAgICByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5pZGwKaW5kZXggMTQ2NGQ5
ZjczZDEyMmI0MDBmMDJkOTUwOTFlYjc1MzFhNGM3MDU0My4uZGI0NDNiMTcwM2E1YjA0ZjViMjNk
ZThmYjZmZmE4M2E2MDgzN2Q1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXkuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJB
U0UsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIElEQktleSB7CisgICAgXSBpbnRl
cmZhY2UgSURCS2V5IHsKICAgICAgICAgLy8gVGhpcyBzcGFjZSBpcyBpbnRlbnRpb25hbGx5IGxl
ZnQgYmxhbmsuCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwKaW5kZXggMTYxY2I5YzQ3NzMzZmJhYWFiZTRhMThmOTZk
NTMxNTdkNjY1MTNlZi4uMDExNThiN2U3MzdmZTJkZGM2OGZmOTA1NjRjZWYzNTMxNTMzYTZkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2Uu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlk
bApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQotICAgIF0gSURC
S2V5UmFuZ2UgeworICAgIF0gaW50ZXJmYWNlIElEQktleVJhbmdlIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIElEQktleSBsb3dlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElE
QktleSB1cHBlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVu
OwpAQCAtMzUsMTIgKzM1LDEyIEBAIG1vZHVsZSBzdG9yYWdlIHsKIAogICAgICAgICBzdGF0aWMg
SURCS2V5UmFuZ2Ugb25seShpbiBJREJLZXkgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMgKElE
QkRhdGFiYXNlRXhjZXB0aW9uKTsKLSAgICAgICAgc3RhdGljIElEQktleVJhbmdlIGxvd2VyQm91
bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlbikKKyAgICAgICAg
c3RhdGljIElEQktleVJhbmdlIGxvd2VyQm91bmQoaW4gSURCS2V5IGJvdW5kLCBbT3B0aW9uYWxd
IGluIGJvb2xlYW4gb3BlbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRp
b24pOwotICAgICAgICBzdGF0aWMgSURCS2V5UmFuZ2UgdXBwZXJCb3VuZChpbiBJREJLZXkgYm91
bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKQorICAgICAgICBzdGF0aWMgSURCS2V5UmFu
Z2UgdXBwZXJCb3VuZChpbiBJREJLZXkgYm91bmQsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBvcGVu
KQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIHN0
YXRpYyBJREJLZXlSYW5nZSBib3VuZChpbiBJREJLZXkgbG93ZXIsIGluIElEQktleSB1cHBlciwg
aW4gW09wdGlvbmFsXSBib29sZWFuIGxvd2VyT3BlbiwgaW4gW09wdGlvbmFsXSBib29sZWFuIHVw
cGVyT3BlbikKKyAgICAgICAgc3RhdGljIElEQktleVJhbmdlIGJvdW5kKGluIElEQktleSBsb3dl
ciwgaW4gSURCS2V5IHVwcGVyLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbG93ZXJPcGVuLCBbT3B0
aW9uYWxdIGluIGJvb2xlYW4gdXBwZXJPcGVuKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRh
YmFzZUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAppbmRleCA2NzNlMjRjOTA4ZDM3
NzYyZjhkZWVkZGY3MzViNTE3OTc2MDU2Zjc1Li44YTA0ZDBmNzk3YWRjODQ5NDhkYmExMWM5ODgw
NTFjMDM1MTcxYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuaWRsCkBAIC0yNSwxOCArMjUsMTggQEAKIAogbW9kdWxlIHN0b3Jh
Z2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UKLSAgICBdIElEQk9iamVjdFN0b3JlIHsKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBuYW1lOwor
ICAgIF0gaW50ZXJmYWNlIElEQk9iamVjdFN0b3JlIHsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCQW55IGtleVBhdGg7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBJREJUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbjsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gYXV0b0luY3JlbWVudDsKIAotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBwdXQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVl
IHZhbHVlLCBpbiBbT3B0aW9uYWxdIElEQktleSBrZXkpCisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHB1dChpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgdmFsdWUsIFtPcHRpb25hbF0gaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBhZGQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBp
biBbT3B0aW9uYWxdIElEQktleSBrZXkpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBJREJSZXF1ZXN0IGFkZChpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUs
IFtPcHRpb25hbF0gaW4gSURCS2V5IGtleSkKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJh
c2VFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
SW1wbGVtZW50ZWRBcz1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxldGUoaW4gSURCS2V5
UmFuZ2U/IGtleVJhbmdlKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CkBAIC00OCwyOCArNDgsMjggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICAgICAgcmFp
c2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXkga2V5KQogICAgICAgICAgICAg
cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJL
ZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGRpcmVjdGlvbikKKyAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNv
cihbT3B0aW9uYWxdIGluIElEQktleVJhbmdlPyByYW5nZSwgW09wdGlvbmFsXSBpbiBET01TdHJp
bmcgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7
Ci0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9w
ZW5DdXJzb3IoaW4gSURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9u
KQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBv
cGVuQ3Vyc29yKGluIElEQktleSBrZXksIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIGRpcmVjdGlv
bikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogCiAgICAgICAg
IC8vIEZJWE1FOiByZW1vdmUgdGhlc2Ugd2hlbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUzMjYgaXMgZml4ZWQuCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlS
YW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVuQ3Vy
c29yKFtPcHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlLCBbT3B0aW9uYWxdIGluIHVuc2ln
bmVkIHNob3J0IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNl
cHRpb24pOwotICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXksIGluIFtPcHRpb25hbF0gdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uKQorICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0g
SURCUmVxdWVzdCBvcGVuQ3Vyc29yKGluIElEQktleSBrZXksIFtPcHRpb25hbF0gaW4gdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2Vw
dGlvbik7CiAKLSAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUs
IGluIERPTVN0cmluZ1tdPyBrZXlQYXRoLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgb3B0aW9u
cykKKyAgICAgICAgSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERP
TVN0cmluZ1tdPyBrZXlQYXRoLCBbT3B0aW9uYWxdIGluIERpY3Rpb25hcnkgb3B0aW9ucykKICAg
ICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICBJREJJbmRl
eCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgsIGlu
IFtPcHRpb25hbF0gRGljdGlvbmFyeSBvcHRpb25zKQorICAgICAgICBJREJJbmRleCBjcmVhdGVJ
bmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgsIFtPcHRpb25hbF0g
aW4gRGljdGlvbmFyeSBvcHRpb25zKQogICAgICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4
Y2VwdGlvbik7CiAgICAgICAgIElEQkluZGV4IGluZGV4KGluIERPTVN0cmluZyBuYW1lKQogICAg
ICAgICAgICAgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgZGVs
ZXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUpCiAgICAgICAgICAgICByYWlzZXMgKElEQkRhdGFi
YXNlRXhjZXB0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UpCisgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KFtP
cHRpb25hbF0gaW4gSURCS2V5UmFuZ2U/IHJhbmdlKQogICAgICAgICAgICAgcmFpc2VzIChJREJE
YXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0XSBJREJSZXF1ZXN0IGNvdW50KGluIElEQktleSBrZXkpCiAgICAgICAgICAgICByYWlzZXMg
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5pZGwKaW5kZXggMWU0OTQxNTQzNmFiNTk5
OGM1Y2NkYjgzNjBjYTQzMWIxMjRjNDhhOC4uMjFmMmMwNGRiYjBlZTkyYzliZjc1MjE4ZDdlM2Q5
Y2NlZTlmODMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5pZGwKQEAgLTI5LDE5ICsyOSwxOSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFT
RSwKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBFdmVudFRhcmdldAotICAgIF0g
SURCUmVxdWVzdCB7CisgICAgXSBpbnRlcmZhY2UgSURCUmVxdWVzdCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBJREJBbnkgcmVzdWx0Ci0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMgKElEQkRhdGFiYXNl
RXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGVy
cm9yQ29kZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24p
OworICAgICAgICAgICAgZ2V0cmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvcgotICAgICAgICAgICAgZ2V0dGVyIHJh
aXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBET01TdHJpbmcgd2Via2l0RXJy
b3JNZXNzYWdlCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlv
bik7CisgICAgICAgICAgICBnZXRyYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKKyAgICAg
ICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHdlYmtpdEVycm9yTWVzc2FnZQorICAgICAgICAgICAgZ2V0cmFpc2VzIChJ
REJEYXRhYmFzZUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkFu
eSBzb3VyY2U7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbjsKQEAgLTU2LDExICs1NiwxMSBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIC8v
IEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4g
RE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExp
c3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2
ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUp
OwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAg
ICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCBhMGU1
NGMwM2UwZjI2MjAyNWM4OGZjNDVmODI2NmJkYWY2ZGVhYmIwLi4zNzI5MmZiZjM3M2VkN2NhOTc2
ODMwMTI5ZmQ5ZjQ2NGMyMDRmZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9k
dWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICAgICAg
RXZlbnRUYXJnZXQKLSAgICBdIElEQlRyYW5zYWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBJREJU
cmFuc2FjdGlvbiB7CiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHJlbW92ZSBsZWdhY3kg
ZW51bSBjb25zdGFudHMsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODUzMTUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZID0gMDsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9XUklURSA9IDE7CkBAIC00MCw3ICs0MCw3
IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBtb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgZGI7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvciAKLSAgICAgICAgICAgIGdldHRl
ciByYWlzZXMgKElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNlcyAo
SURCRGF0YWJhc2VFeGNlcHRpb24pOwogCiAgICAgICAgIC8vIE1ldGhvZHMKICAgICAgICAgSURC
T2JqZWN0U3RvcmUgb2JqZWN0U3RvcmUgKGluIERPTVN0cmluZyBuYW1lKQpAQCAtNTMsMTEgKzUz
LDExIEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNl
CiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJp
bmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlz
cGF0Y2hFdmVudChpbiBFdmVudCBldnQpIAogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0
aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaWRsCmluZGV4IGM2YTQxNzE4ZjYy
NWZjMjQyNDkxMmU5ZGNmYzA0ZGIwNGNlY2RhYzIuLjg0NjViNjM1ZWVjZTdiYzlkMGIwYTQzZDA3
NGMwNDI1MWIyODM0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAog
CiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQotICAgIF0gSURCVmVyc2lvbkNoYW5nZUV2ZW50IDog
RXZlbnQgeworICAgIF0gaW50ZXJmYWNlIElEQlZlcnNpb25DaGFuZ2VFdmVudCA6IEV2ZW50IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwogICAgIH07Ci19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVmVy
c2lvbkNoYW5nZVJlcXVlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaWRsCmluZGV4IDJhYTIzOGE4YjQ5YWVmM2IyNmMyMDNm
ODA0NjYzODQ2YTRjYzY4ODkuLmIxMzI4YmQzMzM3N2VkMTQ5ZmNiODNhYjU4MmY2ODBhOWFjNjJj
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1
bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9SU5ERVhFRF9EQVRBQkFTRSwKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBF
dmVudFRhcmdldAotICAgIF0gSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgOiBJREJSZXF1ZXN0IHsK
KyAgICBdIGludGVyZmFjZSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdCA6IElEQlJlcXVlc3Qgewog
ICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsb2NrZWQ7CiAgICAgfTsKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250
ZXh0SW5kZXhlZERhdGFiYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsCmluZGV4IGMzMzZjNTdlZTg0YmY3NjEw
ZTJhZWVjNGI1NDI5OWZkYTU2MTE1Y2UuLmI3NGIwYmEzNTBmMTc2YWJkYWMwN2I4ZWZjZDRiMGFi
OTQzODkwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dv
cmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsCkBAIC0yNiwyMSAr
MjYsMjEgQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UsCiAgICAgICAgIFN1cHBsZW1lbnRh
bD1Xb3JrZXJDb250ZXh0Ci0gICAgXSBXb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlIHsKLSAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3Rvcnkg
d2Via2l0SW5kZXhlZERCOworICAgIF0gaW50ZXJmYWNlIFdvcmtlckNvbnRleHRJbmRleGVkRGF0
YWJhc2UgeworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUg
SURCRmFjdG9yeSB3ZWJraXRJbmRleGVkREI7CiAKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIElEQkN1cnNvckNvbnN0cnVjdG9yIHdlYmtpdElEQkN1cnNvcjsKLSAgICAg
ICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElEQkRhdGFiYXNlQ29uc3RydWN0b3Ig
d2Via2l0SURCRGF0YWJhc2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1l
XSBJREJEYXRhYmFzZUV4Y2VwdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0
aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gSURCRmFjdG9yeUNv
bnN0cnVjdG9yIHdlYmtpdElEQkZhY3Rvcnk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBJREJJbmRleENvbnN0cnVjdG9yIHdlYmtpdElEQkluZGV4OwotICAgICAgICBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2VDb25zdHJ1Y3RvciB3ZWJr
aXRJREJLZXlSYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElE
Qk9iamVjdFN0b3JlQ29uc3RydWN0b3Igd2Via2l0SURCT2JqZWN0U3RvcmU7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBJREJSZXF1ZXN0Q29uc3RydWN0b3Igd2Via2l0
SURCUmVxdWVzdDsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIElEQlRy
YW5zYWN0aW9uQ29uc3RydWN0b3Igd2Via2l0SURCVHJhbnNhY3Rpb247CisgICAgICAgIFtWOEVu
YWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBJREJDdXJzb3JDb25zdHJ1Y3RvciB3ZWJraXRJREJD
dXJzb3I7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBJREJEYXRhYmFz
ZUNvbnN0cnVjdG9yIHdlYmtpdElEQkRhdGFiYXNlOworICAgICAgICBbVjhFbmFibGVkQXRSdW50
aW1lXSBhdHRyaWJ1dGUgSURCRGF0YWJhc2VFeGNlcHRpb25Db25zdHJ1Y3RvciB3ZWJraXRJREJE
YXRhYmFzZUV4Y2VwdGlvbjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRl
IElEQkZhY3RvcnlDb25zdHJ1Y3RvciB3ZWJraXRJREJGYWN0b3J5OworICAgICAgICBbVjhFbmFi
bGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSURCSW5kZXhDb25zdHJ1Y3RvciB3ZWJraXRJREJJbmRl
eDsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIElEQktleVJhbmdlQ29u
c3RydWN0b3Igd2Via2l0SURCS2V5UmFuZ2U7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVd
IGF0dHJpYnV0ZSBJREJPYmplY3RTdG9yZUNvbnN0cnVjdG9yIHdlYmtpdElEQk9iamVjdFN0b3Jl
OworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgSURCUmVxdWVzdENvbnN0
cnVjdG9yIHdlYmtpdElEQlJlcXVlc3Q7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0
dHJpYnV0ZSBJREJUcmFuc2FjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdElEQlRyYW5zYWN0aW9uOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVu
dHMvRE9NV2luZG93SW50ZW50cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMv
RE9NV2luZG93SW50ZW50cy5pZGwKaW5kZXggZDM0NTIwOTUxNzY1YmY4M2I5MzkzNGJkM2UxMmVm
NDRhNTczMDEzNC4uM2YwNmEyNDg0ZmVhNjkxNGYwNTA4ODdlOTk4OGY2YWFiM2NlM2YzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9ET01XaW5kb3dJbnRlbnRz
LmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9JTlRFTlRTLAogICAgICAgICBT
dXBwbGVtZW50YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dJbnRlbnRzIHsKKyAgICBdIGlu
dGVyZmFjZSBET01XaW5kb3dJbnRlbnRzIHsKICAgICAgICAgYXR0cmlidXRlIEludGVudENvbnN0
cnVjdG9yIFdlYktpdEludGVudDsKIAotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBE
ZWxpdmVyZWRJbnRlbnQgd2Via2l0SW50ZW50OworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJp
YnV0ZSBEZWxpdmVyZWRJbnRlbnQgd2Via2l0SW50ZW50OwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvRGVsaXZlcmVkSW50ZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJbnRlbnQuaWRsCmlu
ZGV4IDI1ZTk3OGRlYmU3ODUzZjQwMmM4ZjdhOTdmZGU4MDRlNjIwODlkNjEuLjc4NWFhOGNiZWVl
OWYyZWE2ZGE3NGE5OWUxYmUyMjczZGJjOGY0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJbnRlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW50ZW50cy9EZWxpdmVyZWRJbnRlbnQuaWRsCkBAIC0yNCwxMyArMjQsMTMgQEAK
ICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRp
b25hbD1XRUJfSU5URU5UUywKLSAgICBdIERlbGl2ZXJlZEludGVudCA6IEludGVudCB7CisgICAg
WworICAgICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UUworICAgIF0gaW50ZXJmYWNlIERlbGl2
ZXJlZEludGVudCA6IEludGVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZXNzYWdl
UG9ydEFycmF5IHBvcnRzOwogCiAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIERPTVN0cmluZyBnZXRFeHRyYShpbiBET01TdHJpbmcga2V5KTsKICAgICAgICAgdm9pZCBw
b3N0UmVzdWx0KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSByZXN1bHQpOwogICAgICAgICB2b2lk
IHBvc3RGYWlsdXJlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSByZXN1bHQpOwogICAgIH07Ci19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvSW50ZW50LmlkbAppbmRleCA5MjY1
N2I0ZTZjZTYwZjA3OTk1MjQ2NDAxNjM2NWI4NzA5MTQ5NWU1Li43ZTRkYjIzNjNmM2JhMjNhZmMy
YWIxNzE5ZjY3ODA1OWJkY2MwNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ludGVudHMvSW50ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMv
SW50ZW50LmlkbApAQCAtMjQsMTQgKzI0LDE0IEBACiAgKi8KIAogbW9kdWxlIHdpbmRvdyB7Ci0g
IGludGVyZmFjZSBbCisgIFsKICAgICAgIENvbmRpdGlvbmFsPVdFQl9JTlRFTlRTLAogICAgICAg
Q3VzdG9tQ29uc3RydWN0b3IsCi0gICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgYWN0aW9u
LCBpbiBET01TdHJpbmcgdHlwZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmcsIFRy
YW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBcnJheSB0cmFuc2Zlckxpc3QpLAorICAgICAg
Q29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIGFjdGlvbiwgaW4gRE9NU3RyaW5nIHR5cGUsIFtPcHRp
b25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nLCBUcmFuc2Zlckxpc3Q9dHJhbnNmZXJMaXN0XSBpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgZGF0YSwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gQXJyYXkgdHJhbnNmZXJMaXN0KSwKICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9u
Ci0gIF0gSW50ZW50IHsKKyAgXSBpbnRlcmZhY2UgSW50ZW50IHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBhY3Rpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdHlwZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSBkYXRhOwogICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW50ZW50cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ludGVudHMvSW50ZW50UmVzdWx0Q2FsbGJhY2suaWRsCmluZGV4IDBhZmEyYWRkNjNm
ZDdkZTRkNzJmM2U0YTg4MGI0NDAwN2ExYzljNjQuLjlmNzFjNTMwNDY5NjlhY2NjNWJhYjgxZjg2
ZGJlMWViNmU2NzhjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50
cy9JbnRlbnRSZXN1bHRDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bnRlbnRzL0ludGVudFJlc3VsdENhbGxiYWNrLmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8K
IAogbW9kdWxlIHdpbmRvdyB7Ci0gIGludGVyZmFjZSBbCisgIFsKICAgICAgIENvbmRpdGlvbmFs
PVdFQl9JTlRFTlRTLAogICAgICAgQ2FsbGJhY2sKLSAgXSBJbnRlbnRSZXN1bHRDYWxsYmFjayB7
CisgIF0gaW50ZXJmYWNlIEludGVudFJlc3VsdENhbGxiYWNrIHsKICAgICAgIGJvb2xlYW4gaGFu
ZGxlRXZlbnQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHJlc3VsdCk7CiAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVu
dHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMu
aWRsCmluZGV4IDIwNjMzN2ExYmUyNzVmYmZkYTY3ZTJhM2NkZjUxYmRmYWEzODNkYTMuLmQ4MjEx
ZmI0MDIxYjI2MjVkMzlhODYyMDc0M2M2Y2U0OWMxOWQ0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5pZGwKQEAgLTE5LDE0ICsx
OSwxNCBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1XRUJfSU5URU5UUywKICAgICAgICAgU3VwcGxlbWVudGFsPU5hdmln
YXRvcgotICAgIF0gTmF2aWdhdG9ySW50ZW50cyB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9y
SW50ZW50cyB7CiAgICAgICAgIHZvaWQgd2Via2l0U3RhcnRBY3Rpdml0eShpbiBJbnRlbnQgaW50
ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrLCBPcHRp
b25hbF0gSW50ZW50UmVzdWx0Q2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gSW50ZW50UmVzdWx0
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gSW50ZW50UmVzdWx0Q2FsbGJhY2sgc3VjY2Vzc0Nh
bGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0NhbGxiYWNrLCBPcHRp
b25hbF0gaW4gSW50ZW50UmVzdWx0Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFTdHJlYW0uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVh
bS5pZGwKaW5kZXggOTcwZDEwNjQ0MzE1YWMxNzEzZDY4MDA2MmY4YTkzMTE4YWYxMzkxNy4uY2Vj
ZThhNmYyYWU3YzgxZTE0ZjA4MjRiOGJmMmEwNDE1MGMyM2E5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVh
bS5pZGwKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAg
IFN1cHBsZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd01lZGlhU3RyZWFtIHsKLSAg
ICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIERlcHJlY2F0ZWRQZWVyQ29ubmVj
dGlvbkNvbnN0cnVjdG9yIHdlYmtpdERlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbjsKLSAgICAgICAg
YXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlhU3RyZWFtQ29uc3RydWN0b3Igd2Vi
a2l0TWVkaWFTdHJlYW07Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBQ
ZWVyQ29ubmVjdGlvbjAwQ29uc3RydWN0b3Igd2Via2l0UGVlckNvbm5lY3Rpb24wMDsKKyAgICBd
IGludGVyZmFjZSBET01XaW5kb3dNZWRpYVN0cmVhbSB7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1
bnRpbWVdIGF0dHJpYnV0ZSBEZXByZWNhdGVkUGVlckNvbm5lY3Rpb25Db25zdHJ1Y3RvciB3ZWJr
aXREZXByZWNhdGVkUGVlckNvbm5lY3Rpb247CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVd
IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbUNvbnN0cnVjdG9yIHdlYmtpdE1lZGlhU3RyZWFtOworICAg
ICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgUGVlckNvbm5lY3Rpb24wMENvbnN0
cnVjdG9yIHdlYmtpdFBlZXJDb25uZWN0aW9uMDA7CiAgICAgICAgIGF0dHJpYnV0ZSBTZXNzaW9u
RGVzY3JpcHRpb25Db25zdHJ1Y3RvciBTZXNzaW9uRGVzY3JpcHRpb247CiAgICAgICAgIGF0dHJp
YnV0ZSBJY2VDYW5kaWRhdGVDb25zdHJ1Y3RvciBJY2VDYW5kaWRhdGU7CiAgICAgICAgIGF0dHJp
YnV0ZSBNZWRpYVN0cmVhbUV2ZW50Q29uc3RydWN0b3IgTWVkaWFTdHJlYW1FdmVudDsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb24uaWRsCmluZGV4IDAxZDlkNTFmNTE3
ZTJmZjc0OTdiNGRlMTZhZjM3NzMxY2JmYTk2MDIuLmJjYmE4MjE5Yjc2MDRkMTNkYjE4MWNmN2Qy
OTE4MGMwMGI0MGQ1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTI0LDE1
ICsyNCwxNSBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwK
ICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTIsCi0gICAgICAgIENvbnN0cnVjdG9yKGlu
IERPTVN0cmluZyBzZXJ2ZXJDb25maWd1cmF0aW9uLCBpbiBbQ2FsbGJhY2tdIFNpZ25hbGluZ0Nh
bGxiYWNrIHNpZ25hbGluZ0NhbGxiYWNrKSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3Ry
aW5nIHNlcnZlckNvbmZpZ3VyYXRpb24sIFtDYWxsYmFja10gaW4gU2lnbmFsaW5nQ2FsbGJhY2sg
c2lnbmFsaW5nQ2FsbGJhY2spLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0LAogICAgICAgICBKU0N1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBFdmVudFRhcmdldAot
ICAgIF0gRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uIHsKKyAgICBdIGludGVyZmFjZSBEZXByZWNh
dGVkUGVlckNvbm5lY3Rpb24gewogICAgICAgICB2b2lkIHByb2Nlc3NTaWduYWxpbmdNZXNzYWdl
KGluIERPTVN0cmluZyBtZXNzYWdlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKQEAgLTY1LDEyICs2NSwxMiBAQCBtb2R1bGUgcDJwIHsKICAgICAgICAgLy8gRXZlbnRUYXJn
ZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxd
IGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkKICAgICAgICAgICAgIHJhaXNl
cyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYWxsYmFjay5pZGwKaW5kZXggNjlkNjQ2ZjIwM2Ey
MmNmNGYyNzQ4ZjZhZGY5ZjFhNGYyN2MxNzA5Yi4uZGJlN2IyMWNmMWFjNWZkYjQzNDAzMjhlN2Vj
YmM3ZTRkZjg5NWE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9JY2VDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9JY2VDYWxsYmFjay5pZGwKQEAgLTMwLDExICszMCwxMSBAQAogCiBtb2R1bGUgcDJwIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJF
QU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBJY2VDYWxsYmFjayB7CisgICAgXSBpbnRlcmZh
Y2UgSWNlQ2FsbGJhY2sgewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEljZUNhbmRp
ZGF0ZSBjYW5kaWRhdGUsIGluIGJvb2xlYW4gbW9yZVRvRm9sbG93LCBpbiBQZWVyQ29ubmVjdGlv
bjAwIHNvdXJjZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbAppbmRleCBlMWM0MmZhMjYzYzVmN2M5
MWNkY2Y2MzBhMjkzNDUxMmQwNTc2N2VmLi5jZTJmZmRkZWRlMWRhNjdlMjMyM2M3OTE1YzNkYTMy
YjAxMzVhNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0ljZUNhbmRpZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9JY2VDYW5kaWRhdGUuaWRsCkBAIC0zMCwxMyArMzAsMTMgQEAKIAogbW9kdWxlIHAycCB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgbGFiZWwsIGluIERPTVN0cmluZyBj
YW5kaWRhdGVMaW5lKQotICAgIF0gSWNlQ2FuZGlkYXRlIHsKKyAgICBdIGludGVyZmFjZSBJY2VD
YW5kaWRhdGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwog
CiAgICAgICAgIERPTVN0cmluZyB0b1NkcCgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlk
bAppbmRleCA1ZTc2OWFmZjg4Y2NhOThiMDBhNzU4YTM5YjcyODAzOGQ1NWIwYzkwLi5kYjUxYmEy
YTQyZDJhZmVkNGJlODdkYmVjZGM2ZWMzMzY5ZDU4YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwKQEAgLTI0
LDEzICsyNCwxMyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBFdmVudFRhcmdldCwK
ICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0dlbmVyYXRlVG9K
U09iamVjdAotICAgIF0gTG9jYWxNZWRpYVN0cmVhbSA6IE1lZGlhU3RyZWFtIHsKKyAgICBdIGlu
dGVyZmFjZSBMb2NhbE1lZGlhU3RyZWFtIDogTWVkaWFTdHJlYW0gewogICAgICAgICB2b2lkIHN0
b3AoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbAppbmRleCA2NWExODMzMTJhYjlkNmFhZGQ1YzFjYmFk
MTA5MzE4OWU3M2ExYzlkLi5kY2ExYTAzNWIyMWQ1MGUxY2RlNjRhMTQyZDhjY2ZmYzlmMDcxNmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLmlkbApAQCAtMjQsMTMgKzI0LDEzIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBNZWRpYVN0cmVhbVRyYWNrTGlz
dCBhdWRpb1RyYWNrcywgaW4gTWVkaWFTdHJlYW1UcmFja0xpc3QgdmlkZW9UcmFja3MpLAogICAg
ICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAgICBDb25zdHJ1Y3Rv
clJhaXNlc0V4Y2VwdGlvbgotICAgXSBNZWRpYVN0cmVhbSB7CisgICBdIGludGVyZmFjZSBNZWRp
YVN0cmVhbSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbVRyYWNrTGlzdCBhdWRpb1RyYWNr
czsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtVHJhY2tMaXN0IHZpZGVv
VHJhY2tzOwpAQCAtNDUsMTIgKzQ1LDEyIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gRXZl
bnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01T
dHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAg
ICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkKICAgICAgICAgICAg
IHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsCmlu
ZGV4IGExOTMwYTRiNmMxMTk5ZDk4NmNkNmI3NTAxZTJlM2UwMGI5YTBlZDMuLjE4MDc5MWUxNzc2
MDk2ZDZjOTFlZGE2MDAyMDgyOTZjZjM3MjU4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbApAQCAtMjYsMTAg
KzI2LDEwIEBAIG1vZHVsZSBldmVudHMgewogCiAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBXSEFU
V0cgc3BlY2lmaWNhdGlvbjoKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS92aWRlby1jb25mZXJlbmNpbmctYW5kLXBlZXIt
dG8tcGVlci1jb21tdW5pY2F0aW9uLmh0bWwjbWVkaWFzdHJlYW1ldmVudAotICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKLSAgICBdIE1lZGlhU3RyZWFt
RXZlbnQgOiBFdmVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0K
KyAgICBdIGludGVyZmFjZSBNZWRpYVN0cmVhbUV2ZW50IDogRXZlbnQgewogICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBNZWRpYVN0cmVhbSBzdHJlYW07CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1MaXN0
LmlkbAppbmRleCBkMTgyZTZmODI2Zjc5NDNhOWFlODg2ZTZjNDFiNDg4YWI0YzI4NzVkLi4zZDYx
ZDE0NjgyZDdhZDRlYjdkYjZkZmUwOTIyMjJhNTcyNGVhNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtTGlzdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUxpc3QuaWRsCkBAIC0y
NCwxMyArMjQsMTMgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICAgICAgSW5kZXhlZEdldHRl
cgotICAgIF0gTWVkaWFTdHJlYW1MaXN0IHsKLSAgICAgICAgTWVkaWFTdHJlYW0gaXRlbShpbiBb
SXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgXSBpbnRlcmZhY2UgTWVkaWFTdHJl
YW1MaXN0IHsKKyAgICAgICAgTWVkaWFTdHJlYW0gaXRlbShbSXNJbmRleF0gaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmlkbAppbmRleCA3OTg3NTk3NWU5MTdj
YmU2ZWY5OTMxODI4ZDU4YzFjOTY5ZjhlZGViLi5iOTNhOWJiMTJhMzU0MDMwMzQ0N2EyNmY0YWFh
ZGNmM2YxOTE0ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5pZGwKQEAgLTI0LDEyICsyNCwxMiBAQAogCiBtb2R1
bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9T
VFJFQU0sCi0gICAgXSBNZWRpYVN0cmVhbVRyYWNrIHsKKyAgICBbCisgICAgICAgIENvbmRpdGlv
bmFsPU1FRElBX1NUUkVBTQorICAgIF0gaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2sgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuIGVuYWJsZWQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmlkbApp
bmRleCAzMjBjNjAzMGViMzE3NjI2N2Q0YjVjMzllNzQ1OTliNjg1ZTA5Y2IwLi40YjhhYTUyYzdh
YmRlZTI0MGNiNzE4MGM3ZjRmMzRjYWQzYmI0YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaWRs
CkBAIC0yNCwxMCArMjQsMTAgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgXSBNZWRpYVN0cmVhbVRy
YWNrRXZlbnQgOiBFdmVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJF
QU0KKyAgICBdIGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrRXZlbnQgOiBFdmVudCB7CiAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtVHJhY2sgdHJhY2s7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKaW5kZXggOTU3NjU1ZDA4MGQ4YTJiZDdjYjFmOWJi
NzEyODZhZGE3ZjRlZmU0MC4uODg0YTQwYmQ3OThkYmM1ZjJjODQ4YTg2MTY0ODljMTAzNDFjZjQx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKQEAgLTI0LDEzICsyNCwxMyBAQAogCiBtb2R1bGUg
Y29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBFdmVudFRhcmdldAot
ICAgIF0gTWVkaWFTdHJlYW1UcmFja0xpc3QgeworICAgIF0gaW50ZXJmYWNlIE1lZGlhU3RyZWFt
VHJhY2tMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwotICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIGl0ZW0oW0lzSW5kZXhdIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHZvaWQgYWRkKGluIE1lZGlhU3RyZWFt
VHJhY2sgdHJhY2spCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTQzLDEy
ICs0MywxMiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFj
ZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1
cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFu
IHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3Ry
aW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3Rl
bmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRp
c3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNl
cHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvck1lZGlhU3RyZWFtLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCmluZGV4IDQwZjhm
MGRiZGJmMGJiYWI3NTA5YmFmMjJhOGRjYjhhMmYwMDA0ZTkuLjczYjk1NDI3MmUzZjU1NzQ3MzE3
OTAyOGU4ZTU5YzdmZmNmY2ZiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yTWVkaWFTdHJlYW0uaWRsCkBAIC0xOSwxNCAr
MTksMTQgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBTdXBwbGVtZW50YWw9TmF2
aWdhdG9yCi0gICAgXSBOYXZpZ2F0b3JNZWRpYVN0cmVhbSB7CisgICAgXSBpbnRlcmZhY2UgTmF2
aWdhdG9yTWVkaWFTdHJlYW0gewogICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSB2b2lkIHdl
YmtpdEdldFVzZXJNZWRpYShpbiBEaWN0aW9uYXJ5IG9wdGlvbnMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDYWxsYmFja10gTmF2aWdh
dG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NhbGxiYWNrLCBP
cHRpb25hbF0gTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQ2Fs
bGJhY2tdIGluIE5hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2sg
ZXJyb3JDYWxsYmFjaykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCmluZGV4IDI5MzQ1MGIyMmJiYjhl
OTk1ZmY1ZjMzZWE3NzA4NDFhZGViZWVmZjguLjk4N2NlMTYzMTI4MzlmNTBmYjhlMGMyZGI4OTg4
YTRiYzU2MDY3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsCkBAIC0yMywxMiArMjMs
MTIgQEAKICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCi0gICAgXSBOYXZpZ2F0b3JVc2VyTWVkaWFF
cnJvciB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgewogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJNSVNTSU9OX0RFTklFRCA9IDE7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwogICAgIH07CiAKLX0KK307CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9y
VXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCmluZGV4IDQ0OTI4Zjgx
ZjJjNDE3ZDVmODJiMDU2NGE3MDhjNDRhMWE0MjNiODAuLjNlMmIyZjllNzE0ZmE2NWI0YzAyMWUz
YTFiMzllMDA4NDIzYjY3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxi
YWNrLmlkbApAQCAtMjMsMTEgKzIzLDExIEBACiAgKi8KIAogbW9kdWxlIHdpbmRvdyB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAg
ICAgICAgQ2FsbGJhY2sKLSAgICBdIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2sgewor
ICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2sgewogICAgICAg
ICBib29sZWFuIGhhbmRsZUV2ZW50KGluIE5hdmlnYXRvclVzZXJNZWRpYUVycm9yIGVycm9yKTsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJh
Y2suaWRsCmluZGV4IDBhNjYxODA3YjczMGJiYjQzYzAwYTFkODg5ZWI4YTk2MGQ2MTA1MmEuLjQy
MmYyNjI1ODAzNTBjNjkxYWNjMDhlZTI2Yjk1ODE1ZWZlMmIzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0Nh
bGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmln
YXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwKQEAgLTIzLDExICsyMywxMSBAQAogICov
CiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBOYXZpZ2F0b3JV
c2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gTG9j
YWxNZWRpYVN0cmVhbSBzdHJlYW0pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbAppbmRl
eCBiZDU2Yzg3NzMyOWRmZWY4MjU0Y2RiZjk1OTRjNmNkMmNmMTMzZmQyLi40MGZmZTcxNTc1YzNh
YTliNjcwNzFhOGUyNWY5NzZmMTY5OGMzNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwKQEAgLTMwLDE3ICsz
MCwxNyBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKLSAg
ICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIHNlcnZlckNvbmZpZ3VyYXRpb24sIGluIFtD
YWxsYmFja10gSWNlQ2FsbGJhY2sgaWNlQ2FsbGJhY2spLAorICAgICAgICBDb25zdHJ1Y3Rvcihp
biBET01TdHJpbmcgc2VydmVyQ29uZmlndXJhdGlvbiwgW0NhbGxiYWNrXSBpbiBJY2VDYWxsYmFj
ayBpY2VDYWxsYmFjayksCiAgICAgICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
CiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAogICAgICAgICBFdmVudFRhcmdl
dAotICAgIF0gUGVlckNvbm5lY3Rpb24wMCB7Ci0gICAgICAgIFNlc3Npb25EZXNjcmlwdGlvbiBj
cmVhdGVPZmZlcihpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgbWVkaWFIaW50cykKKyAgICBdIGlu
dGVyZmFjZSBQZWVyQ29ubmVjdGlvbjAwIHsKKyAgICAgICAgU2Vzc2lvbkRlc2NyaXB0aW9uIGNy
ZWF0ZU9mZmVyKFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBtZWRpYUhpbnRzKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFNlc3Npb25EZXNjcmlwdGlvbiBjcmVh
dGVBbnN3ZXIoaW4gRE9NU3RyaW5nIG9mZmVyLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgbWVk
aWFIaW50cykKKyAgICAgICAgU2Vzc2lvbkRlc2NyaXB0aW9uIGNyZWF0ZUFuc3dlcihpbiBET01T
dHJpbmcgb2ZmZXIsIFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBtZWRpYUhpbnRzKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gQWN0aW9ucywgZm9yIHNl
dExvY2FsRGVzY3JpcHRpb24vc2V0UmVtb3RlRGVzY3JpcHRpb24uCkBAIC02Miw3ICs2Miw3IEBA
IG1vZHVsZSBwMnAgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDTE9TRUQgPSAzOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKIAot
ICAgICAgICB2b2lkIHN0YXJ0SWNlKGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBpY2VPcHRpb25z
KQorICAgICAgICB2b2lkIHN0YXJ0SWNlKFtPcHRpb25hbF0gaW4gRGljdGlvbmFyeSBpY2VPcHRp
b25zKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBw
cm9jZXNzSWNlTWVzc2FnZShpbiBJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKQpAQCAtNzcsNyArNzcs
NyBAQCBtb2R1bGUgcDJwIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSUNFX0NMT1NF
RCA9IDB4NzAwOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgaWNl
U3RhdGU7CiAKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBhZGRTdHJlYW0oaW4g
TWVkaWFTdHJlYW0gc3RyZWFtLCBpbiBbT3B0aW9uYWxdIERpY3Rpb25hcnkgbWVkaWFTdHJlYW1I
aW50cykKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBhZGRTdHJlYW0oaW4gTWVk
aWFTdHJlYW0gc3RyZWFtLCBbT3B0aW9uYWxdIGluIERpY3Rpb25hcnkgbWVkaWFTdHJlYW1IaW50
cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkIHJlbW92ZVN0cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0pCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTk3LDEyICs5NywxMiBAQCBtb2R1bGUg
cDJwIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRk
RXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAg
ICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVu
dCBldmVudCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vz
c2lvbkRlc2NyaXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAppbmRleCBkNGFmZWRhZDlmN2M3NjA3NTJkNDQzYmM3NDg0
Yjc1NTU4NDA2MDA1Li41NzMxMGQ4OWU0ZDMyODQ1M2EwNzA0NTUyZGY0OWVmNjI4MzI0OWQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNj
cmlwdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb24uaWRsCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogbW9kdWxlIHAycCB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFN
LAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgc2RwKQotICAgIF0gU2Vzc2lvbkRl
c2NyaXB0aW9uIHsKKyAgICBdIGludGVyZmFjZSBTZXNzaW9uRGVzY3JpcHRpb24gewogICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGFkZENhbmRpZGF0ZShpbiBJY2VDYW5kaWRhdGUg
Y2FuZGlkYXRlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
RE9NU3RyaW5nIHRvU2RwKCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2lnbmFsaW5nQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5pZGwKaW5kZXgg
NjllNGI5MmY0YTg4Nzc5MmM1ZjFlNTJjMTE2YTIxYzU1YTRmNmQ3Zi4uN2Q3YjY2ZjRlOTllZDNk
MTg2ODZlMjRlNmY4ZjMxNmI1NDQ2OTZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxsYmFjay5pZGwKQEAgLTI0LDExICsy
NCwxMSBAQAogCiBtb2R1bGUgcDJwIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBTaWdu
YWxpbmdDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgU2lnbmFsaW5nQ2FsbGJhY2sgewogICAg
ICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBEZXByZWNh
dGVkUGVlckNvbm5lY3Rpb24gc291cmNlKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0b3JOZXR3b3JrSW5mb0Nv
bm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5mby9OYXZpZ2F0
b3JOZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsCmluZGV4IGY2MWQwZjNjYjUxYmIyMzE4OWE4ZDEx
Y2ExNGJmODllM2EyMmQyMDMuLmQxNmQ3Mzc5MjUyNGI5ZjEyNzNmODkxNzg4MGU3MWQ2ZmQ5NTEz
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmF2aWdh
dG9yTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25ldHdvcmtpbmZvL05hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwKQEAgLTE5LDEx
ICsxOSwxMSBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1ORVRXT1JLX0lORk8sCiAgICAgICAgIFN1cHBsZW1lbnRhbD1O
YXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvck5ldHdvcmtJbmZvQ29ubmVjdGlvbiB7CisgICAgXSBp
bnRlcmZhY2UgTmF2aWdhdG9yTmV0d29ya0luZm9Db25uZWN0aW9uIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbiB3ZWJraXRDb25uZWN0aW9uOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtp
bmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25l
dHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5pZGwKaW5kZXggOGU1NmVmYWYzNWI0ZDVl
NjUwYmI4ZGViNTMzODBhY2MxODQ4ZTlmZC4uYWRjNDFkMzA1ZjQ0NjA3OWU2ZWZlNjgyOWE3NzRj
NmI1NjBjMTM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9uZXR3b3JraW5m
by9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmlkbApAQCAtMjIsMTEgKzIyLDExIEBA
CiBtb2R1bGUgd2luZG93IHsKIAogICAgIC8vIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kYXAvcmF3
LWZpbGUvdGlwL25ldHdvcmstYXBpL2luZGV4Lmh0bWwKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9TkVUV09SS19JTkZPLAogICAgICAgICBBY3RpdmVET01PYmpl
Y3QsCiAgICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAgXSBOZXR3b3JrSW5mb0Nvbm5lY3Rpb24gewor
ICAgIF0gaW50ZXJmYWNlIE5ldHdvcmtJbmZvQ29ubmVjdGlvbiB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgYmFuZHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBtZXRlcmVkOwogCkBAIC0zNSwxMSArMzUsMTEgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlz
dGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZv
aWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVh
biB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2
dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
RE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKaW5kZXggZWE4YTEyOWM1N2ExZGM2ODY1YjE1NThj
OWUzYzc0NjUzZDlkZjI5Ni4uYjc4YTBjNDQ4NjlhOTdmYmZkZThkZjc5NjhkNjM1NWQyZDZiMmFm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMjYsMTYgKzI2LDE2IEBACiAK
IG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPU5PVElGSUNBVElPTlN8TEVHQUNZX05PVElGSUNBVElPTlMsCiAgICAgICAgIFN1cHBs
ZW1lbnRhbD1ET01XaW5kb3cKLSAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgeworICAgIF0g
aW50ZXJmYWNlIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgewogI2lmIGRlZmluZWQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5vdGlmaWNhdGlvbkNl
bnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBy
ZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7
CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUwogICAgICAgICBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uQ29uc3RydWN0b3IgTm90
aWZpY2F0aW9uOwogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKaW5kZXggZGEyZWI3
ZjI0NWY5ZjU2YzZlYjNiNzU1YThkNjY2NWRjYjRiZTMzZi4uMTA1MGY5MGRiYWFlNmRjMTk3MjAz
NWE2ZTBjYjE0MjdlNjA2NjVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKQEAgLTMxLDE3ICszMSwxNyBAQAogCiBt
b2R1bGUgdGhyZWFkcyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9Tk9USUZJQ0FUSU9OU3xMRUdBQ1lfTk9USUZJQ0FUSU9OUywKICAgICAgICAgQWN0aXZl
RE9NT2JqZWN0LAotICAgICAgICBFdmVudFRhcmdldCwKKyAgICAgICAgRXZlbnRUYXJnZXQKICNp
ZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTk9USUZJQ0FUSU9OUwot
ICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgdGl0bGUsIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERpY3Rpb25hcnkgb3B0aW9ucyksCi0gICAgICAgIENhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsCisgICAgICAgICwgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5n
IHRpdGxlLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBEaWN0aW9uYXJ5IG9wdGlv
bnMpCisgICAgICAgICwgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dAogI2Vsc2UKLSAg
ICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgICAgICwgT21pdENvbnN0cnVjdG9yCiAjZW5kaWYK
LSAgICBdIE5vdGlmaWNhdGlvbiB7CisgICAgXSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHsKICAg
ICAgICAgdm9pZCBzaG93KCk7CiAjaWYgZGVmaW5lZChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElP
TlMpICYmIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUwogICAgICAgICB2b2lkIGNhbmNlbCgp
OwpAQCAtNzUsMTIgKzc1LDEyIEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAgLy8gRXZlbnRU
YXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJp
bmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExp
c3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwog
ICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAg
cmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmlkbAppbmRleCBkYTk5YmE5ZmYzYzQwNjUzMmQ5ZDczNzFiNmJlNjg5YzVkOGFmMWZkLi4yMTVm
YmVhMjY0ZjQ3MDQ5ZTIyN2VkNmNjYjZmYTEzZjAyMzkxYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmlkbApAQCAtMzEsMTEgKzMxLDExIEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1MRUdBQ1lfTk9USUZJQ0FUSU9OUywK
ICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBd
IE5vdGlmaWNhdGlvbkNlbnRlciB7CisgICAgXSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uQ2VudGVy
IHsKICNpZiAhZGVmaW5lZChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpIHx8ICFFTkFC
TEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkKICAgICAgICBbVjhDdXN0b21dIE5vdGlmaWNhdGlv
biBjcmVhdGVIVE1MTm90aWZpY2F0aW9uKGluIERPTVN0cmluZyB1cmwpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogI2VuZGlmCkBAIC00NSw0ICs0NSw0IEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAg
ICBbQ3VzdG9tXSB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKGluIFZvaWRDYWxsYmFjayBjYWxsYmFj
ayk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxs
YmFjay5pZGwKaW5kZXggMWYxMTE2MTJlMjQwY2VjYWExOWZiNWVhNzFhYWNkN2QyNjA5M2MyMC4u
MDc4MzU5ZDI2ZWZkMTJlMzYzMjhmN2M4YzE1M2E4MTg3YTQxMGE3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBt
b2R1bGUgdGhyZWFkcyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9Tk9USUZJQ0FUSU9OUywKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcg
cGVybWlzc2lvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJDb250ZXh0Tm90aWZpY2F0aW9ucy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvV29ya2VyQ29udGV4dE5vdGlmaWNh
dGlvbnMuaWRsCmluZGV4IDNjOTNiYzJiM2ZjYjRmMWYzNjg0N2YwODA3OGY5YWZlMzM4ZDEwOWEu
Ljg0ODY1YTYzZTZlMmFmODYwNDFhY2VhNTNhZTIzZThlYjRkOTc4NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Xb3JrZXJDb250ZXh0Tm90aWZpY2F0
aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL1dvcmtl
ckNvbnRleHROb3RpZmljYXRpb25zLmlkbApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSB0
aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1O
T1RJRklDQVRJT05TfExFR0FDWV9OT1RJRklDQVRJT05TLAogICAgICAgICBTdXBwbGVtZW50YWw9
V29ya2VyQ29udGV4dAotICAgIF0gV29ya2VyQ29udGV4dE5vdGlmaWNhdGlvbnMgeworICAgIF0g
aW50ZXJmYWNlIFdvcmtlckNvbnRleHROb3RpZmljYXRpb25zIHsKICNpZiBkZWZpbmVkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TCi0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRp
b25DZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGlt
ZV0gcmVhZG9ubHkgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRp
b25zOwogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9xdW90YS9ET01XaW5kb3dRdW90YS5pZGwKaW5kZXggZDRjNjVjNDNmMzQ0M2U2YWJiMDVkMWJk
Y2I3MWE3ODRhZDI2ODhlNi4uNjRiNGYyYWRlZjhkNmE3ZTFkYTViZDJiMGMwYmQzYmE2NmQ1NWZh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90
YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9ET01XaW5kb3dRdW90YS5p
ZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1RVU9UQSwKICAgICAgICAgU3VwcGxlbWVu
dGFsPURPTVdpbmRvdwotICAgIF0gRE9NV2luZG93UXVvdGEgeworICAgIF0gaW50ZXJmYWNlIERP
TVdpbmRvd1F1b3RhIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFN0b3JhZ2VJbmZvIHdl
YmtpdFN0b3JhZ2VJbmZvOwogICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9xdW90YS9TdG9yYWdlSW5mby5pZGwKaW5kZXggNGNkOTcxYWViZTZiNzkyOTI5MzRkZDk4
ZjdkZjllNmExYjU1YmMwOC4uM2NmZjY5Mzc2M2QwMjU5OGQyYTY5OGE3MWRhYjllY2YxNzI1ODRl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mby5pZGwKQEAg
LTI0LDE0ICsyNCwxNCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCiAgICAgICAgIE9taXRDb25zdHJ1
Y3RvcgotICAgIF0gU3RvcmFnZUluZm8geworICAgIF0gaW50ZXJmYWNlIFN0b3JhZ2VJbmZvIHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVEVNUE9SQVJZID0gMDsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUEVSU0lTVEVOVCA9IDE7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgcXVlcnlVc2FnZUFuZFF1b3RhKGluIHVuc2lnbmVk
IHNob3J0IHN0b3JhZ2VUeXBlLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTdG9yYWdlSW5mb1Vz
YWdlQ2FsbGJhY2sgdXNhZ2VDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU3RvcmFn
ZUluZm9FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwotICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCByZXF1ZXN0UXVvdGEoaW4gdW5zaWduZWQgc2hvcnQg
c3RvcmFnZVR5cGUsIGluIHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YUluQnl0ZXMsIGluIFtD
YWxsYmFjaywgT3B0aW9uYWxdIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjayBxdW90YUNhbGxiYWNr
LCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2sgZXJyb3JD
YWxsYmFjayk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lk
IHF1ZXJ5VXNhZ2VBbmRRdW90YShpbiB1bnNpZ25lZCBzaG9ydCBzdG9yYWdlVHlwZSwgW0NhbGxi
YWNrLCBPcHRpb25hbF0gaW4gU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrIHVzYWdlQ2FsbGJhY2ss
IFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjayBlcnJvckNh
bGxiYWNrKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQg
cmVxdWVzdFF1b3RhKGluIHVuc2lnbmVkIHNob3J0IHN0b3JhZ2VUeXBlLCBpbiB1bnNpZ25lZCBs
b25nIGxvbmcgbmV3UXVvdGFJbkJ5dGVzLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBTdG9yYWdl
SW5mb1F1b3RhQ2FsbGJhY2sgcXVvdGFDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4g
U3RvcmFnZUluZm9FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spOwogICAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vycm9y
Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb0Vy
cm9yQ2FsbGJhY2suaWRsCmluZGV4IDY2YzMzMTZiYzcxYjY4YjVlY2NkODAyZWYxMDg2YTM4MGMx
ZjVhZTUuLjM3ZTlkNDJjMDQyOWIzM2RiNzIyOGI5ZDQ5MTBhYmU4N2EzYjAxZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9FcnJvckNhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvRXJyb3JD
YWxsYmFjay5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9UVVPVEEsCiAgICAg
ICAgIENhbGxiYWNrCi0gICAgXSBTdG9yYWdlSW5mb0Vycm9yQ2FsbGJhY2sgeworICAgIF0gaW50
ZXJmYWNlIFN0b3JhZ2VJbmZvRXJyb3JDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxl
RXZlbnQoaW4gRE9NQ29yZUV4Y2VwdGlvbiBlcnJvcik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvUXVvdGFDYWxsYmFj
ay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvUXVvdGFDYWxs
YmFjay5pZGwKaW5kZXggMWM4ZTExYzY0MDJmYjI5MGQ3OWU2MjNjZjg0MTQyMzBiNTlmYzZmMS4u
ZTMzODQ5ZDBmNTFlYjIyNDU0NjI4ZTU0N2IwYWM5OGQ1Y2I5OGVjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1F1b3RhQ2FsbGJhY2suaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9RdW90YUNhbGxiYWNr
LmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2UgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1RVU9UQSwKICAgICAgICAgQ2Fs
bGJhY2sKLSAgICBdIFN0b3JhZ2VJbmZvUXVvdGFDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2Ug
U3RvcmFnZUluZm9RdW90YUNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChp
biB1bnNpZ25lZCBsb25nIGxvbmcgZ3JhbnRlZFF1b3RhSW5CeXRlcyk7CiAgICAgfTsKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvVXNh
Z2VDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZv
VXNhZ2VDYWxsYmFjay5pZGwKaW5kZXggZGZhNThlNjJkMjAxNDFjZWY2NDgxMTkyMmMxM2YyMjcw
NjE3ODMxYi4uMTAwODJiNDVjNDlmZmM5MDZmNjhlN2ZlODAwM2M1OThkYzQ4ZDZiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9xdW90YS9TdG9yYWdlSW5mb1VzYWdlQ2FsbGJh
Y2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcXVvdGEvU3RvcmFnZUluZm9Vc2Fn
ZUNhbGxiYWNrLmlkbApAQCAtMjksMTEgKzI5LDExIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2Ug
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1RVU9UQSwKICAg
ICAgICAgQ2FsbGJhY2sKLSAgICBdIFN0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjayB7CisgICAgXSBp
bnRlcmZhY2UgU3RvcmFnZUluZm9Vc2FnZUNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVhbiBoYW5k
bGVFdmVudChpbiB1bnNpZ25lZCBsb25nIGxvbmcgY3VycmVudFVzYWdlSW5CeXRlcywgaW4gdW5z
aWduZWQgbG9uZyBsb25nIGN1cnJlbnRRdW90YUluQnl0ZXMpOwogICAgIH07Ci19Cit9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2gu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvRE9NV2luZG93U3BlZWNoLmlkbApp
bmRleCAwYzI2ZjAzZDcwOThhM2VhYTE2ZTFhNzA5MjI5NDkyYzQwNGZlMDNkLi40ZTk3OWU0MzEx
YTg4Y2QxYzI4NTZhZTZjYTcxNzlhYzI4NjUyZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9ET01XaW5kb3dTcGVlY2guaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5pZGwKQEAgLTI0LDE0ICsyNCwxNCBAQAog
ICovCiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5k
b3cKLSAgICBdIERPTVdpbmRvd1NwZWVjaCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBTcGVlY2hSZWNvZ25pdGlvbkNvbnN0cnVjdG9yIHdlYmtpdFNwZWVjaFJlY29n
bml0aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3BlZWNoUmVj
b2duaXRpb25FcnJvckNvbnN0cnVjdG9yIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXJyb3I7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBTcGVlY2hSZWNvZ25pdGlvbkV2
ZW50Q29uc3RydWN0b3Igd2Via2l0U3BlZWNoUmVjb2duaXRpb25FdmVudDsKLSAgICAgICAgYXR0
cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIFNwZWVjaEdyYW1tYXJDb25zdHJ1Y3RvciB3ZWJr
aXRTcGVlY2hHcmFtbWFyOwotICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0g
U3BlZWNoR3JhbW1hckxpc3RDb25zdHJ1Y3RvciB3ZWJraXRTcGVlY2hHcmFtbWFyTGlzdDsKKyAg
ICBdIGludGVyZmFjZSBET01XaW5kb3dTcGVlY2ggeworICAgICAgICBbVjhFbmFibGVkQXRSdW50
aW1lXSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25Db25zdHJ1Y3RvciB3ZWJraXRTcGVlY2hS
ZWNvZ25pdGlvbjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIFNwZWVj
aFJlY29nbml0aW9uRXJyb3JDb25zdHJ1Y3RvciB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbkVycm9y
OworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRp
b25FdmVudENvbnN0cnVjdG9yIHdlYmtpdFNwZWVjaFJlY29nbml0aW9uRXZlbnQ7CisgICAgICAg
IFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBTcGVlY2hHcmFtbWFyQ29uc3RydWN0b3Ig
d2Via2l0U3BlZWNoR3JhbW1hcjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmli
dXRlIFNwZWVjaEdyYW1tYXJMaXN0Q29uc3RydWN0b3Igd2Via2l0U3BlZWNoR3JhbW1hckxpc3Q7
CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hHcmFtbWFyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVj
aEdyYW1tYXIuaWRsCmluZGV4IGI3OTNhYzNhYmVmOTJmZTg1N2U0NTQ4ZjcwODU1NGZmY2NhZTgz
YzkuLjRjYjE1Mjk4ZWRhZTNjMjA0ZDQ1MWQ1ZDEwNTg2Njk2NmY1MmZkYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXIuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXIuaWRsCkBAIC0yNCwxMSAr
MjQsMTEgQEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwKICAgICAgICAgQ29uc3RydWN0b3IK
LSAgICBdIFNwZWVjaEdyYW1tYXIgewotICAgICAgICBhdHRyaWJ1dGUgW1VSTCxDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBET01TdHJpbmcgc3JjOworICAgIF0gaW50ZXJmYWNlIFNw
ZWVjaEdyYW1tYXIgeworICAgICAgICBbVVJMLENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgd2Vp
Z2h0OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVl
Y2gvU3BlZWNoR3JhbW1hckxpc3QuaWRsCmluZGV4IGJmNGQ3YzY5ZmI1MTFkNjZmNTA3ZjE2NDRh
NTI3OWNhYzUwZTI1ZjguLmQyYWM1MDA3ZTA1MGVmNDYwMTdiNjhlY2QyZmM1YWI3ODMyZjk3YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXJM
aXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hHcmFtbWFy
TGlzdC5pZGwKQEAgLTI0LDE0ICsyNCwxNCBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNILAog
ICAgICAgICBJbmRleGVkR2V0dGVyLAotICAgICAgICBDb25zdHJ1Y3RvciwKLSAgICBdIFNwZWVj
aEdyYW1tYXJMaXN0IHsKKyAgICAgICAgQ29uc3RydWN0b3IKKyAgICBdIGludGVyZmFjZSBTcGVl
Y2hHcmFtbWFyTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKLSAgICAgICAgU3BlZWNoR3JhbW1hciBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IHZvaWQgYWRkRnJvbVVyaShpbiBET01TdHJpbmcgc3JjLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHdl
aWdodCk7Ci0gICAgICAgIHZvaWQgYWRkRnJvbVN0cmluZyhpbiBET01TdHJpbmcgc3RyaW5nLCBp
biBbT3B0aW9uYWxdIGZsb2F0IHdlaWdodCk7CisgICAgICAgIFNwZWVjaEdyYW1tYXIgaXRlbShb
SXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGFkZEZyb21VcmkoaW4gRE9NU3RyaW5nIHNyYywgW09w
dGlvbmFsXSBpbiBmbG9hdCB3ZWlnaHQpOworICAgICAgICB2b2lkIGFkZEZyb21TdHJpbmcoaW4g
RE9NU3RyaW5nIHN0cmluZywgW09wdGlvbmFsXSBpbiBmbG9hdCB3ZWlnaHQpOwogICAgIH07Ci19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb24uaWRsCmluZGV4IGY2ZTI4NDRkNTAyMDRkMzI5Yjg0MDc0YWEyNDA3ZGJiNzAyMWFmNzcu
LjA5YTZmMTAxZGM3ZTJhZjQ0ZTgzODE2Nzg5NTdkMDc4NjllYWQ1OGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5pZGwKQEAgLTI0
LDEzICsyNCwxMyBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U0NSSVBURURfU1BFRUNILAogICAgICAgICBBY3RpdmVE
T01PYmplY3QsCiAgICAgICAgIENvbnN0cnVjdG9yLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0LAotICAgICAgICBFdmVudFRhcmdldCwKLSAgICBdIFNwZWVjaFJlY29n
bml0aW9uIHsKKyAgICAgICAgRXZlbnRUYXJnZXQKKyAgICBdIGludGVyZmFjZSBTcGVlY2hSZWNv
Z25pdGlvbiB7CiAgICAgICAgIGF0dHJpYnV0ZSBTcGVlY2hHcmFtbWFyTGlzdCBncmFtbWFyczsK
ICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYW5nOwogICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBjb250aW51b3VzOwpAQCAtNTYsMTEgKzU2LDExIEBAIG1vZHVsZSBjb3JlIHsKICAgICAg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAg
ICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25BbHRlcm5h
dGl2ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkFsdGVybmF0aXZlLmlkbAppbmRleCBhOWQ0ZGVjM2RkZTkyNWIyNjQyOTg4NDMzMTQ2YzE0ZTg4
NWM2YjZlLi5lZWU0NmYzODNjYWQ5OWUyYTUzM2M2ZjBiYzMzOTNhNzgyNzMwODQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkFsdGVy
bmF0aXZlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkFsdGVybmF0aXZlLmlkbApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogbW9kdWxl
IGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TQ1JJ
UFRFRF9TUEVFQ0gKLSAgICBdIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgeworICAgIF0g
aW50ZXJmYWNlIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRyYW5zY3JpcHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBmbG9hdCBjb25maWRlbmNlOwogICAgIH07Ci19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaWRsCmlu
ZGV4IGYzN2NkMTMzODVjOTY3YTk3YmZhOTY3MGQ0YTg2YWFkNTZkOWJhYTguLjJmMjllY2ZhMGQ2
NzhkOGQxZWQ2ZjVlZGEyMTA4MGFmMzYwYjYxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaWRsCkBAIC0yNCwx
MCArMjQsMTAgQEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwKICAgICAgICAgQ29uc3RydWN0
b3JUZW1wbGF0ZT1FdmVudAotICAgIF0gU3BlZWNoUmVjb2duaXRpb25FcnJvciA6IEV2ZW50IHsK
KyAgICBdIGludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIDogRXZlbnQgewogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBPVEhFUiA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5PX1NQRUVDSCA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFCT1JU
RUQgPSAyOwpAQCAtMzgsNyArMzgsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IEJBRF9HUkFNTUFSID0gNzsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgTEFOR1VBR0VfTk9UX1NVUFBPUlRFRCA9IDg7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gdW5zaWduZWQgc2hvcnQgY29kZTsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rv
cl0gRE9NU3RyaW5nIG1lc3NhZ2U7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBtZXNzYWdlOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbAppbmRleCBmMGE5ODE4NTEy
ZTdmNWMwMTkyYzdkODJhN2I3OTEzZjk5MTMzMWFlLi44ZDcwNDI1YTZlMzcxYmEyNWM1ZGRkZTQw
NzkxOGFiYTRmNjlmMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50LmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAg
Ki8KIAogbW9kdWxlIGV2ZW50cyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNDUklQVEVEX1NQRUVDSCwKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1F
dmVudAotICAgIF0gU3BlZWNoUmVjb2duaXRpb25FdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHQgcmVzdWx0OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBzaG9ydCByZXN1bHRJbmRleDsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gU3BlZWNoUmVj
b2duaXRpb25SZXN1bHRMaXN0IHJlc3VsdEhpc3Rvcnk7CisgICAgXSBpbnRlcmZhY2UgU3BlZWNo
UmVjb2duaXRpb25FdmVudCA6IEV2ZW50IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgcmVz
dWx0OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBzaG9ydCByZXN1bHRJbmRleDsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0
IHJlc3VsdEhpc3Rvcnk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlc3VsdC5pZGwKaW5kZXggM2Y5
MTI2MjFjMGQ3MTM0YzZiOTRmZWU4ODQxYThjMWU1OTYwZmU0Yy4uOGNiZDc2YWY3YTBmNzhiMWQ1
YzQwNWMxZjljODdlY2JlOGVkOTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25SZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVzdWx0LmlkbApAQCAtMjQsMTMgKzI0
LDEzIEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TQ1JJUFRFRF9TUEVFQ0gsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIK
LSAgICBdIFNwZWVjaFJlY29nbml0aW9uUmVzdWx0IHsKKyAgICBdIGludGVyZmFjZSBTcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKLSAgICAgICAgU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZSBpdGVtKGlu
IFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZSBpdGVtKFtJc0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZmluYWw7CiAgICAgfTsKLX0KK307CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvblJlc3VsdExpc3QuaWRsCmluZGV4IGZkN2JlNGYxY2FlMDI3ZDQ2Zjk3Njg2YjQy
ODE2NDk5Y2NiZWMwODMuLmM3YjliMWI5MGI4Yjg2YjllNWU5ZTVmZDk3Y2E4ODFmYWU4YmRlYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uUmVzdWx0TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHRMaXN0LmlkbApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAog
bW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TQ1JJUFRFRF9TUEVFQ0gsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIKLSAgICBdIFNwZWVjaFJl
Y29nbml0aW9uUmVzdWx0TGlzdCB7CisgICAgXSBpbnRlcmZhY2UgU3BlZWNoUmVjb2duaXRpb25S
ZXN1bHRMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwotICAgICAgICBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdCBpdGVtKGluIFtJc0luZGV4XSB1
bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgU3BlZWNoUmVjb2duaXRpb25SZXN1bHQgaXRl
bShbSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9OYXZpZ2F0b3JWaWJyYXRp
b24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy92aWJyYXRpb24vTmF2aWdhdG9yVmlicmF0
aW9uLmlkbAppbmRleCAxNjQ4NDliYWJhMGY3NjBkOGQxN2RjYTliNzEyOTY2NjVjYTc4Y2UxLi4w
NmUwZWY5ZWM4ODAxMWJmZmU3NDcxMTM0YjliOWJjM2ZkYWFkNjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3ZpYnJhdGlvbi9OYXZpZ2F0b3JWaWJyYXRpb24uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvdmlicmF0aW9uL05hdmlnYXRvclZpYnJhdGlvbi5pZGwK
QEAgLTE5LDEyICsxOSwxMiBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1WSUJSQVRJT04sCiAgICAgICAgIFN1cHBsZW1l
bnRhbD1OYXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvclZpYnJhdGlvbiB7CisgICAgXSBpbnRlcmZh
Y2UgTmF2aWdhdG9yVmlicmF0aW9uIHsKICAgICAgICAgdm9pZCB3ZWJraXRWaWJyYXRlKGluIHVu
c2lnbmVkIGxvbmdbXT8gcGF0dGVybikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgd2Via2l0VmlicmF0ZShpbiB1bnNpZ25lZCBsb25nIHRpbWUpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuaWRsCmluZGV4IDhhNzM0ZTI4ZjFhNjk0Y2Q5M2Y2Y2EwNGVjZWI4M2Vj
YzM2OGUxYWYuLjExMGRiNGM1MWYzN2MzMmU2YmMwMDYwNjU5NjgzMWIxYzI1OGYzNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCkBAIC0y
Nyw5ICsyNyw5IEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPCi0gICAgXSBBdWRpb0J1ZmZlciB7Cisg
ICAgXSBpbnRlcmZhY2UgQXVkaW9CdWZmZXIgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyBsZW5ndGg7IC8vIGluIHNhbXBsZS1mcmFtZXMKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGZsb2F0IGR1cmF0aW9uOyAvLyBpbiBzZWNvbmRzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBmbG9hdCBzYW1wbGVSYXRlOyAvLyBpbiBzYW1wbGUtZnJhbWVzIHBlciBzZWNvbmQKQEAg
LTQwLDQgKzQwLDQgQEAgbW9kdWxlIGF1ZGlvIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFubmVsczsKICAgICAgICAgRmxvYXQzMkFycmF5IGdl
dENoYW5uZWxEYXRhKGluIHVuc2lnbmVkIGxvbmcgY2hhbm5lbEluZGV4KTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyQ2FsbGJhY2suaWRsCmluZGV4IDliMzU0NzdjNjRlZDRkZjY1NTAyNTA5NDQ3M2Y2ZGFjYjQ3
M2M2OWYuLjY4MjM4YTZjYWQzMDQ5MmZmYTM2YTczM2RmYzg1ZTczZTY0ODhiMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlckNhbGxi
YWNrLmlkbApAQCAtMjMsMTEgKzIzLDExIEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIEF1ZGlvQnVm
ZmVyQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvQnVmZmVyQ2FsbGJhY2sgewogICAg
ICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEF1ZGlvQnVmZmVyIGF1ZGlvQnVmZmVyKTsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbAppbmRleCBhZTZhZjkzZThhOGY4M2VjNDQ1MmQ3
YWFkZTE2ZTQwODY3NmVjOTk3Li5mMDA4Yjc1YjUxMTMwYzkwOTkwZmUxZjllY2NjZmM3OTg3NjUz
Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogbW9kdWxlIGF1
ZGlvIHsKICAgICAvLyBBIGNhY2hlZCAobm9uLXN0cmVhbWVkKSwgbWVtb3J5LXJlc2lkZW50IGF1
ZGlvIHNvdXJjZQotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1X
RUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBBdWRpb0J1ZmZl
clNvdXJjZU5vZGUgOiBBdWRpb1NvdXJjZU5vZGUgewotICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bVNldHRlcl0gQXVkaW9CdWZmZXIgYnVmZmVyCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChE
T01FeGNlcHRpb24pOworICAgIF0gaW50ZXJmYWNlIEF1ZGlvQnVmZmVyU291cmNlTm9kZSA6IEF1
ZGlvU291cmNlTm9kZSB7CisgICAgICAgIFtDdXN0b21TZXR0ZXJdIGF0dHJpYnV0ZSBBdWRpb0J1
ZmZlciBidWZmZXIKKyAgICAgICAgICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTlNDSEVEVUxFRF9TVEFURSA9IDA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNDSEVEVUxFRF9TVEFURSA9IDE7CkBAIC00OCw0ICs0OCw0
IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAgIHZvaWQgbm90ZUdyYWluT24oaW4gZG91YmxlIHdo
ZW4sIGluIGRvdWJsZSBncmFpbk9mZnNldCwgaW4gZG91YmxlIGdyYWluRHVyYXRpb24pOwogICAg
ICAgICB2b2lkIG5vdGVPZmYoaW4gZG91YmxlIHdoZW4pOwogICAgIH07Ci19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NoYW5uZWxNZXJnZXIu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NoYW5uZWxNZXJnZXIu
aWRsCmluZGV4IDM4NjJhZjlkMWY0NzQwNGRmZGRiMGVhZWQ4YzE1OTUyMDUzNThjNTcuLmQwMmE4
YTY0ZDkxMThiMTY2YTQ1ODU1NzcxMjkyZGZmZjhmNTJhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsTWVyZ2VyLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ2hhbm5lbE1lcmdlci5pZGwKQEAgLTI3
LDggKzI3LDggQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8KLSAgICBdIEF1ZGlvQ2hhbm5lbE1lcmdl
ciA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9DaGFubmVsTWVyZ2VyIDogQXVk
aW9Ob2RlIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9DaGFubmVsU3BsaXR0ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NoYW5uZWxTcGxpdHRlci5pZGwKaW5kZXggMDc2YzA1MTBlYzFm
MmY1M2QzNDY3Y2Q1MDQxZTAxNTE3ODEyMjg3Zi4uZjUxNTk5ZGMyNTJkY2E1NGY0OTRjYzJiZTc4
ZDA3ZGFmMjg1ZjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NoYW5uZWxTcGxpdHRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NoYW5uZWxTcGxpdHRlci5pZGwKQEAgLTIzLDggKzIzLDggQEAKICAqLwog
CiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1XRUJfQVVESU8KLSAgICBdIEF1ZGlvQ2hhbm5lbFNwbGl0dGVyIDogQXVkaW9Ob2RlIHsK
KyAgICBdIGludGVyZmFjZSBBdWRpb0NoYW5uZWxTcGxpdHRlciA6IEF1ZGlvTm9kZSB7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5pZGwKaW5kZXggMjA0YjBjN2Q1NGViYWI1NTdiODUyZjAwMTFlODZmNDAxYTQ2YjY4OS4u
YmQ3N2E2YjNmZTE1ZGIxYzMxNGQ1ZGY3Nzk0ODViNGY3YzU0YTBkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbApAQCAtMjQsMTQgKzI0
LDE0IEBACiAgKi8KIAogbW9kdWxlIHdlYmF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBBY3RpdmVET01PYmplY3Qs
CiAgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRl
cnM9MCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0
Ci0gICAgXSBBdWRpb0NvbnRleHQgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvQ29udGV4dCB7CiAg
ICAgICAgIC8vIEFsbCByZW5kZXJlZCBhdWRpbyB1bHRpbWF0ZWx5IGNvbm5lY3RzIHRvIGRlc3Rp
bmF0aW9uLCB3aGljaCByZXByZXNlbnRzIHRoZSBhdWRpbyBoYXJkd2FyZS4KICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEF1ZGlvRGVzdGluYXRpb25Ob2RlIGRlc3RpbmF0aW9uOwogCkBAIC01
Myw3ICs1Myw3IEBAIG1vZHVsZSB3ZWJhdWRpbyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICAvLyBBc3luY2hyb25vdXMgYXVkaW8gZmlsZSBkYXRhIGRlY29k
aW5nLgotICAgICAgICB2b2lkIGRlY29kZUF1ZGlvRGF0YShpbiBBcnJheUJ1ZmZlciBhdWRpb0Rh
dGEsIGluIFtDYWxsYmFja10gQXVkaW9CdWZmZXJDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGlu
IFtPcHRpb25hbCwgQ2FsbGJhY2tdIEF1ZGlvQnVmZmVyQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaykK
KyAgICAgICAgdm9pZCBkZWNvZGVBdWRpb0RhdGEoaW4gQXJyYXlCdWZmZXIgYXVkaW9EYXRhLCBb
Q2FsbGJhY2tdIGluIEF1ZGlvQnVmZmVyQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBbT3B0aW9u
YWwsIENhbGxiYWNrXSBpbiBBdWRpb0J1ZmZlckNhbGxiYWNrIGVycm9yQ2FsbGJhY2spCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBTb3VyY2VzCkBAIC02
NCwyMyArNjQsMjMgQEAgbW9kdWxlIHdlYmF1ZGlvIHsKICNlbmRpZgogICAgICAgICAvLyBQcm9j
ZXNzaW5nIG5vZGVzCiAgICAgICAgIEF1ZGlvR2Fpbk5vZGUgY3JlYXRlR2Fpbk5vZGUoKTsKLSAg
ICAgICAgRGVsYXlOb2RlIGNyZWF0ZURlbGF5Tm9kZShpbiBbT3B0aW9uYWxdIGRvdWJsZSBtYXhE
ZWxheVRpbWUpOworICAgICAgICBEZWxheU5vZGUgY3JlYXRlRGVsYXlOb2RlKFtPcHRpb25hbF0g
aW4gZG91YmxlIG1heERlbGF5VGltZSk7CiAgICAgICAgIEJpcXVhZEZpbHRlck5vZGUgY3JlYXRl
QmlxdWFkRmlsdGVyKCk7CiAgICAgICAgIFdhdmVTaGFwZXJOb2RlIGNyZWF0ZVdhdmVTaGFwZXIo
KTsKICAgICAgICAgQXVkaW9QYW5uZXJOb2RlIGNyZWF0ZVBhbm5lcigpOwogICAgICAgICBDb252
b2x2ZXJOb2RlIGNyZWF0ZUNvbnZvbHZlcigpOwogICAgICAgICBEeW5hbWljc0NvbXByZXNzb3JO
b2RlIGNyZWF0ZUR5bmFtaWNzQ29tcHJlc3NvcigpOwogICAgICAgICBSZWFsdGltZUFuYWx5c2Vy
Tm9kZSBjcmVhdGVBbmFseXNlcigpOwotICAgICAgICBKYXZhU2NyaXB0QXVkaW9Ob2RlIGNyZWF0
ZUphdmFTY3JpcHROb2RlKGluIHVuc2lnbmVkIGxvbmcgYnVmZmVyU2l6ZSwgaW4gW09wdGlvbmFs
XSB1bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRDaGFubmVscywgaW4gW09wdGlvbmFsXSB1bnNp
Z25lZCBsb25nIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMpCisgICAgICAgIEphdmFTY3JpcHRBdWRp
b05vZGUgY3JlYXRlSmF2YVNjcmlwdE5vZGUoaW4gdW5zaWduZWQgbG9uZyBidWZmZXJTaXplLCBb
T3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dENoYW5uZWxzLCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZPdXRwdXRDaGFubmVscykKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBPc2NpbGxhdG9yIGNyZWF0ZU9zY2lsbGF0
b3IoKTsKICAgICAgICAgV2F2ZVRhYmxlIGNyZWF0ZVdhdmVUYWJsZShpbiBGbG9hdDMyQXJyYXkg
cmVhbCwgaW4gRmxvYXQzMkFycmF5IGltYWcpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAogICAgICAgICAvLyBDaGFubmVsIHNwbGl0dGluZyBhbmQgbWVyZ2luZwotICAgICAg
ICBBdWRpb0NoYW5uZWxTcGxpdHRlciBjcmVhdGVDaGFubmVsU3BsaXR0ZXIoaW4gW09wdGlvbmFs
XSB1bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0cykKKyAgICAgICAgQXVkaW9DaGFubmVsU3Bs
aXR0ZXIgY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBu
dW1iZXJPZk91dHB1dHMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgQXVkaW9DaGFubmVsTWVyZ2VyIGNyZWF0ZUNoYW5uZWxNZXJnZXIoaW4gW09wdGlvbmFsXSB1
bnNpZ25lZCBsb25nIG51bWJlck9mSW5wdXRzKQorICAgICAgICBBdWRpb0NoYW5uZWxNZXJnZXIg
Y3JlYXRlQ2hhbm5lbE1lcmdlcihbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJ
bnB1dHMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBP
ZmZsaW5lIHJlbmRlcmluZwpAQCAtODgsNCArODgsNCBAQCBtb2R1bGUgd2ViYXVkaW8gewogICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNvbXBsZXRlOwogICAgICAgICB2b2lkIHN0
YXJ0UmVuZGVyaW5nKCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaWRsCmluZGV4IDdjZTQw
NDNiOWVmMjI5NTkwYWI1MzdhOGZmOGU4ZGE4ZDM2ZTMyNzIuLjRhOTZlMjhhYjM3YjUxZTA2NmFh
ZTc1N2EzZTg1NDJkZTc0YjM3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaWRsCkBAIC0yMywxMCArMjMsMTAg
QEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0g
ICAgXSBBdWRpb0Rlc3RpbmF0aW9uTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2Ug
QXVkaW9EZXN0aW5hdGlvbk5vZGUgOiBBdWRpb05vZGUgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBudW1iZXJPZkNoYW5uZWxzOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0dhaW4uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0dhaW4uaWRsCmluZGV4IDc1OTc0Mjc3ZDMyNGNh
N2E4Y2ZmNjE4OGNkNGFhN2MwZGI3NjExMjUuLjk1N2JiMDc5ZGVhNDdiMTg3YTUwZTEwOWE3NzAy
MTYzYmMwOTkyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9HYWluLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
R2Fpbi5pZGwKQEAgLTI3LDkgKzI3LDkgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBBdWRpb0dhaW4gOiBBdWRpb1BhcmFtIHsKKyAg
ICBdIGludGVyZmFjZSBBdWRpb0dhaW4gOiBBdWRpb1BhcmFtIHsKICAgICB9OwotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvR2Fpbk5vZGUuaWRsCmlu
ZGV4IGJhMzE2M2Y5NDRhNmI2NjA2N2RiNTBjMGYwNTY3ZjAwZTE5ZTdlMjQuLjM3OWE5MGZiMDg2
YzNiMTFjZDMyMDQ0OWI5Y2ZiNzYwZTQ2NTY0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9HYWluTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0dhaW5Ob2RlLmlkbApAQCAtMjMsMTEgKzIzLDExIEBACiAg
Ki8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0g
QXVkaW9HYWluTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9HYWluTm9k
ZSA6IEF1ZGlvTm9kZSB7CiAgICAgICAgIC8vIEZJWE1FOiBldmVudHVhbGx5IGl0IHdpbGwgYmUg
aW50ZXJlc3RpbmcgdG8gcmVtb3ZlIHRoZSByZWFkb25seSByZXN0cmljdGlvbiwgYnV0IG5lZWQg
dG8gcHJvcGVybHkgZGVhbCB3aXRoIHRocmVhZCBzYWZldHkgaGVyZS4KICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEF1ZGlvR2FpbiBnYWluOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5pZGwKaW5kZXggY2Y2ZDhj
ZmNlNzc1NmE4MzkyZDk5MmEzZTY4OGEyYThmMTc1Y2U0Ny4uNDI4YmM1NDc2MDljYzI4MzRiYjRi
MDU1NzAyOTZjYzFhZmNlMDc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaWRsCkBAIC0yNyw5ICsyNyw5IEBACiAgKi8KIAogbW9kdWxl
IGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VC
X0FVRElPCi0gICAgXSBBdWRpb0xpc3RlbmVyIHsKKyAgICBdIGludGVyZmFjZSBBdWRpb0xpc3Rl
bmVyIHsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGRvcHBsZXJGYWN0b3I7ICAvLyBzYW1lIGFz
IE9wZW5BTCAoZGVmYXVsdCAxLjApCiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBzcGVlZE9mU291
bmQ7ICAgLy8gaW4gbWV0ZXJzIC8gc2Vjb25kIChkZWZhdWx0IDM0My4zKQogCkBAIC0zNyw0ICsz
Nyw0IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAgIHZvaWQgc2V0T3JpZW50YXRpb24oaW4gZmxv
YXQgeCwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgeiwgaW4gZmxvYXQgeFVwLCBpbiBmbG9hdCB5VXAs
IGluIGZsb2F0IHpVcCk7CiAgICAgICAgIHZvaWQgc2V0VmVsb2NpdHkoaW4gZmxvYXQgeCwgaW4g
ZmxvYXQgeSwgaW4gZmxvYXQgeik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5pZGwKaW5kZXggZTg1Yzc0N2M0MTY5Zjg1NDdiMzVh
ZjBhZWE0NDEwOWViYmVkMWRlYy4uNjg5NzYzNWYwM2EyNzZkZDhkMGE5MTNjYmQ1NWFkZGZlOTY3
MjViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmlk
bApAQCAtMjMsMjAgKzIzLDIwIEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPCi0gICAgXSBBdWRpb05v
ZGUgeworICAgIF0gaW50ZXJmYWNlIEF1ZGlvTm9kZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBdWRpb0NvbnRleHQgY29udGV4dDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZJbnB1dHM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIG51bWJlck9mT3V0cHV0czsKIAotICAgICAgICB2b2lkIGNvbm5lY3QoaW4g
QXVkaW9Ob2RlPyBkZXN0aW5hdGlvbiwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
dW5zaWduZWQgbG9uZyBvdXRwdXQsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVu
c2lnbmVkIGxvbmcgaW5wdXQpCisgICAgICAgIHZvaWQgY29ubmVjdChpbiBBdWRpb05vZGU/IGRl
c3RpbmF0aW9uLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25n
IG91dHB1dCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBp
bnB1dCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQg
Y29ubmVjdChpbiBBdWRpb1BhcmFtPyBkZXN0aW5hdGlvbiwgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBvdXRwdXQpCisgICAgICAgIHZvaWQgY29ubmVjdChp
biBBdWRpb1BhcmFtPyBkZXN0aW5hdGlvbiwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gdW5zaWduZWQgbG9uZyBvdXRwdXQpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAotICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gdW5zaWduZWQgbG9uZyBvdXRwdXQpCisgICAgICAgIHZvaWQgZGlzY29ubmVjdChbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIG91dHB1dCkKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bhbm5lck5vZGUuaWRsCmluZGV4IDUw
NjFlNzgyNTA0MmE5ODUyMTU5NWJmZTcyM2Y4ODQ1ODU1MzcyNWQuLmY5YmY1NmZkZGE3MGI2ODhj
ODJjZDBmZDllNTJlZjMwNGMwOWM2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYW5uZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFubmVyTm9kZS5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICov
CiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVdFQl9BVURJTywKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIEF1
ZGlvUGFubmVyTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgQXVkaW9QYW5uZXJO
b2RlIDogQXVkaW9Ob2RlIHsKICAgICAgICAgLy8gUGFubmluZyBtb2RlbAogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBFUVVBTFBPV0VSID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgSFJURiA9IDE7CkBAIC00MCw3ICs0MCw3IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAgICAg
IC8vIERlZmF1bHQgbW9kZWwgZm9yIHN0ZXJlbyBpcyBIUlRGIAogICAgICAgICAvLyBGSVhNRTog
dXNlIHVuc2lnbmVkIHNob3J0IHdoZW4gZ2x1ZSBnZW5lcmF0aW9uIHN1cHBvcnRzIGl0CiAgICAg
ICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHBhbm5pbmdNb2RlbAotICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKICAgICAgICAgLy8gVXNlcyBhIDNEIGNhcnRlc2lhbiBjb29yZGluYXRlIHN5c3Rl
bSAKICAgICAgICAgdm9pZCBzZXRQb3NpdGlvbihpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBm
bG9hdCB6KTsKQEAgLTYyLDQgKzYyLDQgQEAgbW9kdWxlIGF1ZGlvIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEF1ZGlvR2FpbiBjb25lR2FpbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEF1ZGlvR2FpbiBkaXN0YW5jZUdhaW47CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbAppbmRleCBkOTk0NmY4MzlhYWNl
NTNmNDg3OWM4ZTUzMjg1M2RiYzFiNjgwMjEwLi4xYzE5YWQzMmZjN2FhNGIzYTE4YzhhODY5ZGFh
MWUxZGY4ZmZhMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbS5pZGwKQEAgLTI3LDkgKzI3LDkgQEAKICAqLwogCiBtb2R1bGUgd2ViYXVkaW8gewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8KLSAg
ICBdIEF1ZGlvUGFyYW0geworICAgIF0gaW50ZXJmYWNlIEF1ZGlvUGFyYW0gewogICAgICAgICBh
dHRyaWJ1dGUgZmxvYXQgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBt
aW5WYWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IG1heFZhbHVlOwpAQCAt
NTUsNCArNTUsNCBAQCBtb2R1bGUgd2ViYXVkaW8gewogICAgICAgICAvLyBDYW5jZWxzIGFsbCBz
Y2hlZHVsZWQgcGFyYW1ldGVyIGNoYW5nZXMgd2l0aCB0aW1lcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gc3RhcnRUaW1lLgogICAgICAgICB2b2lkIGNhbmNlbFNjaGVkdWxlZFZhbHVlcyhpbiBm
bG9hdCBzdGFydFRpbWUpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Byb2Nlc3NpbmdFdmVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAppbmRleCBiNjk5
NWY3ZDdhNDlmZWIzNGRhMzU4MmUyZjQ4NmVkOTYzNzQxZTQwLi5lNmJjNmYwOTk3NTg3NGE4ZWY2
N2Y2MmE0OGVmMmI3MWZlODNjYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmlkbApAQCAtMjMsMTEgKzIzLDEx
IEBACiAgKi8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAot
ICAgIF0gQXVkaW9Qcm9jZXNzaW5nRXZlbnQgOiBFdmVudCB7CisgICAgXSBpbnRlcmZhY2UgQXVk
aW9Qcm9jZXNzaW5nRXZlbnQgOiBFdmVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
dWRpb0J1ZmZlciBpbnB1dEJ1ZmZlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlv
QnVmZmVyIG91dHB1dEJ1ZmZlcjsgCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU291cmNlTm9kZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU291cmNlTm9kZS5pZGwKaW5kZXggZWMzYzM1Njgx
ZThlMTAyMzBkNTMzMzM1YmM2YzEwYjFhMDQ4NjAxZi4uNTM4ZjNjNzllZDJkYTliMzM5Njk0ZDk2
Y2ZiMmJjZWJiOTc2NjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Tb3VyY2VOb2RlLmlkbApAQCAtMjcsOCArMjcsOCBAQAogICovCiAKIG1vZHVs
ZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdF
Ql9BVURJTwotICAgIF0gQXVkaW9Tb3VyY2VOb2RlIDogQXVkaW9Ob2RlIHsKKyAgICBdIGludGVy
ZmFjZSBBdWRpb1NvdXJjZU5vZGUgOiBBdWRpb05vZGUgewogICAgIH07Ci19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5pZGwK
aW5kZXggZDE0MzA2NWRmNDFmYjJmZTY5ODYwNGFmYTZhODdiYjliNDZhNmQ0Ny4uYzgyMWU3YmFi
MjYxZWE0NTA4OTViMzJiMzkyNjZlNjM3NjkwOWIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuaWRsCkBAIC0yMywxMCArMjMs
MTAgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
Ci0gICAgXSBCaXF1YWRGaWx0ZXJOb2RlIDogQXVkaW9Ob2RlIHsKKyAgICBdIGludGVyZmFjZSBC
aXF1YWRGaWx0ZXJOb2RlIDogQXVkaW9Ob2RlIHsKICAgICAgICAgLy8gRmlsdGVyIHR5cGUuCiAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExPV1BBU1MgPSAwOwogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBISUdIUEFTUyA9IDE7CkBAIC0zOCw3ICszOCw3IEBAIG1vZHVsZSBhdWRp
byB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFMTFBBU1MgPSA3OwogCiAgICAgICAg
IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB0eXBlCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGZyZXF1ZW5jeTsg
Ly8gaW4gSGVydHoKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gUTsgLy8g
UXVhbGl0eSBmYWN0b3IKQEAgLTQ4LDQgKzQ4LDQgQEAgbW9kdWxlIGF1ZGlvIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBGbG9hdDMyQXJyYXkgbWFnUmVzcG9uc2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRmxvYXQzMkFycmF5IHBoYXNlUmVz
cG9uc2UpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQ29udm9sdmVyTm9kZS5pZGwKaW5kZXggMGY1NjFmMGZmNTNkMTdjYjAwMGExYThjMmM4
MWEwYTM3MmJmMzY5Zi4uZDgzODdlZTk2Y2FjNGVmY2RiYTgwOTQxNDFmYjZlMjk5MDhjYjI5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
aWRsCkBAIC0yNCwxMSArMjQsMTEgQEAKIAogbW9kdWxlIGF1ZGlvIHsKICAgICAvLyBBIGxpbmVh
ciBjb252b2x1dGlvbiBlZmZlY3QKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0g
Q29udm9sdmVyTm9kZSA6IEF1ZGlvTm9kZSB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbSlNDdXN0b21T
ZXR0ZXJdIEF1ZGlvQnVmZmVyIGJ1ZmZlcjsKKyAgICBdIGludGVyZmFjZSBDb252b2x2ZXJOb2Rl
IDogQXVkaW9Ob2RlIHsKKyAgICAgICAgW0pTQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgQXVkaW9C
dWZmZXIgYnVmZmVyOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBub3JtYWxpemU7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RP
TVdpbmRvd1dlYkF1ZGlvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9N
V2luZG93V2ViQXVkaW8uaWRsCmluZGV4IGNhOGU1MGU1ZjkwMWMzNjAyOGNiMzY4MDg0ZmE4OWRm
MGMwYWU5NDYuLjBhMDI0ZTM2YjNmMzQzODhmN2VhM2Y3NDIxNzFlZThlMmEwOWQ2MGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2luZG93V2ViQXVkaW8u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2luZG93V2ViQXVk
aW8uaWRsCkBAIC0yNiwxNiArMjYsMTYgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBT
dXBwbGVtZW50YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dXZWJBdWRpbyB7CisgICAgXSBp
bnRlcmZhY2UgRE9NV2luZG93V2ViQXVkaW8gewogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkg
fHwgIUxBTkdVQUdFX0NQUAotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyLCBWOEVu
YWJsZWRBdFJ1bnRpbWVdIEF1ZGlvQ29udGV4dENvbnN0cnVjdG9yIHdlYmtpdEF1ZGlvQ29udGV4
dDsKKyAgICAgICAgW0pTQ3VzdG9tR2V0dGVyLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0
ZSBBdWRpb0NvbnRleHRDb25zdHJ1Y3RvciB3ZWJraXRBdWRpb0NvbnRleHQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBBdWRpb1Bhbm5lck5vZGVDb25zdHJ1Y3RvciB3ZWJraXRBdWRpb1Bhbm5lck5vZGU7
CiAgICAgICAgIGF0dHJpYnV0ZSBBdWRpb1Byb2Nlc3NpbmdFdmVudENvbnN0cnVjdG9yIEF1ZGlv
UHJvY2Vzc2luZ0V2ZW50OwogICAgICAgICBhdHRyaWJ1dGUgT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50Q29uc3RydWN0b3IgT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50OwogI2VuZGlmCiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVsYXlOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlO
b2RlLmlkbAppbmRleCBhMjFhYzMwOTU5ZWUwZTNlZjYzNmU2YzdkNGI0OWM0YTJjOGVlODMzLi5m
ODY5ODdmYjNhMzRkZjg5NmRkNGU3NWYxOTBhMDdhYWE4MDlhOGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5Tm9kZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheU5vZGUuaWRsCkBAIC0yMywxMCArMjMsMTAgQEAK
ICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAg
XSBEZWxheU5vZGUgOiBBdWRpb05vZGUgeworICAgIF0gaW50ZXJmYWNlIERlbGF5Tm9kZSA6IEF1
ZGlvTm9kZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGRlbGF5VGlt
ZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaWRsCmluZGV4IGEyZTM1NjU2YmVkM2Vj
NjMyYmQ4OTg3NzAxYzVhNWI1MjEzYjA5ZGUuLjYzOTcxODdhMGM1YWNhY2M1NzJlMDUwYjkyOGY4
NDUxOTc3NDVmMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RHluYW1pY3NDb21wcmVzc29yTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EeW5hbWljc0NvbXByZXNzb3JOb2RlLmlkbApAQCAtMjMsMTAgKzIzLDEwIEBACiAg
Ki8KIAogbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9V0VCX0FVRElPLAogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0g
RHluYW1pY3NDb21wcmVzc29yTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgRHlu
YW1pY3NDb21wcmVzc29yTm9kZSA6IEF1ZGlvTm9kZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBdWRpb1BhcmFtIHRocmVzaG9sZDsgLy8gaW4gRGVjaWJlbHMKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0ga25lZTsgLy8gaW4gRGVjaWJlbHMKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gcmF0aW87IC8vIHVuaXQtbGVzcwpAQCAtMzQsNCAr
MzQsNCBAQCBtb2R1bGUgYXVkaW8gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9Q
YXJhbSBhdHRhY2s7IC8vIGluIFNlY29uZHMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1
ZGlvUGFyYW0gcmVsZWFzZTsgLy8gaW4gU2Vjb25kcwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vSmF2YVNjcmlwdEF1ZGlvTm9kZS5p
ZGwKaW5kZXggOTdkYTBjMTZkMzNjYWM4MmM5YmE3MjNmMDU1NTMxMjQyNmVlN2E2OC4uMDIzZmEy
NjZhZjA5NjkyMGQ2M2IzOGY3MzIyZDJlMDM2OWQ0Y2E5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9KYXZhU2NyaXB0QXVkaW9Ob2RlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0phdmFTY3JpcHRBdWRpb05vZGUuaWRsCkBAIC0y
NCwxNSArMjQsMTUgQEAKIAogbW9kdWxlIGF1ZGlvIHsKICAgICAvLyBGb3IgcmVhbC10aW1lIGF1
ZGlvIHN0cmVhbSBzeW50aGVzaXMvcHJvY2Vzc2luZyBpbiBKYXZhU2NyaXB0IAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpT
R2VuZXJhdGVUb0pTT2JqZWN0LAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAg
ICAgRXZlbnRUYXJnZXQKLSAgICBdIEphdmFTY3JpcHRBdWRpb05vZGUgOiBBdWRpb05vZGUgewor
ICAgIF0gaW50ZXJmYWNlIEphdmFTY3JpcHRBdWRpb05vZGUgOiBBdWRpb05vZGUgewogICAgICAg
ICAvLyBSZW5kZXJpbmcgY2FsbGJhY2sKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25hdWRpb3Byb2Nlc3M7CiAgICAgICAgIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBidWZmZXJTaXplOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRs
CmluZGV4IGYwOWU5OGZlYWIwNjI2MjE1ZTFiMmFhNDVkYTJmYmY1Yzg5MDEzOTUuLjhjYzg5NzVl
NjRhNzM5OWYxNzEyYWIxYWVkOGQwMTU5ZmY0YjI4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICovCiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTyZWSURFTywK
ICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIE1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZSA6IEF1ZGlvU291cmNlTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlIDogQXVkaW9Tb3VyY2VOb2RlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxNZWRpYUVsZW1lbnQgbWVkaWFFbGVtZW50OwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsCmluZGV4IDRlZjY5MzkxNzkzMjMyYzQxMjgzODg2Zjcy
MTFkMTZmYmUyOGI2ZGQuLjQ0MmQ3YTFhMTAzZTg3ZDRlNjY2MmIyMzQyZDhkYmNkODg5ZTk1Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwKQEAgLTIzLDEwICsyMywxMCBAQAogICov
CiAKIG1vZHVsZSBhdWRpbyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVdFQl9BVURJTywKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIE9m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudCA6IEV2ZW50IHsKKyAgICBdIGludGVyZmFjZSBPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQgOiBFdmVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBBdWRpb0J1ZmZlciByZW5kZXJlZEJ1ZmZlcjsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3IuaWRsCmluZGV4IGZiNjhlNDAx
YzEzNDFlNDY5YTZhMjY4MmM5Njc2N2MxYzkyNGMzZDguLmMwZGFmNTc0YTA1ZDQ0YjQxMTU2ZWE5
MTIyN2JiNDgyY2NlYzQ3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT3NjaWxsYXRvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9Pc2NpbGxhdG9yLmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAKIG1vZHVsZSBhdWRpbyB7CiAg
ICAgLy8gT3NjaWxsYXRvciBpcyBhbiBhdWRpbyBnZW5lcmF0b3Igb2YgcGVyaW9kaWMgd2F2ZWZv
cm1zLgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVE
SU8sCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBPc2NpbGxhdG9yIDogQXVk
aW9Tb3VyY2VOb2RlIHsKKyAgICBdIGludGVyZmFjZSBPc2NpbGxhdG9yIDogQXVkaW9Tb3VyY2VO
b2RlIHsKIAogICAgICAgICAvLyBUeXBlIGNvbnN0YW50cy4KICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU0lORSA9IDA7CkBAIC01NCw0ICs1NCw0IEBAIG1vZHVsZSBhdWRpbyB7CiAgICAg
ICAgIHZvaWQgc2V0V2F2ZVRhYmxlKGluIFdhdmVUYWJsZSB3YXZlVGFibGUpOwogCiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVh
bHRpbWVBbmFseXNlck5vZGUuaWRsCmluZGV4IGRjMmRiODA0ZmY1MGIxMTcwMWU1NDc5OGQ0NmEw
ZjBmN2IxNjRjMmMuLjVjMjlmYWU1NGQ5YjY1MzgxNGM1NGQwMDU4OWVjMzIyYTA3MDEzYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNl
ck5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUmVhbHRpbWVB
bmFseXNlck5vZGUuaWRsCkBAIC0yMywxMiArMjMsMTIgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8g
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8s
CiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Ci0gICAgXSBSZWFsdGltZUFuYWx5c2VyTm9k
ZSA6IEF1ZGlvTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgUmVhbHRpbWVBbmFseXNlck5vZGUgOiBB
dWRpb05vZGUgewogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBmZnRTaXplCi0gICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgZnJlcXVlbmN5QmluQ291bnQ7CiAKICAgICAgICAgLy8gbWluRGVjaWJlbHMgLyBtYXhEZWNp
YmVscyByZXByZXNlbnQgdGhlIHJhbmdlIHRvIHNjYWxlIHRoZSBGRlQgYW5hbHlzaXMgZGF0YSBm
b3IgY29udmVyc2lvbiB0byB1bnNpZ25lZCBieXRlIHZhbHVlcy4KQEAgLTQ2LDQgKzQ2LDQgQEAg
bW9kdWxlIGF1ZGlvIHsKICAgICAgICAgLy8gUmVhbC10aW1lIHdhdmVmb3JtIGRhdGEKICAgICAg
ICAgdm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoaW4gVWludDhBcnJheSBhcnJheSk7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dh
dmVTaGFwZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNo
YXBlck5vZGUuaWRsCmluZGV4IDE2YTRhY2Y3YzE1ZTNkODYxZDA1Yzk3OWY5NjZlNjVlZDQxNDI0
NmYuLjFmNjQ1ZmI2NzVmMzBmZGVmMjIyYzMwNTJkMzcxODEyM2YyNTc2ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsCkBAIC0y
MywxMCArMjMsMTAgQEAKICAqLwogCiBtb2R1bGUgYXVkaW8gewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgICAgIEpTR2VuZXJhdGVU
b0pTT2JqZWN0Ci0gICAgXSBXYXZlU2hhcGVyTm9kZSA6IEF1ZGlvTm9kZSB7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbSlNDdXN0b21TZXR0ZXJdIEZsb2F0MzJBcnJheSBjdXJ2ZTsKKyAgICBdIGludGVy
ZmFjZSBXYXZlU2hhcGVyTm9kZSA6IEF1ZGlvTm9kZSB7CisgICAgICAgIFtKU0N1c3RvbVNldHRl
cl0gYXR0cmlidXRlIEZsb2F0MzJBcnJheSBjdXJ2ZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmlkbAppbmRleCAyMjQwM2MzMDAy
NjVkNjU0MDNlNDkwNmU1MDMyZDZiNzNkZDY2YzA4Li5kYTNjYmI1MTdlMzY2MDI4NTljN2I3NzJl
NGUwOWUwYjk5ZjIyYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1dhdmVUYWJsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9X
YXZlVGFibGUuaWRsCkBAIC0yNCw5ICsyNCw5IEBACiAKIG1vZHVsZSBhdWRpbyB7CiAgICAgLy8g
V2F2ZVRhYmxlIHJlcHJlc2VudHMgYSBwZXJpb2RpYyBhdWRpbyB3YXZlZm9ybSBnaXZlbiBieSBp
dHMgRm91cmllciBjb2VmZmljaWVudHMuCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTwotICAgIF0gV2F2ZVRhYmxlIHsKKyAgICBdIGludGVyZmFj
ZSBXYXZlVGFibGUgewogCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCmluZGV4
IGQ4NWFhZDcyODg5NGRhYzVlNjJjMjRhZWI1NTQyNzhkYWQ0MWU5NjUuLjJjZWI5M2QzY2M4ZWQ1
MzlmNzQ1M2I0OGVjZmY5ODBkNTFkZWQ3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuaWRsCkBAIC0y
NiwxNSArMjYsMTUgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBTdXBwbGVtZW50
YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dXZWJEYXRhYmFzZSB7Ci0gICAgICAgIFtWOEVu
YWJsZWRBdFJ1bnRpbWVdIERhdGFiYXNlIG9wZW5EYXRhYmFzZShpbiBET01TdHJpbmcgbmFtZSwg
aW4gRE9NU3RyaW5nIHZlcnNpb24sIGluIERPTVN0cmluZyBkaXNwbGF5TmFtZSwgaW4gdW5zaWdu
ZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBEYXRhYmFzZUNh
bGxiYWNrIGNyZWF0aW9uQ2FsbGJhY2spCisgICAgXSBpbnRlcmZhY2UgRE9NV2luZG93V2ViRGF0
YWJhc2UgeworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRhYmFzZSBvcGVuRGF0YWJh
c2UoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJpbmcg
ZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgW0NhbGxiYWNrLCBP
cHRpb25hbF0gaW4gRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNrKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAh
TEFOR1VBR0VfQ1BQCiAgICAgICAgIGF0dHJpYnV0ZSBTUUxFeGNlcHRpb25Db25zdHJ1Y3RvciBT
UUxFeGNlcHRpb247CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmlkbAppbmRleCBkZGM1NDRhODY4OWFiY2Ni
YTkwMDRjNDgxZjgwODQ1NzJkYmNjM2FjLi5hOTJiZThiNzNmNTQxYmMzNzMxYzRiOWY4NDM1NTk4
MDEzNjhiZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmlkbApAQCAtMjgsMTUgKzI4LDE1IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAg
ICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0g
RGF0YWJhc2UgeworICAgIF0gaW50ZXJmYWNlIERhdGFiYXNlIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB2ZXJzaW9uOwotICAgICAgICB2b2lkIGNoYW5nZVZlcnNpb24o
aW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0cmluZyBuZXdWZXJzaW9uLCBpbiBbQ2Fs
bGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBpbiBbQ2Fs
bGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFj
aywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7
Ci0gICAgICAgIHZvaWQgdHJhbnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrIGNhbGxiYWNrLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gVm9pZENh
bGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7Ci0gICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKGlu
IFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgaW4gW0NhbGxiYWNr
LCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrIGVycm9yQ2FsbGJhY2ssIGlu
IFtDYWxsYmFjaywgT3B0aW9uYWxdIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2spOworICAg
ICAgICB2b2lkIGNoYW5nZVZlcnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0
cmluZyBuZXdWZXJzaW9uLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrIGNhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBTUUxUcmFuc2FjdGlvbkVy
cm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gVm9pZENh
bGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgICAgIHZvaWQgdHJhbnNhY3Rpb24oW0NhbGxi
YWNrXSBpbiBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIGNhbGxiYWNrLCBbQ2FsbGJhY2ssIE9wdGlv
bmFsXSBpbiBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgZXJyb3JDYWxsYmFjaywgW0NhbGxi
YWNrLCBPcHRpb25hbF0gaW4gVm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjayk7CisgICAgICAg
IHZvaWQgcmVhZFRyYW5zYWN0aW9uKFtDYWxsYmFja10gaW4gU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ayBjYWxsYmFjaywgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gU1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrIGVycm9yQ2FsbGJhY2ssIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIFZvaWRDYWxsYmFj
ayBzdWNjZXNzQ2FsbGJhY2spOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNhbGxiYWNrLmlkbAppbmRleCA4
ZDMxNjQ4NGI3NTM2NmZiNWRiMDA2MmQyMmZlOGY3OGY0MDgwYWZhLi5jZjc4MDhkODExYzNkOTQy
Y2RhZTkzZjVkZWFiOWNhODVjNzE0MjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDYWxsYmFjay5pZGwKQEAgLTI3LDExICsyNywx
MSBAQAogICovCiAKIG1vZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBDYWxsYmFjawotICAgIF0g
RGF0YWJhc2VDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgRGF0YWJhc2VDYWxsYmFjayB7CiAg
ICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gRGF0YWJhc2UgZGF0YWJhc2UpOwogICAgICAg
ICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERhdGFiYXNlU3luYyBkYXRhYmFzZSk7CiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlU3luYy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlU3luYy5pZGwKaW5kZXggY2ZiMGI1OTBjNWExNWNhNTMwYzA3Y2E2YWMyMTJlZWExN2E3MmRh
NS4uMTFiZjhkNzA4Y2U1OGI3ZGIyMGJiZTVlYTg4YzI1MzA0MTJjYTMxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVN5bmMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VTeW5jLmlkbApAQCAt
MzAsMTYgKzMwLDE2IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRGF0YWJhc2VTeW5jIHsK
KyAgICBdIGludGVyZmFjZSBEYXRhYmFzZVN5bmMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHZlcnNpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbGFzdEVycm9yTWVzc2FnZTsKLSAgICAgICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0
cmluZyBvbGRWZXJzaW9uLCBpbiBET01TdHJpbmcgbmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBP
cHRpb25hbF0gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJh
bnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3lu
Y0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBj
aGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01TdHJpbmcgbmV3VmVy
c2lvbiwgW0NhbGxiYWNrLCBPcHRpb25hbF0gaW4gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sg
Y2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHRyYW5zYWN0aW9u
KFtDYWxsYmFja10gaW4gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihbQ2FsbGJhY2td
IGluIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTEVycm9yLmlkbAppbmRleCBhZDg0NzU5OGFlYWEzZmUxZjIxMzQwMjVkZmY0Y2Qx
Yzk0N2RlNGU0Li41MTEzM2I4NDhjODU0ODNmODk3YjM4MjY3NmU4MWI0YmE5ZWRjOTJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmlkbApAQCAt
MjgsMTEgKzI4LDExIEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gU1FMRXJyb3IgeworICAg
IF0gaW50ZXJmYWNlIFNRTEVycm9yIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNz
YWdlOwogCkBAIC00Niw0ICs0Niw0IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ09OU1RSQUlOVF9FUlIgPSA2OwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBUSU1FT1VUX0VSUiA9IDc7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEV4Y2VwdGlvbi5pZGwKaW5kZXggODU2ZTVj
ZDQ3NTcwYTNjNjljYzNhYjMzNmM2ODA5OTMzYjVkN2EwYi4uYzg2YzFkODY0N2E5ZmE1MmU2NmY3
Nzk5MzEzMjI3ZDI0OTY1NGRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMRXhjZXB0aW9uLmlkbApAQCAtMzAsMTEgKzMwLDExIEBACiAKIG1vZHVs
ZSBzdG9yYWdlIHsKIAotICAgIGV4Y2VwdGlvbiBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TUUxfREFUQUJBU0UsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIERvTm90
Q2hlY2tDb25zdGFudHMKLSAgICBdIFNRTEV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRpb24gU1FM
RXhjZXB0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgY29k
ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwogCkBAIC00
OCw0ICs0OCw0IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgQ09OU1RSQUlOVF9FUlIgPSA2OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUX0VSUiA9IDc7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFJlc3VsdFNldC5pZGwKaW5kZXggNjA2OTJjYmVhYzFkNGI3ZGJh
YzdhMDcwZGVlMWNkYWQ5ZWY3YmJjNi4uMmY2NTY5ZjNmZThmMGQ3YTE5NjY1M2MzYjdjYThlZTM2
YjMzNTE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxSZXN1bHRTZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMUmVzdWx0U2V0LmlkbApAQCAtMjgsMjEgKzI4LDIxIEBACiAKIG1vZHVsZSBzdG9yYWdlIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJB
U0UsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwot
ICAgIF0gU1FMUmVzdWx0U2V0IHsKKyAgICBdIGludGVyZmFjZSBTUUxSZXN1bHRTZXQgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1FMUmVzdWx0U2V0Um93TGlzdCByb3dzOwogCiAjaWYg
IWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGluc2VydElkCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCiAg
ICAgICAgIC8vIEV4cGxpY2l0ZWx5IGNob29zZSAnbG9uZyBsb25nJyBoZXJlIHRvIGF2b2lkIGEg
NjRiaXQtPjMyYml0IHNob3J0ZW5pbmcgd2FybmluZyBmb3IgdXMuCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGxvbmcgaW5zZXJ0SWQKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vu
ZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHJvd3NBZmZlY3RlZDsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMUmVzdWx0U2V0Um93TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFJlc3VsdFNldFJvd0xpc3QuaWRsCmluZGV4IGJhMGNiNGNmNzY3ZWU4ZmE2NjJiYjVk
YzQ3YjYyOGJjNzM0YTM3YTEuLjk3MjAyNmZlMmYyYmI5MTY5NTgzNjY2NGM2YTEwMDUxOThmYmFi
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMUmVz
dWx0U2V0Um93TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxSZXN1bHRTZXRSb3dMaXN0LmlkbApAQCAtMjgsMTIgKzI4LDEyIEBACiAKIG1vZHVsZSBz
dG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
UUxfREFUQUJBU0UsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgSlNOb1N0YXRp
Y1RhYmxlcwotICAgIF0gU1FMUmVzdWx0U2V0Um93TGlzdCB7CisgICAgXSBpbnRlcmZhY2UgU1FM
UmVzdWx0U2V0Um93TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGl0ZW0oaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudENhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsCmluZGV4IGMz
MDUzYzBlZTMzYzcwZGQ5ZjgxMDQzOTQ0ZGIwMmRhNDdjMGMxNzIuLjIwN2QxYWNkZTUyYzRkOGYz
ODYwZmQwN2M5NjBjNjJiZjE0MzhiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50Q2FsbGJhY2suaWRsCkBAIC0yNywx
MCArMjcsMTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAgQ2FsbGJhY2sK
LSAgICBdIFNRTFN0YXRlbWVudENhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBTUUxTdGF0ZW1l
bnRDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4gU1FMVHJhbnNhY3Rp
b24gdHJhbnNhY3Rpb24sIGluIFNRTFJlc3VsdFNldCByZXN1bHRTZXQpOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnRFcnJvckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5pZGwKaW5kZXggMWZjOTZjYjBhNWNjZWQ0OTBh
ZTlkYmEwN2FlYmJiOGRmNmYwMDFmNS4uM2U0N2IzMmUwOGI0NGVlZDg5MWI4NjhmMjlmZjBjYjhh
NWVjNGM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaWRsCkBAIC0yNywxMCArMjcs
MTAgQEAKICAqLwogCiBtb2R1bGUgc3RvcmFnZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBd
IFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2sgewogICAgICAgICBbQ3VzdG9tXSBib29sZWFuIGhhbmRsZUV2ZW50KGlu
IFNRTFRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uLCBpbiBTUUxFcnJvciBlcnJvcik7CiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
VHJhbnNhY3Rpb24uaWRsCmluZGV4IGYwOTk0YTFmODFiNDQ0NDNhOTA3YzEzMGFlOWIyMmVlOTg5
OGU1MTkuLmRlZDMyYzY1OWY3OTQ2ZWE5N2I5NGI1MjZlNzNlZjAyYjVhNWIzZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24u
aWRsCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogbW9kdWxlIHN0b3JhZ2UgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAg
T21pdENvbnN0cnVjdG9yLAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBTUUxUcmFu
c2FjdGlvbiB7CisgICAgXSBpbnRlcmZhY2UgU1FMVHJhbnNhY3Rpb24gewogICAgICAgICBbQ3Vz
dG9tXSB2b2lkIGV4ZWN1dGVTcWwoaW4gRE9NU3RyaW5nIHNxbFN0YXRlbWVudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIE9iamVjdEFycmF5IGFyZ3VtZW50cywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbCwgQ2FsbGJhY2tdIFNRTFN0
YXRlbWVudENhbGxiYWNrIGNhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsLCBDYWxsYmFja10gU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjayBlcnJv
ckNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbCwg
Q2FsbGJhY2tdIGluIFNRTFN0YXRlbWVudENhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsLCBDYWxsYmFja10gaW4gU1FMU3RhdGVtZW50
RXJyb3JDYWxsYmFjayBlcnJvckNhbGxiYWNrKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
Q2FsbGJhY2suaWRsCmluZGV4IDFiNTBiZWUyZmY1NDQ0YWViNDMzZDJkZjVjMzdiNjkwMzJjNTA1
NjcuLmYwNTk3ODZjNDRlZjcxZjM5MGY0Y2MzOTliOTQ1YzBhNmFhZThiNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbkNhbGxiYWNrLmlkbApAQCAtMjcsMTAgKzI3LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3Jh
Z2UgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFU
QUJBU0UsCiAgICAgICAgIENhbGxiYWNrCi0gICAgXSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIHsK
KyAgICBdIGludGVyZmFjZSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIHsKICAgICAgICAgYm9vbGVh
biBoYW5kbGVFdmVudChpbiBTUUxUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbik7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggZjZlYzE1NjQxOTE4
Mzg4NGRhMGUwODVjMzYwYzA1NzQwNDRlMDMzZi4uZDhlOTdjNjRiZTAwNzU0MzFiZjI0NDA0NmZk
Y2E4MGQ2YjUzMjBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrLmlkbApAQCAt
MjcsMTAgKzI3LDEwIEBACiAgKi8KIAogbW9kdWxlIHN0b3JhZ2UgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAgIENhbGxi
YWNrCi0gICAgXSBTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNl
IFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZl
bnQoaW4gU1FMRXJyb3IgZXJyb3IpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmMuaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmMuaWRsCmlu
ZGV4IGU1YmRlZGYwMWVjMTE3MmUwMDNjYzk1Nzk5MzBhZjIwYzEwNTcwMDMuLmY1M2UyMzYxYjkz
OWM5NzQ0MzI5NWJhZDJlMzI1NmFlYjIxYjNiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uU3luYy5pZGwKQEAgLTMw
LDExICszMCwxMSBAQAogCiBtb2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFNRTFRyYW5zYWN0aW9uU3lu
YyB7CisgICAgXSBpbnRlcmZhY2UgU1FMVHJhbnNhY3Rpb25TeW5jIHsKICAgICAgICAgW0N1c3Rv
bV0gU1FMUmVzdWx0U2V0IGV4ZWN1dGVTcWwoaW4gRE9NU3RyaW5nIHNxbFN0YXRlbWVudCwgaW4g
T2JqZWN0QXJyYXkgYXJndW1lbnRzKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2su
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5
bmNDYWxsYmFjay5pZGwKaW5kZXggZWEyMmU1ZjI5MDg0YzhiNjY4MzZjODVlZWU0OTIyOTZlMDYx
MjdmNy4uYjM4Nzg5YWZlYzY3ZTA3MDkxODJjNDViYmIxZThlZjdhYjZkMWYxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvblN5bmND
YWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvblN5bmNDYWxsYmFjay5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1v
ZHVsZSBzdG9yYWdlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9U1FMX0RBVEFCQVNFLAogICAgICAgICBDYWxsYmFjawotICAgIF0gU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2sgeworICAgIF0gaW50ZXJmYWNlIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNr
IHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBTUUxUcmFuc2FjdGlvblN5bmMgdHJh
bnNhY3Rpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9Xb3JrZXJDb250ZXh0V2ViRGF0YWJhc2UuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9Xb3JrZXJDb250ZXh0V2ViRGF0YWJhc2UuaWRsCmlu
ZGV4IDgwZWI5NDJjYjE5Mjc5OGZmZTZhYmVmOTE0ZTQ3OThiYmZhNDk2YTEuLmQ0M2UyZWRhYjY4
YTFiNzU1NzkyNjdkODA3NTI5YzZkNDdhODg5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvV29ya2VyQ29udGV4dFdlYkRhdGFiYXNlLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1dvcmtlckNvbnRleHRXZWJEYXRhYmFz
ZS5pZGwKQEAgLTI2LDE1ICsyNiwxNSBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TUUxfREFUQUJBU0UsCiAgICAgICAg
IFN1cHBsZW1lbnRhbD1Xb3JrZXJDb250ZXh0Ci0gICAgXSBXb3JrZXJDb250ZXh0V2ViRGF0YWJh
c2UgewotICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2Uo
aW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJpbmcgZGlz
cGxheU5hbWUsIGluIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSwgaW4gW0NhbGxiYWNrLCBP
cHRpb25hbF0gRGF0YWJhc2VDYWxsYmFjayBjcmVhdGlvbkNhbGxiYWNrKQorICAgIF0gaW50ZXJm
YWNlIFdvcmtlckNvbnRleHRXZWJEYXRhYmFzZSB7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRp
bWVdIERhdGFiYXNlIG9wZW5EYXRhYmFzZShpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5n
IHZlcnNpb24sIGluIERPTVN0cmluZyBkaXNwbGF5TmFtZSwgaW4gdW5zaWduZWQgbG9uZyBlc3Rp
bWF0ZWRTaXplLCBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBpbiBEYXRhYmFzZUNhbGxiYWNrIGNyZWF0
aW9uQ2FsbGJhY2spCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAg
ICBbVjhFbmFibGVkQXRSdW50aW1lXSBEYXRhYmFzZVN5bmMgb3BlbkRhdGFiYXNlU3luYyhpbiBE
T01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIHZlcnNpb24sIGluIERPTVN0cmluZyBkaXNwbGF5
TmFtZSwgaW4gdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRTaXplLCBpbiBbQ2FsbGJhY2ssIE9wdGlv
bmFsXSBEYXRhYmFzZUNhbGxiYWNrIGNyZWF0aW9uQ2FsbGJhY2spCisgICAgICAgIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIERhdGFiYXNlU3luYyBvcGVuRGF0YWJhc2VTeW5jKGluIERPTVN0cmluZyBu
YW1lLCBpbiBET01TdHJpbmcgdmVyc2lvbiwgaW4gRE9NU3RyaW5nIGRpc3BsYXlOYW1lLCBpbiB1
bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUsIFtDYWxsYmFjaywgT3B0aW9uYWxdIGluIERhdGFi
YXNlQ2FsbGJhY2sgY3JlYXRpb25DYWxsYmFjaykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvQ2xvc2VFdmVudC5pZGwKaW5kZXggZWE3NTExMWFjMzYyMjBjMWNkZWVjZjRlZTU5
MTJiODJlMTdkNWUyMi4uOTBhNmViN2E3NDg1N2MzMmM4YmI2MjhiZTk4MGNmYWQwZDE3ZGRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50Lmlk
bApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIENvbnN0cnVjdG9y
VGVtcGxhdGU9RXZlbnQKLSAgICBdIENsb3NlRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIGJvb2xlYW4gd2Fz
Q2xlYW47Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyByZWFzb247CisgICAg
XSBpbnRlcmZhY2UgQ2xvc2VFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3YXNDbGVhbjsKKyAg
ICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgc2hvcnQgY29kZTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVj
dG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYXNvbjsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0RPTVdpbmRv
d1dlYlNvY2tldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvRE9NV2lu
ZG93V2ViU29ja2V0LmlkbAppbmRleCAyYjVmY2E4YmJjMTVjYzAxYmNkYWJiNzk2NjZhOWY2NzJl
OTdmMTRiLi4yN2JjNzBlYWU1OWVhNTUzZjcwMzcwMjM2MjhmNzQ0MGQwOTRjODc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvRE9NV2luZG93V2ViU29ja2V0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvRE9NV2luZG93V2Vi
U29ja2V0LmlkbApAQCAtMjYsMTQgKzI2LDE0IEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9TT0NLRVRTLAogICAg
ICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93Ci0gICAgXSBET01XaW5kb3dXZWJTb2NrZXQgewor
ICAgIF0gaW50ZXJmYWNlIERPTVdpbmRvd1dlYlNvY2tldCB7CiAjaWYgIWRlZmluZWQoTEFOR1VB
R0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAgICAgICAgIGF0dHJpYnV0ZSBDbG9zZUV2ZW50Q29u
c3RydWN0b3IgQ2xvc2VFdmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRlciwg
VjhFbmFibGVkQXRSdW50aW1lXSBXZWJTb2NrZXRDb25zdHJ1Y3RvciBXZWJTb2NrZXQ7IC8vIFVz
YWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKKyAgICAgICAgW0pTQ3VzdG9tR2V0dGVyLCBWOEVu
YWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBXZWJTb2NrZXRDb25zdHJ1Y3RvciBXZWJTb2NrZXQ7
IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKICNlbmRpZgogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmlu
ZGV4IDkyODM1YWU0MzViNTU4NzkyMzliZjNjNDFjMzk3MjgzMDNmMmRlNzEuLmJhNTViODFmNjBk
MWI4ZDhhM2FlMzJjZGU4NTMyYmZhNWYzYzZiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCkBAIC0zMSwxNCArMzEsMTQgQEAKIAogbW9k
dWxlIHdlYnNvY2tldHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVdFQl9TT0NLRVRTLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIEN1
c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MSwKICAgICAg
ICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFdlYlNvY2tl
dCB7CisgICAgXSBpbnRlcmZhY2UgV2ViU29ja2V0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBVUkw7IC8vIExvd2VyY2FzZWQgLnVybCBpcyB0aGUgb25lIGluIHRoZSBz
cGVjLCBidXQgbGVhdmluZyAuVVJMIGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMuCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwogCkBAIC01NywxMSArNTcsMTEgQEAg
bW9kdWxlIHdlYnNvY2tldHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmVy
cm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsb3NlOwogCi0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRd
IERPTVN0cmluZyBwcm90b2NvbDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gRE9NU3RyaW5nIGV4dGVuc2lvbnM7CisgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBwcm90b2NvbDsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9VW5kZWZpbmVkXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGV4dGVuc2lvbnM7CiAK
LSAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0g
RE9NU3RyaW5nIGJpbmFyeVR5cGUKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGJpbmFyeVR5cGUKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNl
cHRpb24pOwogCiAgICAgICAgIC8vIEZJWE1FOiBVc2Ugb3ZlcmxvYWRpbmcgcHJvdmlkZWQgYnkg
b3VyIElETCBjb2RlIGdlbmVyYXRvci4KICAgICAgICAgLy8gQWNjb3JkaW5nIHRvIFdlYiBJREwg
c3BlY2lmaWNhdGlvbiwgb3ZlcmxvYWRlZCBmdW5jdGlvbiB3aXRoIERPTVN0cmluZyBhcmd1bWVu
dApAQCAtNzQsMTYgKzc0LDE2IEBAIG1vZHVsZSB3ZWJzb2NrZXRzIHsKICAgICAgICAgW0N1c3Rv
bV0gYm9vbGVhbiBzZW5kKGluIERPTVN0cmluZyBkYXRhKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFuZCBhcHBseSBbQ2xhbXBdIGF0dHJpYnV0
ZSBpbnN0ZWFkIG9mIFtDdXN0b21dLgotICAgICAgICBbQ3VzdG9tXSB2b2lkIGNsb3NlKGluIFtP
cHRpb25hbF0gdW5zaWduZWQgc2hvcnQgY29kZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgcmVh
c29uKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBjbG9zZShb
T3B0aW9uYWxdIGluIHVuc2lnbmVkIHNob3J0IGNvZGUsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5n
IHJlYXNvbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQg
aW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGlu
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihp
biBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJv
b2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZl
bnRFeGNlcHRpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlckNvbnRleHRXZWJTb2NrZXQuaWRsCmluZGV4
IDljZDI1MjQ1NTc5ZTEwMWZhYjE4OTQ1ZTJiYzYxZGFlYmNjZDk4ZTIuLmY4NzEyZDZhNjdhOGYx
ZjhhYjQ3MDI4ZjUyYTQzMDFkNTJjM2Q5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJDb250ZXh0V2ViU29ja2V0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyQ29udGV4dFdlYlNvY2tldC5pZGwKQEAg
LTI2LDExICsyNiwxMSBAQAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJfU09DS0VUUywKICAgICAgICAgU3VwcGxlbWVu
dGFsPVdvcmtlckNvbnRleHQKLSAgICBdIFdvcmtlckNvbnRleHRXZWJTb2NrZXQgewotICAgICAg
ICBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyLFY4RW5hYmxlZEF0UnVudGltZV0gV2ViU29ja2V0
Q29uc3RydWN0b3IgV2ViU29ja2V0OyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9yCisg
ICAgXSBpbnRlcmZhY2UgV29ya2VyQ29udGV4dFdlYlNvY2tldCB7CisgICAgICAgIFtKU0N1c3Rv
bUdldHRlcixWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBXZWJTb2NrZXRDb25zdHJ1Y3Rv
ciBXZWJTb2NrZXQ7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJz
ZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRl
eCBhZjAyYzY0YmI0MTNmNDk0MWI3MTk3ZGUzNjM1ODRjNGYwYTY1NjU2Li40MzMzY2U4YTM2Zjg3
MTM5NzM0M2VmNjNiODgzMmJjMDNkZTRmMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjEsNDQ5ICsyMSwxNzI2IEBACiAKIHBhY2thZ2Ug
SURMUGFyc2VyOwogCit1c2UgQ2xhc3M6OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAn
ZXZhbCc7CiAKIHVzZSBJUEM6Ok9wZW4yOwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9j
ZXNzb3I7CiAKLXVzZSBjb25zdGFudCBNT0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2Rl
LgotCi11c2UgY29uc3RhbnQgTU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24K
LXVzZSBjb25zdGFudCBNT0RFX0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlv
bgotdXNlIGNvbnN0YW50IE1PREVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0
aW9uCi0KLSMgSGVscGVyIHZhcmlhYmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7Ci0KLW15ICRw
YXJzZU1vZGU7Ci1teSAkcHJlc2VydmVkUGFyc2VNb2RlOwotCi1teSAkYmVRdWlldDsgIyBTaG91
bGQgbm90IGRpc3BsYXkgYW55dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwg
aG9sZCB0aGUgcmVzdWx0aW5nICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAx
LCBwYXJzZSBvbmx5IGVub3VnaCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK3VzZSBjb25zdGFu
dCBTdHJpbmdUb2tlbiA9PiAwOwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNl
IGNvbnN0YW50IEZsb2F0VG9rZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4g
PT4gMzsKK3VzZSBjb25zdGFudCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlU
b2tlbiA9PiA1OwogCi1zdWIgSW5pdGlhbGl6ZUdsb2JhbERhdGEKLXsKLSAgICBAdGVtcG9yYXJ5
Q29udGVudCA9ICIiOwordXNlIGNvbnN0YW50IFRydWUgPT4gMTsKK3VzZSBjb25zdGFudCBGYWxz
ZSA9PiAwOwogCi0gICAgJHBhcnNlTW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgJHByZXNlcnZlZFBh
cnNlTW9kZSA9IE1PREVfVU5ERUY7CisjIFVzZWQgdG8gcmVwcmVzZW50ICd0b2tlbicuCitzdHJ1
Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyBTdHJpbmcsIEludGVnZXIsIEZsb2F0
LCBJZGVudGlmaWVyLCBPdGhlciBvciBFbXB0eS4KKyAgICB2YWx1ZSA9PiAnJCcgIyBWYWx1ZS4K
K30pOwogCi0gICAgJGRvY3VtZW50ID0gMDsKLSAgICAkcGFyZW50c09ubHkgPSAwOwotfQorIyBI
ZWxwZXIgdmFyaWFibGVzCitteSAkZXhjZXB0aW9uSXNUaGVTYW1lQXNJbnRlcmZhY2UgPSAxOyAj
IEFjY29yZGluZyB0byB0aGUgc3BlYywgZXhjZXB0aW9uIGlzIG5vdCB0aGUgc2FtZSBhcyBpbnRl
cmZhY2UuCitteSAkYmVRdWlldCA9IDE7ICMgU2hvdWxkIG5vdCBkaXNwbGF5IGFueXRoaW5nIG9u
IFNURE9VVD8KIAogIyBEZWZhdWx0IENvbnN0cnVjdG9yCi1zdWIgbmV3Ci17Ci0gICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwotICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CitzdWIgbmV3IHsKKyAgICBt
eSAkY2xhc3MgPSBzaGlmdDsKIAotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7CisgICAgbXkg
JGVtcHR5VG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAgJGVtcHR5VG9rZW4tPnR5cGUoRW1wdHlU
b2tlbik7CisgICAgJGVtcHR5VG9rZW4tPnZhbHVlKCJlbXB0eSIpOworCisgICAgbXkgJHNlbGYg
PSB7CisgICAgICAgIERvY3VtZW50Q29udGVudCA9PiBbXSwKKyAgICAgICAgUmVhZEJ1ZmZlciA9
PiBbXSwKKyAgICAgICAgRW1wdHlUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTmV4dFRv
a2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICB9
OwogCiAgICAgJGJlUXVpZXQgPSBzaGlmdDsKIAotICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmpl
Y3QpOwotICAgIHJldHVybiAkcmVmZXJlbmNlOworICAgIHJldHVybiBibGVzcyAkc2VsZiwgJGNs
YXNzOwogfQogCiAjIFJldHVybnMgdGhlIHBhcnNlZCAnaWRsRG9jdW1lbnQnCiBzdWIgUGFyc2UK
IHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBt
eSAkZmlsZU5hbWUgPSBzaGlmdDsKICAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OwogICAgIG15ICRw
cmVwcm9jZXNzb3IgPSBzaGlmdDsKLSAgICAkcGFyZW50c09ubHkgPSBzaGlmdDsKKworICAgIG15
IEBkZWZpbml0aW9ucyA9ICgpOwogCiAgICAgcHJpbnQgIiB8ICoqKiBTdGFydGluZyB0byBwYXJz
ZSAkZmlsZU5hbWUuLi5cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKLSAgICBteSBAZG9jdW1lbnRD
b250ZW50ID0gYXBwbHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nl
c3Nvcik7CiAKLSAgICBteSAkZGF0YUF2YWlsYWJsZSA9IDA7CisgICAgcHVzaChAeyRzZWxmLT57
RG9jdW1lbnRDb250ZW50fX0sIGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMs
ICRwcmVwcm9jZXNzb3IpKTsKIAotICAgICMgU2ltcGxlIElETCBQYXJzZXIgKHRtKQotICAgIGZv
cmVhY2ggKEBkb2N1bWVudENvbnRlbnQpIHsKLSAgICAgICAgbXkgJG5ld1BhcnNlTW9kZSA9ICRv
YmplY3QtPkRldGVybWluZVBhcnNlTW9kZSgkXyk7CisgICAgJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgZXZhbCB7CisgICAgICAgIHB1c2goQGRlZmluaXRpb25zLCBAeyRzZWxmLT5wYXJzZURlZmlu
aXRpb25zKCl9KTsKKyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsK
IAotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAgICAgICAg
ICBpZiAoJGRhdGFBdmFpbGFibGUgZXEgMCkgewotICAgICAgICAgICAgICAgICRkYXRhQXZhaWxh
YmxlID0gMTsgIyBTdGFydCBub2RlIGJ1aWxkaW5nLi4uCi0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KKyAgICBkaWUgIk5vIGRvY3VtZW50IGZvdW5kIiB1bmxlc3MgbGVuZ3RoKEBk
ZWZpbml0aW9ucykgPiAwOworCisgICAgbXkgJGRvY3VtZW50ID0gJGRlZmluaXRpb25zWzBdOwor
ICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyByZWYoJGRvY3VtZW50KSBlcSAiaWRs
RG9jdW1lbnQiOworCisgICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxl
c3MgJGJlUXVpZXQ7CisKKyAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CisgICAg
cmV0dXJuICRkb2N1bWVudDsKK30KKworc3ViIHRva2VuU2hvdWxkQmUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRtYXRjaFR5cGUgPSBzaGlmdDsKKyAgICBteSAkbWF0Y2hWYWx1
ZSA9IHNoaWZ0OworICAgIG15ICRwb3N0Zml4ID0gc2hpZnQ7CisKKyAgICBteSAkdG9rZW4gPSAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICBteSBAdmFsdWVzID0gKCIgZXhwZWN0ZWQgXCIiLCAkbWF0
Y2hWYWx1ZSwgIlwiLCBidXQgZm91bmQgXCIiLCAkdG9rZW4tPnZhbHVlKCksICJcIiIpOworICAg
IGlmIChkZWZpbmVkICRwb3N0Zml4KSB7CisgICAgICAgIHB1c2goQHZhbHVlcywgJHBvc3RmaXgp
OworICAgIH0KKyAgICBkaWUgam9pbignJywgQHZhbHVlcykgdW5sZXNzICR0b2tlbi0+dHlwZSgp
ID09ICRtYXRjaFR5cGUgJiYgJHRva2VuLT52YWx1ZSgpIGVxICRtYXRjaFZhbHVlOworICAgIHJl
dHVybjsKK30KKworc3ViIHRva2VuU2hvdWxkQmVJZGVudGlmaWVyCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkcG9zdGZpeCA9IHNoaWZ0
OworCisgICAgbXkgQHZhbHVlcyA9ICgiIGV4cGVjdGVkIFwiaWRlbnRpZmllclwiLCBidXQgZm91
bmQgXCIiLCAkdG9rZW4tPnZhbHVlKCksICJcIiIpOworICAgIGlmIChkZWZpbmVkICRwb3N0Zml4
KSB7CisgICAgICAgIHB1c2goQHZhbHVlcywgJHBvc3RmaXgpOworICAgIH0KKyAgICBkaWUgam9p
bignJywgQHZhbHVlcykgdW5sZXNzICR0b2tlbi0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbjsK
KyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgIyBVcGRhdGUgZGV0ZWN0ZWQgZGF0YSBzdHJlYW0g
bW9kZS4uLgotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAg
ICAgICAgICAkcGFyc2VNb2RlID0gJG5ld1BhcnNlTW9kZTsKKyMgRGVmaW5pdGlvbnMgOj0gRGVm
aW5pdGlvbiBEZWZpbml0aW9ucyB8IGVwc2lsb24KK3N1YiBwYXJzZURlZmluaXRpb25zCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSA9fiAv
XihcW3w6OikkLykgfHwKKyAgICAgICAgICAgICRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgJHNlbGYtPnBhcnNlRGVmaW5p
dGlvbigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIFxAZGVmaW5pdGlvbnM7Cit9CisKKyMgRGVmaW5pdGlvbiA6PSBF
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgTm9ybWFsRGVmaW5pdGlvbiB8IFBhcnRpYWxJbnRlcmZhY2UK
K3N1YiBwYXJzZURlZmluaXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogCi0gICAgICAgIHB1c2goQHRlbXBvcmFyeUNvbnRl
bnQsICRfKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5l
eHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQ
YXJ0aWFsSW50ZXJmYWNlKCk7CiAgICAgfQorICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICByZXR1cm4gJHNlbGYt
PnBhcnNlTm9ybWFsRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKK30KIAotICAg
ICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgcmVtYWluaW5nIHRvIHBhcnNlLi4uCi0gICAg
aWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIGFuZCAoJCN0ZW1wb3JhcnlDb250ZW50ID4g
MCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKKyMgTm9ybWFsRGVmaW5p
dGlvbiA6PSBNb2R1bGUgfCBJbnRlcmZhY2UgfCBEaWN0aW9uYXJ5IHwgRXhjZXB0aW9uIHwgVHlw
ZWRlZgorIyAgICAgfCBJbXBsZW1lbnRzU3RhdGVtZW50CitzdWIgcGFyc2VOb3JtYWxEZWZpbml0
aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VNb2R1bGUoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgk
bmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VEaWN0aW9uYXJ5KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVs
c2lmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
fSBlbHNpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlVHlwZWRlZigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVt
ZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9CisgICAgfQorICAgIGlmICgk
bmV4dC0+dHlwZSgpICE9IE90aGVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgbmUgIjo6Iikgewor
ICAgICAgICBkaWUgIlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBwYXJz
aW5nIE5vcm1hbERlZmluaXRpb24uIjsKICAgICB9CisgICAgcmV0dXJuICRzZWxmLT5wYXJzZUlt
cGxlbWVudHNTdGF0ZW1lbnQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CiAKLSAgICBwcmlu
dCAiIHwgKioqIEZpbmlzaGVkIHBhcnNpbmchXG4iIHVubGVzcyAkYmVRdWlldDsKLSAKLSAgICAk
ZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CisjIE1vZHVsZSA6PSAibW9kdWxlIiBpZGVu
dGlmaWVyICJ7IiBEZWZpbml0aW9ucyAifSIgIjsiCitzdWIgcGFyc2VNb2R1bGUKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
KyAgICBteSAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKworICAgIHByaW50ICIgfC0g
VHJ5aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisKKyAgICAkc2Vs
Zi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJtb2R1bGUiKTsKKyAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZp
ZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJGRvY3VtZW50LT5tb2R1bGUoJHRv
a2VuLT52YWx1ZSgpKTsKKworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICJ7
Iik7CisgICAgbXkgJGRlZmluaXRpb25zID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAg
ICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQHskZGVmaW5pdGlvbnN9KTsKKyAgICAkc2Vs
Zi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAifSIpOworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICI7IiwgIiBpbiAiIC4gX19MSU5FX18pOworCisgICAgcHJpbnQgIiAg
fC0tLS0+IE1vZHVsZTsgTkFNRSBcIiIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiXCJcbiB8LVxuIHxc
biIgdW5sZXNzICRiZVF1aWV0OwogCiAgICAgcmV0dXJuICRkb2N1bWVudDsKIH0KIAotc3ViIFBh
cnNlTW9kdWxlCisjIEludGVyZmFjZSA6PSAiaW50ZXJmYWNlIiBpZGVudGlmaWVyIEluaGVyaXRh
bmNlICJ7IiBJbnRlcmZhY2VNZW1iZXJzICJ9IiAiOyIKK3N1YiBwYXJzZUludGVyZmFjZQogewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
KworICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworCisgICAgJHNlbGYtPnRva2Vu
U2hvdWxkQmUoSWRlbnRpZmllclRva2VuLCAiaW50ZXJmYWNlIik7CisgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0
b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZh
bHVlKCkpOworICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMCk7CisgICAgcHVzaChAeyRkYXRh
Tm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworCisgICAgJHNl
bGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgInsiKTsKKyAgICBteSAkaW50ZXJmYWNlTWVt
YmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAkc2VsZi0+dG9rZW5T
aG91bGRCZShPdGhlclRva2VuLCAifSIpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVy
VG9rZW4sICI7IiwgIiBpbiAiIC4gX19MSU5FX18pOworCisgICAgZm9yIG15ICRpdGVtIChAeyRp
bnRlcmZhY2VNZW1iZXJzfSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmli
dXRlIikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVt
KTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkg
ZXEgImRvbUNvbnN0YW50IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3Rh
bnRzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cmVmKCRpdGVtKSBlcSAiZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5mdW5jdGlvbnN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9Cisg
ICAgfQogCi0gICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVubGVz
cyAkYmVRdWlldDsKKyAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIHJldHVybiAkZGF0YU5vZGU7Cit9CiAKLSAgICBt
eSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLSAgICAkZGF0YSA9fiAvJElE
TFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworIyBQYXJ0aWFsSW50ZXJmYWNlIDo9ICJwYXJ0
aWFsIiAiaW50ZXJmYWNlIiBpZGVudGlmaWVyICJ7IiBJbnRlcmZhY2VNZW1iZXJzICJ9IiAiOyIK
K3N1YiBwYXJzZVBhcnRpYWxJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
ICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJUb2tlbiwgInBhcnRpYWwiKTsKKyAgICAk
c2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJpbnRlcmZhY2UiKTsKKyAgICBt
eSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlk
ZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJHNlbGYtPnRva2VuU2hv
dWxkQmUoT3RoZXJUb2tlbiwgInsiKTsKKyAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJz
KCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIn0iKTsKKyAgICAkc2Vs
Zi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiOyIsICIgaW4gIiAuIF9fTElORV9fKTsKKyAg
ICByZXR1cm47Cit9CiAKLSAgICBteSAkbW9kdWxlTmFtZSA9IChkZWZpbmVkKCQxKSA/ICQxIDog
ZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgJGRhdGFOb2Rl
LT5tb2R1bGUoJG1vZHVsZU5hbWUpOworIyBJbmhlcml0YW5jZSA6PSAiOiIgU2NvcGVkTmFtZUxp
c3QgfCBlcHNpbG9uCisjIChzcGVjOiBJbmhlcml0YW5jZSA6PSAiOiIgU2NvcGVkTmFtZSB8IGVw
c2lsb24pCitzdWIgcGFyc2VJbmhlcml0YW5jZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAK
LSAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwiJG1vZHVsZU5hbWVcIlxuIHwtXG4g
fFxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBl
cSAieyIpIHsKKyAgICAgICAgcmV0dXJuIFtdOworICAgIH0KKyAgICAkc2VsZi0+dG9rZW5TaG91
bGRCZShPdGhlclRva2VuLCAiOiIpOworICAgICMgVGhlIGxhdGVzdCBzcGVjLCAnIjoiIFNjb3Bl
ZE5hbWUnLCBidXQgcmVxdWlyZWQgJyI6IiBTY29wZWROYW1lTGlzdCcuCisgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZVNjb3BlZE5hbWVMaXN0KCk7CiB9CiAKLXN1YiBkdW1wRXh0ZW5kZWRBdHRyaWJ1
dGVzCisjIEludGVyYWNlTWVtYmVycyA6PSBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgSW50ZXJmYWNl
TWVtYmVyIEludGVyZmFjZU1lbWJlcnMgfCBlcHNpbG9uCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1i
ZXJzCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0OwotICAgIG15ICRhdHRycyA9IHNoaWZ0Owor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJlcnMgPSAoKTsKIAot
ICAgIGlmICghJXskYXR0cnN9KSB7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVy
VG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIn0iKSB7CisgICAgICAgICAgICBsYXN0OworICAg
ICAgICB9CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlciA9ICRz
ZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgaWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAaW50
ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKK30KKworIyBJbnRlcmZhY2VNZW1iZXIgOj0gQ29u
c3QgfCBBdHRyaWJ1dGVPck9wZXJhdGlvbgorc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAo
JG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkICIgLiAkbmV4dC0+
dmFsdWUoKSAuICIgd2hpbGUgcGFyc2luZyBJbnRlcmZhY2VNZW1iZXIiOworfQorCisjIERpY3Rp
b25hcnkgOj0gImRpY3Rpb25hcnkiIGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIERpY3Rpb25h
cnlNZW1iZXJzICJ9IiAiOyIKK3N1YiBwYXJzZURpY3Rpb25hcnkKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgICRz
ZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJUb2tlbiwgImRpY3Rpb25hcnkiKTsKKyAgICBt
eSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlk
ZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJHNlbGYtPnBhcnNlSW5o
ZXJpdGFuY2UoKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAieyIpOwor
ICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgJHNlbGYtPnRva2VuU2hv
dWxkQmUoT3RoZXJUb2tlbiwgIn0iKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRv
a2VuLCAiOyIsICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICByZXR1cm47Cit9CisKKyMgRGljdGlv
bmFyeU1lbWJlcnMgOj0gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IERpY3Rpb25hcnlNZW1iZXIgRGlj
dGlvbmFyeU1lbWJlcnMgfCBlcHNpbG9uCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVycworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxl
ICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIn0iKSB7
CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAg
cHVzaChAbWVtYmVycywgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KSk7CisgICAgfQorICAgIHJldHVybiBcQG1lbWJlcnM7Cit9CisKKyMgRGljdGlv
bmFyeU1lbWJlciA6PSBUeXBlIGlkZW50aWZpZXIgRGVmYXVsdFZhbHVlICI7Igorc3ViIHBhcnNl
RGljdGlvbmFyeU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxm
LT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4gIiAuIF9fTElORV9fKTsKKyAg
ICAkc2VsZi0+cGFyc2VEZWZhdWx0VmFsdWUoKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShP
dGhlclRva2VuLCAiOyIsICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICByZXR1cm4gMDsKK30KKwor
IyBEZWZhdWx0VmFsdWUgOj0gIj0iIENvbnN0RXhwciB8IGVwc2lsb24KK3N1YiBwYXJzZURlZmF1
bHRWYWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRu
ZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlQ29uc3RFeHByKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
ZGllICJOZXh0IHRva2VuIHNob3VsZCBiZSAnOycsIGJ1dCAiIC4gJG5leHQtPnZhbHVlKCkgdW5s
ZXNzICRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiOyI7
CisgICAgcmV0dXJuOworfQorCisjIEV4Y2VwdGlvbiA6PSAiZXhjZXB0aW9uIiBpZGVudGlmaWVy
IEluaGVyaXRhbmNlICJ7IiBFeGNlcHRpb25NZW1iZXJzICJ9IiAiOyIKK3N1YiBwYXJzZUV4Y2Vw
dGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OworCisgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisKKyAg
ICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJleGNlcHRpb24iKTsKKyAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRC
ZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJGRhdGFOb2RlLT5u
YW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigxKTsKKyAg
ICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgp
fSk7CisKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAieyIpOworICAgIG15
ICRleGNlcHRpb25NZW1iZXJzOworICAgIGlmICgkZXhjZXB0aW9uSXNUaGVTYW1lQXNJbnRlcmZh
Y2UpIHsKKyAgICAgICAgJGV4Y2VwdGlvbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VN
ZW1iZXJzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGV4Y2VwdGlvbk1lbWJlcnMgPSAkc2Vs
Zi0+cGFyc2VFeGNlcHRpb25NZW1iZXJzKCk7CisgICAgfQorICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlKE90aGVyVG9rZW4sICJ9Iik7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tl
biwgIjsiLCAiIGluICIgLiBfX0xJTkVfXyk7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JGV4Y2Vw
dGlvbk1lbWJlcnN9KSB7CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUi
KSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOwor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9
LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYo
JGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUt
PmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIHJldHVybiAkZGF0YU5vZGU7Cit9CisKKyMgRXhjZXB0aW9uTWVt
YmVycyA6PSBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgRXhjZXB0aW9uTWVtYmVyIEV4Y2VwdGlvbk1l
bWJlcnMgfCBlcHNpbG9uCitzdWIgcGFyc2VFeGNlcHRpb25NZW1iZXJzCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSBAZXhjZXB0aW9uTWVtYmVycyA9ICgpOworCisgICAgd2hpbGUg
KDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIn0iKSB7
CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAg
cHVzaChAZXhjZXB0aW9uTWVtYmVycywgJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVyKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpKTsKKyAgICB9CisgICAgcmV0dXJuIFxAZXhjZXB0aW9uTWVtYmVy
czsKK30KKworIyBUeXBlZGVmIDo9ICJ0eXBlZGVmIiBUeXBlIGlkZW50aWZpZXIgIjsiCitzdWIg
cGFyc2VUeXBlZGVmCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlm
aWVyVG9rZW4sICJ0eXBlZGVmIik7CisgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRp
ZmllcigkdG9rZW4sICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRC
ZShPdGhlclRva2VuLCAiOyIsICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICByZXR1cm47Cit9CisK
KyMgSW1wbGVtZW50c1N0YXRlbWVudCA6PSBTY29wZWROYW1lICJpbXBsZW1lbnRzIiBTY29wZWRO
YW1lICI7Igorc3ViIHBhcnNlSW1wbGVtZW50c1N0YXRlbWVudAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgJHNl
bGYtPnBhcnNlU2NvcGVkTmFtZSgpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZp
ZXJUb2tlbiwgImltcGxlbWVudHMiKTsKKyAgICAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7Cisg
ICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsiLCAiIGluICIgLiBfX0xJTkVf
Xyk7CisgICAgcmV0dXJuOworfQorCisjIENvbnN0IDo9ICJjb25zdCIgQ29uc3RUeXBlIGlkZW50
aWZpZXIgIj0iIENvbnN0RXhwciAiOyIKK3N1YiBwYXJzZUNvbnN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBt
eSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKKworICAgICRzZWxmLT50b2tlblNo
b3VsZEJlKElkZW50aWZpZXJUb2tlbiwgImNvbnN0Iik7CisgICAgJG5ld0RhdGFOb2RlLT50eXBl
KCRzZWxmLT5wYXJzZUNvbnN0VHlwZSgpKTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIg
LiBfX0xJTkVfXyk7CisgICAgJG5ld0RhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7Cisg
ICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIj0iKTsKKyAgICAkbmV3RGF0YU5v
ZGUtPnZhbHVlKCRzZWxmLT5wYXJzZUNvbnN0RXhwcigpKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91
bGRCZShPdGhlclRva2VuLCAiOyIsICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICAkbmV3RGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICByZXR1
cm4gJG5ld0RhdGFOb2RlOworfQorCisjIENvbnN0RXhwciA6PSBCb29sZWFuTGl0ZXJhbCB8IGlu
dGVnZXIgfCBmbG9hdCB8IHN0cmluZyB8ICJudWxsIgorc3ViIHBhcnNlQ29uc3RFeHByCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgeworICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuIHx8ICRuZXh0LT50
eXBlKCkgPT0gRmxvYXRUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJudWxs
IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJudWxsIjsK
KyAgICB9CisgICAgcmV0dXJuICRzZWxmLT5wYXJzZUJvb2xlYW5MaXRlcmFsKCk7Cit9CisKKyMg
Qm9vbGVhbkxpdGVyYWwgOj0gInRydWUiIHwgImZhbHNlIgorc3ViIHBhcnNlQm9vbGVhbkxpdGVy
YWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgZGllICR0b2tlbi0+dmFsdWUoKSAuICIgaXMgbm90IGFuIGlkZW50aWZp
ZXIuIiB1bmxlc3MgJHRva2VuLT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuOworICAgIGlmICgk
dG9rZW4tPnZhbHVlKCkgZXEgInRydWUiKSB7CisgICAgICAgIHJldHVybiAidHJ1ZSI7CisgICAg
fSBlbHNpZiAoJHRva2VuLT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAgcmV0dXJuICJm
YWxzZSI7CisgICAgfQorICAgIGRpZSAkdG9rZW4tPnZhbHVlKCkgLiAiIGlzIG5vdCBhIGJvb2xl
YW4gbGl0ZXJhbC4iOworfQorCisjIEF0dHJpYnV0ZU9yT3BlcmF0aW9uIDo9ICJzdHJpbmdpZmll
ciIgU3RyaW5naWZpZXJBdHRyaWJ1dGVPck9wZXJhdGlvbiB8IEF0dHJpYnV0ZSB8IE9wZXJhdGlv
bgorc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU3RyaW5naWZpZXJB
dHRyaWJ1dGVPck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpID1+
IC9eKHJlYWRvbmx5fGF0dHJpYnV0ZSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
QXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm4gJHNl
bGYtPnBhcnNlT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisjIFN0cmlu
Z2lmaWVyQXR0cmlidXRlT3JPcGVyYXRpb24gOj0gQXR0cmlidXRlIHwgT3BlcmF0aW9uUmVzdCB8
ICI7Igorc3ViIHBhcnNlU3RyaW5naWZpZXJBdHRyaWJ1dGVPck9wZXJhdGlvbgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpID1+IC9eKHJlYWRvbmx5
fGF0dHJpYnV0ZSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlKCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3Bl
cmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisjIEF0dHJpYnV0ZSA6PSBSZWFk
T25seSAiYXR0cmlidXRlIiBBdHRyaWJ1dGVUeXBlIGlkZW50aWZpZXIgR2V0IFNldFJhaXNlcyAi
OyIKK3N1YiBwYXJzZUF0dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5ld0RhdGFOb2RlID0g
bmV3IGRvbUF0dHJpYnV0ZSgpOworCisgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICB9
IGVsc2UgeworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOworICAgIH0K
KyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlmaWVyVG9rZW4sICJhdHRyaWJ1dGUiKTsK
KyAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKSk7
CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hv
dWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgbXkgJGdldFJlZiA9
ICRzZWxmLT5wYXJzZUdldCgpOworICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAg
bXkgJWdldFJlc3VsdCA9ICV7JGdldFJlZn07CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUt
PmdldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZXN1bHR7ImdldHJhaXNlcyJ9fSk7CisgICAgfQor
ICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJz
ZVNldFJhaXNlcygpfSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsi
LCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICByZXR1cm4gJG5ld0Rh
dGFOb2RlOworfQorCisjIFJlYWRPbmx5IDo9ICJyZWFkb25seSIgfCBlcHNpbG9uCitzdWIgcGFy
c2VSZWFkT25seQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJG5l
eHQsICIgaW4gIiAuIF9fTElORV9fKTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmVh
ZG9ubHkiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gVHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIEZhbHNlOworfQorCisjIEdldCA6PSBJbmhlcml0c0dldHRl
ciB8IEdldFJhaXNlcyB8IGVwc2lsb24KK3N1YiBwYXJzZUdldAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiaW5o
ZXJpdHMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbmhlcml0c0dldHRlcigpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQt
PnZhbHVlKCkgZXEgImdldHJhaXNlcyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUdl
dFJhaXNlcygpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJzZXRyYWlzZXMiKSB8fAorICAgICAgICAoJG5leHQt
PnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI7IikpIHsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52YWx1ZSgp
IC4gIndoaWxlIHBhcnNpbmcgR2V0LiI7Cit9CisKKyMgSW5oZXJpdHNHZXR0ZXIgOj0gImluaGVy
aXRzIiAiZ2V0dGVyIgorc3ViIHBhcnNlSW5oZXJpdHNHZXR0ZXIKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJUb2tlbiwgImluaGVy
aXRzIik7CisgICAgbXkgJWF0dHIgPSAoKTsKKyAgICAkYXR0cnsiaW5oZXJpdHMifSA9IDE7Cisg
ICAgJGF0dHJ7ImdldHJhaXNlcyJ9ID0gW107CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoSWRl
bnRpZmllclRva2VuLCAiZ2V0dGVyIik7CisgICAgcmV0dXJuIFwlYXR0cjsKK30KKworIyBHZXRS
YWlzZXMgOj0gImdldHJhaXNlcyIgRXhjZXB0aW9uTGlzdAorc3ViIHBhcnNlR2V0UmFpc2VzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShJZGVudGlm
aWVyVG9rZW4sICJnZXRyYWlzZXMiKTsKKyAgICBteSAlYXR0ciA9ICgpOworICAgICRhdHRyeyJp
bmhlcml0cyJ9ID0gMDsKKyAgICAkYXR0cnsiZ2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VFeGNl
cHRpb25MaXN0KCk7CisgICAgcmV0dXJuIFwlYXR0cjsKK30KKworIyBTZXRSYWlzZXMgOj0gInNl
dHJhaXNlcyIgRXhjZXB0aW9uTGlzdCB8IGVwc2lsb24KK3N1YiBwYXJzZVNldFJhaXNlcworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZh
bHVlKCkgZXEgInNldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVy
biBbXTsKK30KKworIyBPcGVyYXRpb24gOj0gUXVhbGlmaWVycyBPcGVyYXRpb25SZXN0CitzdWIg
cGFyc2VPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21G
dW5jdGlvbigpOworICAgICRzZWxmLT5wYXJzZVF1YWxpZmllcnMoJG5ld0RhdGFOb2RlKTsKKyAg
ICAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRuZXdEYXRhTm9kZSk7CisgICAgZGllICJGb3Vu
ZCB1bmRlZmluZWQgc2lnbmF0dXJlIHdoaWxlIHBhcnNpbmcgT3BlcmF0aW9uLiIgdW5sZXNzIGRl
ZmluZWQoJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUpOworICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0
dXJuICRuZXdEYXRhTm9kZTsKK30KKworIyBRdWFsaWZpZXJzIDo9ICJzdGF0aWMiIHwgIm9taXR0
YWJsZSIgU3BlY2lhbHMgfCBTcGVjaWFscworc3ViIHBhcnNlUXVhbGlmaWVycworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoMSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJvbWl0dGFibGUiKSB7CisgICAgICAgICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgICRzZWxmLT5wYXJzZVNwZWNpYWxzKCk7CisgICAgcmV0dXJuOworfQor
CisjIFNwZWNpYWxzIDo9IFNwZWNpYWwgU3BlY2lhbHMgfCBlcHNpbG9uCitzdWIgcGFyc2VTcGVj
aWFscworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgdW5sZXNzICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUgPX4gL14oZ2V0dGVyfHNl
dHRlcnxjcmVhdG9yfGRlbGV0ZXJ8Y2FsbGVyKSQvKSB7CisgICAgICAgICAgICBsYXN0OworICAg
ICAgICB9CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICB9CisgICAgcmV0dXJu
OworfQorCisjIFNwZWNpYWwgOj0gImdldHRlciIgfCAic2V0dGVyIiB8ICJjcmVhdG9yIiB8ICJk
ZWxldGVyIiB8ICJjYWxsZXIiCitzdWIgcGFyc2VTcGVjaWFsCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIGRpZSAiVW5l
eHBlY3RlZCAiIC4gJHRva2VuLT52YWx1ZSgpIC4gIiB3aGlsZSBwYXJzaW5nIFNwZWNpYWwuIiB1
bmxlc3MgKCR0b2tlbi0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkdG9rZW4tPnZhbHVl
ID1+IC9eKGdldHRlcnxzZXR0ZXJ8Y3JlYXRvcnxkZWxldGVyfGNhbGxlcikkLyk7CisgICAgcmV0
dXJuOworfQorCisjIE9wZXJhdGlvblJlc3QgOj0gUmV0dXJuVHlwZSBPcHRpb25hbElkZW50aWZp
ZXIgIigiIEFyZ3VtZW50TGlzdCAiKSIgUmFpc2VzICI7Igorc3ViIHBhcnNlT3BlcmF0aW9uUmVz
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7
CisKKyAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVJldHVyblR5cGUoKSk7
CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHNlbGYtPnBhcnNlT3B0aW9uYWxJ
ZGVudGlmaWVyKCkpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICIoIik7
CisgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJn
dW1lbnRMaXN0KCl9KTsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiKSIp
OworICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9LCBAeyRzZWxmLT5w
YXJzZVJhaXNlcygpfSk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwgIjsi
LCAiIGluICIgLiBfX0xJTkVfXyk7CisgICAgcmV0dXJuOworfQorCisjIE9wdGlvbmFsSWRlbnRp
ZmllciA6PSBpZGVudGlmaWVyIHwgZXBzaWxvbgorc3ViIHBhcnNlT3B0aW9uYWxJZGVudGlmaWVy
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZh
bHVlKCkgZXEgIigiKSB7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CisgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVy
KCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7
Cit9CiAKLSAgICBteSBAdGVtcDsKLSAgICB3aGlsZSAoKG15ICRuYW1lLCBteSAkdmFsdWUpID0g
ZWFjaCgleyRhdHRyc30pKSB7Ci0gICAgICAgIHB1c2goQHRlbXAsICIkbmFtZT0kdmFsdWUiKTsK
KyMgUmFpc2VzIDo9ICJyYWlzZXMiIEV4Y2VwdGlvbkxpc3QgfCBlcHNpbG9uCitzdWIgcGFyc2VS
YWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuICYm
ICRuZXh0LT52YWx1ZSgpIGVxICJyYWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwogICAgIH0KKyAg
ICBkaWUgIlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBwYXJzaW5nIFJh
aXNlcyIgdW5sZXNzICRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUo
KSBlcSAiOyI7CisgICAgcmV0dXJuIFtdOworfQogCi0gICAgcmV0dXJuICRwYWRTdHIgLiAiWyIg
LiBqb2luKCIsICIsIEB0ZW1wKSAuICJdIjsKKyMgRXhjZXB0aW9uTGlzdCA6PSAiKCIgU2NvcGVk
TmFtZUxpc3QgIikiCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiKCIpOworICAgIG15
ICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lTGlzdCgpOworICAgICRzZWxmLT50b2tl
blNob3VsZEJlKE90aGVyVG9rZW4sICIpIik7CisgICAgcmV0dXJuICRyZXN1bHQ7CiB9CiAKLXN1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworIyBBcmd1bWVudExpc3QgOj0gQXJndW1lbnQgQXJn
dW1lbnRzIHwgZXBzaWxvbgorc3ViIHBhcnNlQXJndW1lbnRMaXN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRu
ZXh0LT52YWx1ZSgpIGVxICIpIikgeworICAgICAgICByZXR1cm4gXEBhcmd1bWVudHM7CisgICAg
fQorICAgIHB1c2goQGFyZ3VtZW50cywgJHNlbGYtPnBhcnNlQXJndW1lbnQoKSk7CisgICAgcHVz
aChAYXJndW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgcmV0dXJuIFxA
YXJndW1lbnRzOworfQorCisjIEFyZ3VtZW50cyA6PSAiLCIgQXJndW1lbnQgQXJndW1lbnRzIHwg
ZXBzaWxvbgorc3ViIHBhcnNlQXJndW1lbnRzCiB7Ci0gICAgbXkgJHN0ciA9IHNoaWZ0OwotICAg
ICRzdHIgPX4gcy9cW1xzKiguKilccypcXS8kMS9nOworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGFyZ3VtZW50cyA9ICgpOwogCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIHVubGVzcyAoJG5leHQtPnR5cGUoKSA9
PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgbGFz
dDsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcHVzaChA
YXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICB9CisgICAgcmV0dXJuIFxA
YXJndW1lbnRzOworfQorCisjIEFyZ3VtZW50IDo9IEV4dGVuZGVkQXR0cmlidXRlTGlzdCBJbiBP
cHRpb25hbCBUeXBlIEVsbGlwc2lzIGlkZW50aWZpZXIKK3N1YiBwYXJzZUFyZ3VtZW50Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWdu
YXR1cmUoKTsKKyAgICAKKyAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRz
ZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpKTsKKyAgICAkcGFyYW1EYXRhTm9kZS0+
ZGlyZWN0aW9uKCRzZWxmLT5wYXJzZUluKCkpOworICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsKCk7
CisgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgIyBkb21EYXRhTm9kZSBj
YW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICBpZiAoJHR5cGUgPX4gL14oLiopXD8kLykg
eworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAgICB9CisgICAgIyBSZW1v
dmUgYWxsICI/IiBpZiBleGlzdHMsIGUuZy4gIm9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisg
ICAgJHR5cGUgPX4gcy9cPy8vOworICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAg
ICAkc2VsZi0+cGFyc2VFbGxpcHNpcygpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgbXkgJG5hbWUgPSAiIjsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgICRuYW1lID0gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICAkcGFyYW1EYXRhTm9k
ZS0+bmFtZSgkbmFtZSk7CisgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOworfQorCisjIEluIDo9
ICJpbiIgfCBlcHNpbG9uCitzdWIgcGFyc2VJbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAg
ICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJpbiI7CisgICAgfQorICAgIHJl
dHVybiAiIjsKK30KKworIyBPcHRpb25hbCA6PSAib3B0aW9uYWwiIHwgZXBzaWxvbgorc3ViIHBh
cnNlT3B0aW9uYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJvcHRpb25hbCIpIHsKKyAgICAgICAgJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwor
IyBFbGxpcHNpcyA6PSAiLi4uIiB8IGVwc2lsb24KK3N1YiBwYXJzZUVsbGlwc2lzCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEg
Ii4uLiIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworIyBFeGNlcHRpb25NZW1iZXIgOj0gQ29uc3QgfCBF
eGNlcHRpb25GaWVsZAorc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVyCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25GaWVsZCgkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKK30KKworIyBFeGNlcHRpb25GaWVsZCA6PSBBdHRyaWJ1dGVUeXBlIGlkZW50aWZpZXIg
IjsiCitzdWIgcGFyc2VFeGNlcHRpb25GaWVsZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworICAgIG15ICRuZXdEYXRhTm9k
ZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKworICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9u
bHkgYXR0cmlidXRlIik7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25h
dHVyZSk7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlQXR0
cmlidXRlVHlwZSgpKTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAk
c2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGluICIgLiBfX0xJTkVfXyk7
CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAg
ICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiOyIpOworICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKK30KKworIyBFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
Oj0gIlsiIEV4dGVuZGVkQXR0cmlidXRlcyAiXSIgfCBlcHNpbG9uCitzdWIgcGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICVhdHRycyA9
ICgpOwogCi0gICAgd2hpbGUgKCRzdHIgIX4gL15ccyokLykgewotICAgICAgICAjIFBhcnNlIG5h
bWUKLSAgICAgICAgaWYgKCRzdHIgIX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICBk
aWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICB9Ci0g
ICAgICAgIG15ICRuYW1lID0gJDE7Ci0gICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87
Ci0KLSAgICAgICAgaWYgKCRzdHIgPX4gL15ccyo9LykgewotICAgICAgICAgICAgJHN0ciA9fiBz
L15ccyo9Ly87Ci0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIk5hbWVkQ29uc3RydWN0b3IiKSB7
Ci0gICAgICAgICAgICAgICAgIyBQYXJzZSAnPScgbmFtZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/
Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZTsKLSAgICAgICAgICAgICAgICBp
ZiAoJHN0ciA9fiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGNvbnN0
cnVjdG9yTmFtZSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdc
ZF0rKS8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRp
ZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAg
ICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3RyID1+
IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkc2lnbmF0dXJl
ID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkc2lnbmF0dXJlID1+IHMvXiguKj8pXHMq
JC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1
Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+ICRzaWduYXR1cmV9
OwotICAgICAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8vOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJJ
bnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyosPy8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29u
c3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAiIn07Ci0gICAgICAgICAgICAgICAgICAgICRz
dHIgPX4gcy9eXHMqLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIyBQ
YXJzZSAnPScgdmFsdWUgJywnPwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqKFte
LF0qKSw/LykgewotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAg
ICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyokLyQxLzsKLSAgICAg
ICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW14sXSopLD8vLzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0
cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgIyBQYXJzZSAn
KCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0g
ICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAg
ICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMv
XiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8v
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0
ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcnIHwgJywnCi0g
ICAgICAgICAgICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAg
ICRhdHRyc3skbmFtZX0gPSAiIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgJGF0dHJzeyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICRzdHIgPX4gcy9eXHMqLD8vLzsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSAhPSBPdGhlclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpIG5lICJbIikgeworICAgICAgICByZXR1cm4gXCVhdHRyczsKKyAgICB9CisgICAgJHNl
bGYtPmdldFRva2VuKCk7CisKKyAgICBteSAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlKCk7CisgICAgQGF0dHJze2tleXMgJXskYXR0cn19ID0gdmFsdWVzICV7JGF0dHJ9Owor
ICAgICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgQGF0dHJz
e2tleXMgJXskYXR0cn19ID0gdmFsdWVzICV7JGF0dHJ9OworCisgICAgJHNlbGYtPnRva2VuU2hv
dWxkQmUoT3RoZXJUb2tlbiwgIl0iKTsKKyAgICByZXR1cm4gXCVhdHRyczsKK30KKworIyBFeHRl
bmRlZEF0dHJpYnV0ZXMgOj0gIiwiIEV4dGVuZGVkQXR0cmlidXRlIEV4dGVuZGVkQXR0cmlidXRl
cyB8IGVwc2lsb24KK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJWF0dHJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBl
KCkgIT0gT3RoZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBuZSAiLCIpIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIG15
ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUoKTsKKyAgICAgICAgQGF0dHJz
e2tleXMgJXskYXR0cn19ID0gdmFsdWVzICV7JGF0dHJ9OworICAgIH0KKyAgICByZXR1cm4gXCVh
dHRyczsKK30KKworIyBFeHRlbmRlZEF0dHJpYnV0ZSA6PSBpZGVudGlmaWVyIEV4dGVuZGVkQXR0
cmlidXRlMQorc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgZGllICJFeHRl
bmRlZEF0dHJpYnV0ZSBzaG91bGQgc3RhcnQgd2l0aCBpZGVudGlmaWVyLCBidXQgIiAuICR0b2tl
bi0+dmFsdWUoKSB1bmxlc3MgJHRva2VuLT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuOworICAg
IG15ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUxKCR0b2tlbi0+dmFsdWUo
KSk7CisgICAgcmV0dXJuICRhdHRyOworfQorCisjIFR5cGUgOj0gQXR0cmlidXRlVHlwZSB8ICJz
ZXF1ZW5jZSIgIjwiIFR5cGUgIj4iIE51bGwKK3N1YiBwYXJzZVR5cGUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBuZSAi
c2VxdWVuY2UiKSB8fAorICAgICAgICAoJG5leHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRu
ZXh0LT52YWx1ZSgpIGVxICI6OiIpKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT50b2tlblNob3VsZEJlKElkZW50aWZpZXJU
b2tlbiwgInNlcXVlbmNlIik7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmUoT3RoZXJUb2tlbiwg
IjwiKTsKKyAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAkc2VsZi0+dG9r
ZW5TaG91bGRCZShPdGhlclRva2VuLCAiPiIpOworICAgIGlmICgkc2VsZi0+cGFyc2VOdWxsKCkp
IHsKKyAgICAgICAgcmV0dXJuICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPj8iOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4iOworICAgIH0KK30K
KworIyBBdHRyaWJ1dGVUeXBlIDo9IFByaW1pdGl2ZU9yU3RyaW5nVHlwZSBUeXBlU3VmZml4Cisj
ICAgICB8IFNjb3BlZE5hbWUgVHlwZVN1ZmZpeAorIyAgICAgfCAib2JqZWN0IiBUeXBlU3VmZml4
CisjICAgICB8ICJEYXRlIiBUeXBlU3VmZml4CisjICAgICB8ICJhbnkiIFR5cGVTdWZmaXhTdGFy
dGluZ1dpdGhBcnJheQorc3ViIHBhcnNlQXR0cmlidXRlVHlwZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBteSBAdHlw
ZXMgPSAoKTsKKworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewor
ICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAgICAgcHVzaChAdHlwZXMsICJvYmplY3QiKTsKKyAg
ICAgICAgICAgIHB1c2goQHR5cGVzLCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAg
ICAgICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJEYXRlIikgeworICAgICAgICAgICAgJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgICAgICBwdXNoKEB0eXBlcywgIkRhdGUiKTsKKyAgICAgICAgICAgIHB1c2go
QHR5cGVzLCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAgICAgICAgICAgcmV0dXJu
IGpvaW4oJycsIEB0eXBlcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJhbnkiKSB7CisgICAgICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAg
IHB1c2goQHR5cGVzLCAiYW55Iik7CisgICAgICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+
cGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKX0pOworICAgICAgICAgICAgcmV0dXJu
IGpvaW4oJycsIEB0eXBlcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKHVuc2lnbmVkfHNob3J0fGxvbmd8Ym9vbGVhbnxieXRlfG9jdGV0fGZsb2F0fGRvdWJs
ZXxET01TdHJpbmcpJC8pIHsKKyAgICAgICAgICAgIHB1c2goQHR5cGVzLCAkc2VsZi0+cGFyc2VQ
cmltaXRpdmVPclN0cmluZ1R5cGUoKSk7CisgICAgICAgICAgICBwdXNoKEB0eXBlcywgQHskc2Vs
Zi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICAgICAgICAgIHJldHVybiBqb2luKCcnLCBAdHlw
ZXMpOworICAgICAgICB9CisgICAgICAgIHB1c2goQHR5cGVzLCAkc2VsZi0+cGFyc2VTY29wZWRO
YW1lKCkpOworICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9
KTsKKyAgICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAg
ICAgICBwdXNoKEB0eXBlcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAgcHVz
aChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVybiBq
b2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgIiAuICRuZXh0LT52
YWx1ZSgpIC4gIiB3aGlsZSBwYXJzaW5nIEF0dHJpYnV0ZVR5cGUuIjsKK30KKworIyBDb25zdFR5
cGUgOj0gUHJpbWl0aXZlT3JTdHJpbmdUeXBlIE51bGwKK3N1YiBwYXJzZUNvbnN0VHlwZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VQcmltaXRp
dmVPclN0cmluZ1R5cGUoKTsKKyAgICBpZiAoJHNlbGYtPnBhcnNlTnVsbCgpKSB7CisgICAgICAg
IHJldHVybiAkdHlwZSAuICI/IjsKKyAgICB9CisgICAgcmV0dXJuICR0eXBlOworfQorCisjIFBy
aW1pdGl2ZU9yU3RyaW5nVHlwZSA6PSBVbnNpZ25lZEludGVnZXJUeXBlCisjICAgICB8ICJib29s
ZWFuIiB8ICJieXRlIiB8ICJvY3RldCIgfCAiZmxvYXQiIHwgImRvdWJsZSIgfCAiRE9NU3RyaW5n
Igorc3ViIHBhcnNlUHJpbWl0aXZlT3JTdHJpbmdUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICRzZWxmLT50b2tl
blNob3VsZEJlSWRlbnRpZmllcigkbmV4dCwgIiBpbiAiIC4gX19MSU5FX18pOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvXih1bnNpZ25lZHxzaG9ydHxsb25nKSQvKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKCk7CisgICAgfQorICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIGlmICgkdG9rZW4tPnZhbHVlKCkgPX4gL14o
Ym9vbGVhbnxieXRlfG9jdGV0fGZsb2F0fGRvdWJsZXxET01TdHJpbmcpJC8pIHsKKyAgICAgICAg
cmV0dXJuICQxOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgIiAuICR0b2tlbi0+dmFsdWUo
KSAuICJ3aGlsZSBwYXJzaW5nIFByaW1pdGl2ZU9yU3RyaW5nVHlwZS4iOworfQorCisjIFVuc2ln
bmVkSW50ZWdlclR5cGUgOj0gInVuc2lnbmVkIiBJbnRlZ2VyVHlwZSB8IEludGVnZXJUeXBlCitz
dWIgcGFyc2VVbnNpZ25lZEludGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICRzZWxmLT50b2tlblNob3Vs
ZEJlSWRlbnRpZmllcigkbmV4dCwgIiBpbiAiIC4gX19MSU5FX18pOworCisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJ1bnNpZ25lZCIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgIHJldHVybiAidW5zaWduZWQgIiAuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7Cisg
ICAgfQorICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworfQorCisjIEludGVn
ZXJUeXBlIDo9ICJzaG9ydCIgfCAiaW50IiB8ICJsb25nIiBPcHRpb25hbExvbmcKKyMgKFNwZWM6
IEludGVnZXJUeXBlIDo9ICJzaG9ydCIgfCAibG9uZyIgT3B0aW9uYWxMb25nKQorc3ViIHBhcnNl
SW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYtPnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0
b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworCisgICAgaWYgKCR0b2tlbi0+dmFsdWUoKSBlcSAi
bG9uZyIpIHsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygpKSB7CisgICAg
ICAgICAgICByZXR1cm4gImxvbmcgbG9uZyI7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOworICAgICAgICAg
ICAgcmV0dXJuICJsb25nIjsKICAgICAgICAgfQogICAgIH0KKyAgICBkaWUgIkludGVnZXJUeXBl
IHNob3VsZCBiZSBpbnQsIHNob3J0IG9yIGxvbmcsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgpIHVu
bGVzcyAkdG9rZW4tPnZhbHVlKCkgPX4gL14oc2hvcnR8aW50KSQvOworICAgIHJldHVybiAkdG9r
ZW4tPnZhbHVlKCk7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKKyMgT3B0aW9uYWxMb25nIDo9
ICJsb25nIiB8IGVwc2lsb24KK3N1YiBwYXJzZU9wdGlvbmFsTG9uZworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgImxv
bmciKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisgICAgcmV0dXJuIDA7CiB9CiAKLXN1YiBwYXJzZVBhcmFtZXRlcnMKKyMgVHlwZVN1ZmZp
eCA6PSAiWyIgIl0iIFR5cGVTdWZmaXggfCAiPyIgVHlwZVN1ZmZpeFN0YXJpbmdXaXRoQXJyYXkg
fCBlcHNpbG9uCitzdWIgcGFyc2VUeXBlU3VmZml4CiB7Ci0gICAgbXkgJG5ld0RhdGFOb2RlID0g
c2hpZnQ7Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgQHN1ZmZpeCA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+
dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICJdIik7CisgICAgICAgIHB1c2goQHN1ZmZp
eCwgIltdIik7CisgICAgICAgIHB1c2goQHN1ZmZpeCwgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4
KCl9KTsKKyAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQt
PnZhbHVlKCkgZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBw
dXNoKEBzdWZmaXgsICI/Iik7CisgICAgICAgIHB1c2goQHN1ZmZpeCwgQHskc2VsZi0+cGFyc2VU
eXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBzdWZm
aXg7Cit9CiAKLSAgICAjIFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMgYnV0IG9ubHkgaWYgdGhl
IGNvbW1hCi0gICAgIyBpcyBub3Qgd2l0aGluIGF0dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2Vk
IGhlcmUKLSAgICAjIGFzIGJlaW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRp
bmcgJ1snLgotICAgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9u
J3QgbmVzdC4KLSAgICBteSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRtZXRob2RT
aWduYXR1cmUpOwotICAgIGZvcmVhY2ggKEBwYXJhbXMpIHsKLSAgICAgICAgbXkgJGxpbmUgPSAk
XzsKKyMgVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5IDo9ICJbIiAiXSIgVHlwZVN1ZmZpeCB8
IGVwc2lsb24KK3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHN1ZmZpeCA9ICgpOworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAm
JiAkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgICRzZWxmLT50b2tlblNob3VsZEJlKE90aGVyVG9rZW4sICJdIiwgIiBpbiAiIC4gX19M
SU5FX18pOworICAgICAgICBwdXNoKEBzdWZmaXgsICJbXSIpOworICAgICAgICBwdXNoKEBzdWZm
aXgsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgfQorICAgIHJldHVybiBcQHN1
ZmZpeDsKK30KIAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFy
YW1ldGVyU2VsZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAg
ICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIp
OyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUg
PSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5l
XG4pIikpOwotICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6
ICIiOwotICAgICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyMgTnVsbCA6PSAiPyIgfCBlcHNp
bG9uCitzdWIgcGFyc2VOdWxsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICBt
eSAkaXNOdWxsYWJsZSA9ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4g
JiYgJG5leHQtPnZhbHVlKCkgZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOwor
ICAgICAgICByZXR1cm4gVHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIEZhbHNlOworfQogCi0gICAg
ICAgIG15ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOwotICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+ZGlyZWN0aW9uKCRwYXJhbURpcmVjdGlvbik7Ci0gICAgICAgICRwYXJhbURh
dGFOb2RlLT5uYW1lKCRwYXJhbU5hbWUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgk
cGFyYW1UeXBlKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcyhw
YXJzZUV4dGVuZGVkQXR0cmlidXRlcygkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpKTsKLSAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoJGlzTnVsbGFibGUpOworIyBSZXR1cm5UeXBl
IDo9IFR5cGUgfCAidm9pZCIKK3N1YiBwYXJzZVJldHVyblR5cGUKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OwogCi0gICAgICAgIG15ICRhcnJheVJlZiA9ICRuZXdEYXRhTm9kZS0+cGFyYW1ldGVy
czsKLSAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkcGFyYW1EYXRhTm9kZSk7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICJ2b2lkIikgeworICAgICAgICAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZVR5cGUoKTsKK30KKworIyBTY29wZWROYW1lTGlzdCA6PSBTY29wZWROYW1lIFNj
b3BlZE5hbWVzCitzdWIgcGFyc2VTY29wZWROYW1lTGlzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgQG5hbWVMaXN0ID0gKCk7CisKKyAgICBwdXNoKEBuYW1lTGlzdCwgJHNlbGYt
PnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICBwdXNoKEBuYW1lTGlzdCwgQHskc2VsZi0+cGFyc2VT
Y29wZWROYW1lcygpfSk7CisgICAgcmV0dXJuIFxAbmFtZUxpc3Q7Cit9CisKKyMgU2NvcGVkTmFt
ZXMgOj0gIiwiIFNjb3BlZE5hbWUgU2NvcGVkTmFtZXMgfCBlcHNpbG9uCitzdWIgcGFyc2VTY29w
ZWROYW1lcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CiAK
LSAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBQYXJhbTsgVFlQRSBcIiRwYXJhbVR5cGVcIiBOQU1F
IFwiJHBhcmFtTmFtZVwiIiAuIAotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygi
XG4gIHwgICAgICAgICAgICAgICIsICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMp
IC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7ICAgICAgICAgIAorICAgIHdoaWxlICgxKSB7CisgICAg
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5
cGUoKSAhPSBPdGhlclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIG5lICIsIikgeworICAgICAgICAg
ICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
cHVzaChAbmFtZXMsICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKSk7CiAgICAgfQorICAgIHJldHVy
biBcQG5hbWVzOwogfQogCi1zdWIgUGFyc2VJbnRlcmZhY2UKKyMgU2NvcGVkTmFtZSA6PSBBYnNv
bHV0ZVNjb3BlZE5hbWUgfCBSZWxhdGl2ZVNjb3BlZE5hbWUKK3N1YiBwYXJzZVNjb3BlZE5hbWUK
IHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0g
ICAgbXkgJHNlY3Rpb25OYW1lID0gc2hpZnQ7Ci0KLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0
ZW1wb3JhcnlDb250ZW50KTsKLQotICAgICMgTG9vayBmb3IgZW5kLW9mLWludGVyZmFjZSBtYXJr
Ci0gICAgJGRhdGEgPX4gL307L2c7Ci0gICAgJGRhdGEgPSBzdWJzdHIoJGRhdGEsIGluZGV4KCRk
YXRhLCAkc2VjdGlvbk5hbWUpLCBwb3MoJGRhdGEpIC0gbGVuZ3RoKCRkYXRhKSk7Ci0KLSAgICAk
ZGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0KLSAgICAjIEJlZ2lubmluZyBvZiB0aGUgcmVnZXhwIHBh
cnNpbmcgbWFnaWMKLSAgICBpZiAoJHNlY3Rpb25OYW1lIGVxICJpbnRlcmZhY2UiIHx8ICRzZWN0
aW9uTmFtZSBlcSAiZXhjZXB0aW9uIikgewotICAgICAgICBwcmludCAiIHwtIFRyeWluZyB0byBw
YXJzZSBpbnRlcmZhY2UuLi5cbiIgdW5sZXNzICRiZVF1aWV0OwotCi0gICAgICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gIiI7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VEYXRhID0gIiI7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAjIE1hdGNoIGlkZW50aWZpZXIgb2YgdGhlIGludGVy
ZmFjZSwgYW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEgPX4gLyRJRExTdHJ1Y3R1
cmU6OmludGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNFeGNlcHRpb24gPSAoZGVm
aW5lZCgkMSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291
cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0
ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVyZmFjZUV4dGVuZGVkQXR0
cmlidXRlcyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDMpID8gJDMgOiBk
aWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkgJGlu
dGVyZmFjZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAgICAgICAgJGludGVyZmFj
ZURhdGEgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpc
biRkYXRhXG4pIikpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIjo6Iikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQWJzb2x1dGVTY29wZWROYW1lKCk7CisgICAg
fQorICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkbmV4dCwgIiBpbiAiIC4gX19M
SU5FX18pOworICAgIHJldHVybiAkc2VsZi0+cGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUoKTsKK30K
IAotICAgICAgICAjIEZpbGwgaW4ga25vd24gcGFydHMgb2YgdGhlIGRvbUNsYXNzIGRhdGFzdHJ1
Y3R1cmUgbm93Li4uCi0gICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oJGlzRXhjZXB0aW9u
KTsKLSAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCRpbnRlcmZhY2VOYW1lKTsKLSAgICAgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlcyA9IHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRpbnRlcmZhY2VF
eHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5l
dyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3
IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5u
YW1lKCJDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIHBh
cnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3Ry
dWN0b3IifSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9y
In0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVj
dG9yKCRuZXdEYXRhTm9kZSk7Ci0gICAgICAgIH0gZWxzaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgICAgIG15ICRuZXdEYXRh
Tm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5uYW1lKCJOYW1lZENvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOwot
ICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0tPnsiU2lnbmF0dXJlIn0pOwotICAgICAgICAgICAg
JGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0gPSAkZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifXsiQ29uc3RydWN0b3JOYW1lIn07Ci0gICAgICAg
ICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisjIEFic29sdXRlU2Nv
cGVkTmFtZSA6PSAiOjoiIGlkZW50aWZpZXIgU2NvcGVkTmFtZVBhcnRzCitzdWIgcGFyc2VBYnNv
bHV0ZVNjb3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgICRzZWxmLT50b2tl
blNob3VsZEJlKE90aGVyVG9rZW4sICI6OiIpOworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4g
IiAuIF9fTElORV9fKTsKKworICAgIGlmIChteSAkc2NvcGVkTmFtZVBhcnRzID0gJHNlbGYtPnBh
cnNlU2NvcGVkTmFtZVBhcnRzKCkpIHsKKyAgICAgICAgcmV0dXJuICI6OiIgLiAkc2NvcGVkTmFt
ZVBhcnRzOworICAgIH0gZWxzZSB7CisgICAgICAgICMgZXJyb3I/CisgICAgICAgIHJldHVybiAi
OjoiOworICAgIH0KK30KKworIyBSZWxhdGl2ZVNjb3BlZE5hbWUgOj0gaWRlbnRpZmllciBTY29w
ZWROYW1lUGFydHMKK3N1YiBwYXJzZVJlbGF0aXZlU2NvcGVkTmFtZQoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNlbGYt
PnRva2VuU2hvdWxkQmVJZGVudGlmaWVyKCR0b2tlbiwgIiBpbiAiIC4gX19MSU5FX18pOworCisg
ICAgbXkgJG5hbWUgPSAkdG9rZW4tPnZhbHVlKCk7CisgICAgaWYgKG15ICRzY29wZWROYW1lUGFy
dHMgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lUGFydHMoKSkgeworICAgICAgICByZXR1cm4gJG5h
bWUgLiAiOjoiIC4gJHNjb3BlZE5hbWVQYXJ0czsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1
cm4gJG5hbWU7CisgICAgfQorfQorCisjIFNjb3BlZE5hbWVQYXJ0cyA6PSAiOjoiIGlkZW50aWZp
ZXIgU2NvcGVkTmFtZVBhcnRzIHwgZXBzaWxvbgorc3ViIHBhcnNlU2NvcGVkTmFtZVBhcnRzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAc2NvcGVkTmFtZVBhcnRzID0gKCk7CisK
KyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICAgICAgdW5sZXNzICgkbmV4dC0+dHlwZSgpID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZh
bHVlKCkgZXEgIjo6IikgeworICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQotICAgICAgICAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICAg
ICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+dG9rZW5TaG91bGRCZUlkZW50aWZpZXIoJHRva2VuLCAiIGlu
ICIgLiBfX0xJTkVfXyk7CisgICAgICAgIHB1c2goQHNjb3BlZE5hbWVQYXJ0cywgJHRva2VuLT52
YWx1ZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIGpvaW4oJzo6JywgQHNjb3BlZE5hbWVQYXJ0cyk7
Cit9CiAKLSAgICAgICAgIyBJbmhlcml0YW5jZSBkZXRlY3Rpb24KLSAgICAgICAgbXkgQGludGVy
ZmFjZVBhcmVudHMgPSBzcGxpdCgvLC8sICRpbnRlcmZhY2VCYXNlKTsKLSAgICAgICAgZm9yZWFj
aChAaW50ZXJmYWNlUGFyZW50cykgewotICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKLSAgICAg
ICAgICAgICRsaW5lID1+IHMvXHMqLy9nOworIyBFeHRlbmRlZEF0dHJpYnV0ZTEgOj0gIigiIEFy
Z3VtZW50TGlzdCAiKSIgfCAiPSIgRXh0ZW5kZWRBdHRyaWJ1dGUyIHwgZW1wdHkKK3N1YiBwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlMQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5h
bWUgPSBzaGlmdDsKKyAgICBteSAlYXR0ciA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4
dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAg
ICRhdHRyeyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2Vs
Zi0+dG9rZW5TaG91bGRCZShPdGhlclRva2VuLCAiKSIpOworICAgICAgICByZXR1cm4gXCVhdHRy
OworICAgIH0KIAotICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5wYXJlbnRz
OwotICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbGluZSk7CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAg
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRhdHRyeyRuYW1lfSA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICByZXR1cm4gXCVhdHRyOworICAgIH0KKworICAg
IGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7CisgICAgICAgICRhdHRyeyRuYW1lfSA9IFtd
OworICAgIH0gZWxzZSB7CisgICAgICAgICRhdHRyeyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5H
IjsKKyAgICB9CisgICAgcmV0dXJuIFwlYXR0cjsKK30KKworIyBFeHRlbmRlZEF0dHJpYnV0ZTIg
Oj0gIjo6IiBBYnNvbHV0ZVNjb3BlZE5hbWUgfCBpbnRlZ2VyIHwgaWRlbnRpZmllciBFeHRlbmRl
ZEF0dHJpYnV0ZTMKKyMgKCopIFdlYklETCBzcGVjIGRvZXNuJ3QgYWxsb3cgImludGVnZXIiLgor
c3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IE90aGVyVG9rZW4gJiYgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlQWJzb2x1dGVTY29wZWROYW1lKCk7CisgICAgfQorICAgIG15ICR0b2tl
bjsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7
CisgICAgfQorICAgICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT50b2tl
blNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4gIiAuIF9fTElORV9fKTsKKyAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUzKCR0b2tlbi0+dmFsdWUoKSk7Cit9CisK
KyMgRXh0ZW5kZWRBdHRyaWJ1dGUzIDo9ICIoIiBBcmd1bWVudExpc3QgIikiIHwgIjo6IiBTY29w
ZWROYW1lUGFydHMKKyMgICAgIHwgIiYiIEV4dGVuZGVkQXR0cmlidXRlNCB8ICJ8IiBFeHRlbmRl
ZEF0dHJpYnV0ZTQgfCBlbXB0eQorc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUzCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tl
biAmJiAkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgbXkgJWF0dHIgPSAoKTsKKyAg
ICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRhdHRyeyRuYW1lfSA9ICRzZWxmLT5w
YXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+dG9rZW5TaG91bGRCZShPdGhlclRv
a2VuLCAiKSIpOworICAgICAgICByZXR1cm4gXCVhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAg
ICAgbXkgJHNjb3BlZE5hbWUgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lUGFydHMoKTsKKyAgICAg
ICAgcmV0dXJuICRuYW1lIC4gIjo6IiAuICRzY29wZWROYW1lOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBPdGhlclRva2VuICYmICRuZXh0LT52YWx1ZSgpID1+IC9eWyZ8XSQvKSB7
CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4g
JG5hbWUgLiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTQo
KTsKKyAgICB9CisgICAgcmV0dXJuICRuYW1lOworfQorCisjIEV4dGVuZGVkQXR0cmlidXRlNCA6
PSAKKyMgICAgIGlkZW50aWZpZXIgIiYiIEV4dGVuZGVkQXR0cmlidXRlNCB8IGlkZW50aWZpZXIg
InwiIEV4dGVuZGVkQXR0cmlidXRlNCB8IGlkZW50aWZpZXIKK3N1YiBwYXJzZUV4dGVuZGVkQXR0
cmlidXRlNAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHZhbHVlcyA9ICgpOwor
CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICRzZWxmLT50b2tlblNob3VsZEJlSWRlbnRpZmllcigkdG9rZW4sICIgaW4gIiAu
IF9fTElORV9fKTsKKyAgICAgICAgcHVzaChAdmFsdWVzLCAkdG9rZW4tPnZhbHVlKCkpOworCisg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICB1bmxlc3MgKCRu
ZXh0LT50eXBlKCkgPT0gT3RoZXJUb2tlbiAmJiAkbmV4dC0+dmFsdWUoKSA9fiAvXlsmfF0kLykg
eworICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gam9pbign
JywgQHZhbHVlcyk7Cit9CiAKLSAgICAgICAgcmV0dXJuIGlmICRwYXJlbnRzT25seTsKK3N1YiBh
cHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIGlmIChkZWZpbmVk
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QtPnsiQ29uc3RydWN0b3IifX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57
IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7CisgICAgICAgICRkYXRhTm9kZS0+
Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRuZXdE
YXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICBteSAlYXR0cmlidXRlcyA9ICV7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0
cnVjdG9yIn19OworICAgICAgICBteSBAYXR0cmlidXRlS2V5cyA9IGtleXMgKCVhdHRyaWJ1dGVz
KTsKKyAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZSA9ICRhdHRyaWJ1dGVLZXlzWzBdOworICAg
ICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskYXR0cmlidXRlc3skY29u
c3RydWN0b3JOYW1lfX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVk
Q29uc3RydWN0b3IifSA9ICRjb25zdHJ1Y3Rvck5hbWU7CisgICAgICAgICRkYXRhTm9kZS0+Y29u
c3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9CisgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CiAKLSAgICAgICAgJGludGVyZmFj
ZURhdGEgPX4gcy9bXG5ccl0vIC9nOwotICAgICAgICBteSBAaW50ZXJmYWNlTWV0aG9kcyA9IHNw
bGl0KC87LywgJGludGVyZmFjZURhdGEpOworc3ViIHByaW50VG9rZW4KK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OwogCi0gICAgICAgIGZvcmVhY2ggbXkg
JGxpbmUgKEBpbnRlcmZhY2VNZXRob2RzKSB7Ci0gICAgICAgICAgICBuZXh0IGlmICRsaW5lID1+
IC9eXHMqJC87Ci0gICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7Ci0g
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0
ZVNlbGVjdG9yLzsKKyAgICB1bmxlc3MgKGRlZmluZWQgJHRva2VuKSB7CisgICAgICAgIHByaW50
ICJVbmRlZmluZWRcbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcHJpbnQgInRva2Vu
KCIsICR0b2tlbi0+dHlwZSgpLCAiKTpcIiIsICR0b2tlbi0+dmFsdWUoKSwgIlwiXG4iOworfQog
Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAg
ICAgIG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6
ICIgIik7IGNob3AoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyk7CitzdWIgbmV4dFRva2Vu
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntOZXh0VG9rZW59
OworfQogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFUeXBlID0gKGRlZmluZWQo
JDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAg
ICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAKLSAgICAgICAg
ICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdleHAg
bWF0Y2hpbmcKK3N1YiBnZXRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAg
ICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3Iv
OwotICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAk
MSA6ICIiKTsKKyAgICAkc2VsZi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2VufTsKKyAgICAk
c2VsZi0+e05leHRUb2tlbn0gPSAkc2VsZi0+Z2V0VG9rZW5JbnRlcm5hbCgpOwogCi0gICAgICAg
ICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnNldHRlclJhaXNlc1NlbGVjdG9yLzsK
LSAgICAgICAgICAgICAgICBteSAkc2V0dGVyRXhjZXB0aW9uID0gKGRlZmluZWQoJDEpID8gJDEg
OiAiIik7CisgICAgcmV0dXJuICRzZWxmLT57VG9rZW59OworfQogCi0gICAgICAgICAgICAgICAg
bXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+dHlwZSgkYXR0cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKK3N1YiBnZXRUb2tlbkludGVy
bmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCRhdHRyaWJ1dGVEYXRhTmFtZSk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJGF0dHJpYnV0ZURhdGFUeXBlKTsKLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpKTsK
KyAgICBteSBAc3RyaW5nYnVmZmVyID0gKCk7CisgICAgbXkgJGNoOwogCi0gICAgICAgICAgICAg
ICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5hdHRyaWJ1dGVzOwotICAgICAgICAgICAgICAg
IHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKKyAgICB3aGlsZSAoZGVmaW5lZCAoJGNo
ID0gJHNlbGYtPmdldENoYXIoKSkpIHsKKyAgICAgICAgaWYgKCRjaCA9fiAvW14gXHRcblxyXS8p
IHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgICAgICAg
ICBwcmludCAiICB8ICB8PiAgQXR0cmlidXRlOyBUWVBFIFwiJGF0dHJpYnV0ZVR5cGVcIiBEQVRB
IE5BTUUgXCIkYXR0cmlidXRlRGF0YU5hbWVcIiBEQVRBIFRZUEUgXCIkYXR0cmlidXRlRGF0YVR5
cGVcIiBHRVQgRVhDRVBUSU9OPyBcIiRnZXR0ZXJFeGNlcHRpb25cIiBTRVQgRVhDRVBUSU9OPyBc
IiRzZXR0ZXJFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAgICAgICAgICBkdW1wRXh0ZW5kZWRB
dHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgICAgIiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICBpZiAo
IWRlZmluZWQgJGNoKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+e0VtcHR5VG9rZW59OworICAg
IH0KIAotICAgICAgICAgICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAg
ICAgICAgICAgICAgJHNldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAg
ICBAeyRuZXdEYXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJF
eGNlcHRpb24pOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRp
b25zfSA9IHNwbGl0KC8sLywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lm
ICgkbGluZSAhfiAvXlxzKigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCAp
P2NvbnN0XHMrLykgewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpp
bnRlcmZhY2VNZXRob2RTZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGxpbmVcbikiOworICAgIG15ICR0b2tlbiA9IFRva2VuLT5uZXcoKTsKKyAgICAjIHN0cmluZwor
ICAgIGlmICgkY2ggZXEgIlwiIikgeworICAgICAgICBwdXNoKEBzdHJpbmdidWZmZXIsICRjaCk7
CisgICAgICAgIHdoaWxlIChkZWZpbmVkICgkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpKSkgeworICAg
ICAgICAgICAgcHVzaChAc3RyaW5nYnVmZmVyLCAkY2gpOworICAgICAgICAgICAgaWYgKCRjaCBl
cSAiXCIiKSB7CisgICAgICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICAkdG9rZW4tPnR5cGUoU3RyaW5nVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZh
bHVlKGpvaW4oJycsIEBzdHJpbmdidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAg
ICB9CiAKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRl
ZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpOwot
ICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmluZWQoJDIpOwotICAgICAgICAgICAg
ICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJy
b3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kTmFt
ZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxp
bmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9IChkZWZpbmVk
KCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0K
LSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZv
ciByZWdleHAgbWF0Y2hpbmcKLQotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0
dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4Y2VwdGlv
biA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOwotCi0gICAgICAgICAgICAgICAgbXkgJG5ld0Rh
dGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0KLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOwotCi0gICAgICAgICAgICAgICAg
cHJpbnQgIiAgfCAgfC0gIE1ldGhvZDsgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBcIiRtZXRo
b2ROYW1lXCIgRVhDRVBUSU9OPyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAg
ICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgIiwgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAk
YmVRdWlldDsKLQotICAgICAgICAgICAgICAgICRtZXRob2RFeGNlcHRpb24gPX4gcy9ccysvL2c7
Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9ID0gc3Bs
aXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsKLQotICAgICAgICAgICAgICAgIHBhcnNlUGFyYW1l
dGVycygkbmV3RGF0YU5vZGUsICRtZXRob2RTaWduYXR1cmUpOworICAgIGlmICgkY2ggPX4gL15b
QS1aX2Etel0kLykgeworICAgICAgICBwdXNoKEBzdHJpbmdidWZmZXIsICRjaCk7CisgICAgICAg
IHdoaWxlICgoJGNoID0gJHNlbGYtPmdldENoYXIoKSkgPX4gL15bMC05QS1aX2Etel0kLykgewor
ICAgICAgICAgICAgcHVzaChAc3RyaW5nYnVmZmVyLCAkY2gpOworICAgICAgICB9CisgICAgICAg
ICRzZWxmLT51bmdldENoYXIoJGNoKTsKKyAgICAgICAgJHRva2VuLT50eXBlKElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoam9pbignJywgQHN0cmluZ2J1ZmZlcikpOwor
ICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KIAotICAgICAgICAgICAgICAgIG15ICRhcnJh
eVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJh
eVJlZiwgJG5ld0RhdGFOb2RlKTsKKyAgICAkc2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAgbXkg
JHJlc3VsdCA9ICRzZWxmLT5nZXRGbG9hdFRva2VuKCk7CisgICAgaWYgKGRlZmluZWQgJHJlc3Vs
dCkgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tlbi0+
dmFsdWUoJHJlc3VsdCk7CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmIChk
ZWZpbmVkICgkcmVzdWx0ID0gJHNlbGYtPmdldEZsb2F0VHlwZTJUb2tlbigpKSkgeworICAgICAg
ICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmIChkZWZpbmVkICgkcmVz
dWx0ID0gJHNlbGYtPmdldEludGVnZXJUb2tlbigpKSkgeworICAgICAgICAkdG9rZW4tPnR5cGUo
SW50ZWdlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkcmVzdWx0KTsKKyAgICAgICAg
cmV0dXJuICR0b2tlbjsKKyAgICB9CisKKyAgICAjIEV4cGVjdDogb3RoZXIsIGJ1dCB3b3VsZCBs
aWtlIHRvIHRyZWF0ICI6OiIgb3IgIi4uLiIgYXMgb25lIHRva2VuLgorICAgICR0b2tlbi0+dHlw
ZShPdGhlclRva2VuKTsKKyAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICMgQ2hlY2s6
ICI6OiIKKyAgICBpZiAoJGNoIGVxICI6IikgeworICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hh
cigpOworICAgICAgICBpZiAoJGNoIGVxICI6IikgeworICAgICAgICAgICAgJHRva2VuLT52YWx1
ZSgiOjoiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT51bmdldENoYXIo
JGNoKTsKKyAgICAgICAgICAgICR0b2tlbi0+dmFsdWUoIjoiKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICAjIENoZWNrOiAiLi4uIgorICAgIGlmICgkY2gg
ZXEgIi4iKSB7CisgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgIGlmICgk
Y2ggZXEgIi4iKSB7CisgICAgICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAg
ICAgICAgaWYgKCRjaCBlcSAiLiIpIHsKKyAgICAgICAgICAgICAgICAkdG9rZW4tPnZhbHVlKCIu
Li4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgJHNlbGYtPnVuZ2V0
Q2hhcigkY2gpOworICAgICAgICAgICAgICAgICRzZWxmLT51bmdldENoYXIoIi4iKTsKKyAgICAg
ICAgICAgICAgICAkdG9rZW4tPnZhbHVlKCIuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICByZXR1cm4gJHRva2VuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHNlbGYtPnVu
Z2V0Q2hhcigiLiIpOworICAgICAgICAgICAgJHRva2VuLT52YWx1ZSgiLiIpOworICAgICAgICB9
CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgICR0b2tlbi0+dmFsdWUoJGNoKTsK
KyAgICByZXR1cm4gJHRva2VuOworfQorCisjIGludGVnZXIgPSAtPygwKFswLTddKnxbWHhdWzAt
OUEtRmEtZl0rKXxbMS05XVswLTldKikKK3N1YiBnZXRJbnRlZ2VyVG9rZW4KK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15IEBidWZmZXIgPSAoKTsKKyAgICBteSAkY2g7CisKKyAgICBl
dmFsIHsKKyAgICAgICAgIyBUZXN0ICItPyIuCisgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFy
KCk7CisgICAgICAgIGlmICgkY2ggZXEgIi0iKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIs
ICRjaCk7CisgICAgICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICB9CisK
KyAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOworICAgICAgICBpZiAoJGNoIGVxICIwIikgewor
ICAgICAgICAgICAgIyBGb3VuZCAwLCB0cnk6ICIoWzAtN10qfFtYeF1bMC05QS1GYS1mXSsiLgor
ICAgICAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgICAgIGlmICgkY2gg
PX4gL15bWHhdJC8pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAg
ICAgICAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBidWZmZXIsICRjaCk7CisgICAgICAgICAgICAgICAgZGllICJFeHBlY3QgWzAtOUEtRmEtZl0g
YWZ0ZXIgW1h4XSwgYnV0IG5vdC4iIHVubGVzcyAoJGNoID1+IC9eWzAtOUEtRmEtZl0vKTsKKwor
ICAgICAgICAgICAgICAgIHdoaWxlICgoJGNoID0gJHNlbGYtPmdldENoYXIoKSkgPX4gL15bMC05
QS1GYS1mXS8pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxp
bmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAg
IG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsg
Y2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25z
dFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpc
biRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgk
MykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAg
ICAgICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLQotICAgICAgICAgICAgICAgIG15
ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdE
YXRhTm9kZS0+bmFtZSgkY29uc3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnR5cGUoJGNvbnN0VHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgk
Y29uc3RWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7
Ci0KLSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmNvbnN0YW50czsK
LSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7Ci0KLSAgICAg
ICAgICAgICAgICBwcmludCAiICB8ICAgfD4gIENvbnN0YW50OyBUWVBFIFwiJGNvbnN0VHlwZVwi
IE5BTUUgXCIkY29uc3ROYW1lXCIgVkFMVUUgXCIkY29uc3RWYWx1ZVwiXG4iIHVubGVzcyAkYmVR
dWlldDsKKyAgICAgICAgICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAgICAgICAg
ICAgICAgd2hpbGUgKCgkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpKSA9fiAvXlswLTddLykgeworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAg
ICB9IGVsc2lmICgkY2ggPX4gL15bMS05XS8pIHsKKyAgICAgICAgICAgICMgRm91bmQgWzEtOV0s
IHRyeTogIlswLTldKiIuCisgICAgICAgICAgICB3aGlsZSAoKCRjaCA9ICRzZWxmLT5nZXRDaGFy
KCkpID1+IC9eWzAtOV0vKSB7CisgICAgICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAkY2gpOwog
ICAgICAgICAgICAgfQorICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgIyBPdGhlcndpc2UsIG5vdCBpbnRlZ2VyLgorICAgICAg
ICAgICAgZGllICJOb3QgaW50ZWdlciI7CiAgICAgICAgIH0KKyAgICB9OwogCi0gICAgICAgIHBy
aW50ICIgIHwtLS0tPiBJbnRlcmZhY2U7IE5BTUUgXCIkaW50ZXJmYWNlTmFtZVwiIiAuCi0gICAg
ICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgICAgIiwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJl
UXVpZXQ7CisgICAgaWYgKCRAKSB7CisgICAgICAgIHdoaWxlIChkZWZpbmVkICgkY2ggPSBwb3Ao
QGJ1ZmZlcikpKSB7CisgICAgICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICByZXR1cm4gam9pbignJywgQGJ1ZmZlcik7
CiB9CiAKLSMgSW50ZXJuYWwgaGVscGVyCi1zdWIgRGV0ZXJtaW5lUGFyc2VNb2RlCisjIGZsb2F0
ID0gLT9bMC05XStbRWVdWystXT9bMC05XSsKK3N1YiBnZXRGbG9hdFR5cGUyVG9rZW4KIHsKLSAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQGJ1ZmZlciA9ICgpOworICAgIG15ICRjaDsKKworICAgIGV2
YWwgeworICAgICAgICAjIFRlc3QgIi0/Ii4KKyAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIo
KTsKKyAgICAgICAgaWYgKCRjaCBlcSAiLSIpIHsKKyAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwg
JGNoKTsKKyAgICAgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgICMgVHJ5OiAiWzAtOV0rIi4KKyAgICAgICAgcHVzaChAYnVmZmVyLCAk
Y2gpOworICAgICAgICBpZiAoJGNoID1+IC9bXjAtOV0vKSB7CisgICAgICAgICAgICBkaWUgIkV4
cGVjdCBbMC05XSwgYnV0IG5vdC4iOworICAgICAgICB9CisgICAgICAgIHdoaWxlICgoJGNoID0g
JHNlbGYtPmdldENoYXIoKSkgPX4gL15bMC05XSQvKSB7CisgICAgICAgICAgICBwdXNoKEBidWZm
ZXIsICRjaCk7CisgICAgICAgIH0KKworICAgICAgICAjIFRyeTogIltFZV0iLgorICAgICAgICBw
dXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgIGlmICgkY2ggPX4gL1teRWVdLykgeworICAgICAg
ICAgICAgZGllICJFeHBlY3QgW0VlXSwgYnV0IG5vdC4iOworICAgICAgICB9CiAKLSAgICBteSAk
bW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUvKSB7Ci0gICAgICAgICRt
b2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2ludGVyZmFjZS8pIHsKLSAg
ICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lmICgkXyA9fiAvZXhjZXB0
aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOworICAgICAgICAjIFRyeTog
IlsrLV0/Ii4KKyAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgaWYgKCRj
aCA9fiAvXlsrXC1dJC8pIHsKKyAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAg
ICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgIH0KKworICAgICAgICAjIFRy
eTogIlswLTldKyIuCisgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgaWYgKCRj
aCA9fiAvW14wLTldLykgeworICAgICAgICAgICAgZGllICJFeHBlY3QgWzAtOV0sIGJ1dCBub3Qu
IjsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSgoJGNoID0gJHNlbGYtPmdldENoYXIoKSkgPX4g
L15bMC05XS8pIHsKKyAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgfQor
ICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAgfTsKKworICAgIGlmICgkQCkgewor
ICAgICAgICB3aGlsZSAoZGVmaW5lZCAoJGNoID0gcG9wKEBidWZmZXIpKSkgeworICAgICAgICAg
ICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKICAg
ICB9CisgICAgcmV0dXJuIGpvaW4oJycsIEBidWZmZXIpOworfQorCisjIGZsb2F0ID0gLT8oWzAt
OV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bKy1dP1swLTldKyk/CisjIGUuZy4gMC44
Nzc3NywgMC4xMjM0RSsxMCwgLTEyMy4yZTAKK3N1YiBnZXRGbG9hdFRva2VuCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYnVmZmVyID0gKCk7CisgICAgbXkgJGNoOworCisgICAg
ZXZhbCB7CisgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgIGlmICgkY2gg
ZXEgIi0iKSB7CisgICAgICAgICAgICBwdXNoKEBidWZmZXIsICRjaCk7CisgICAgICAgICAgICAk
Y2ggPSAkc2VsZi0+Z2V0Q2hhcigpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGZpcnN0Y2gg
PSAkY2g7CisKKyAgICAgICAgIyBUcnk6IFswLTldKworICAgICAgICBwdXNoKEBidWZmZXIsICRj
aCk7CisgICAgICAgIGlmICgkY2ggPX4gL1teMC05Ll0vKSB7CisgICAgICAgICAgICBkaWUgIkV4
cGVjdCBbMC05XSwgYnV0IG5vdC4iOworICAgICAgICB9CisgICAgICAgIGlmICgkY2ggPX4gL15b
MC05XSQvKSB7CisgICAgICAgICAgICB3aGlsZSAoKCRjaCA9ICRzZWxmLT5nZXRDaGFyKCkpID1+
IC9eWzAtOV0kLykgeworICAgICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgfQorICAg
ICAgICAjIFRyeTogXC4KKyAgICAgICAgaWYgKCRjaCBuZSAiLiIpIHsKKyAgICAgICAgICAgIGRp
ZSAiRXhwZWN0IC4sIGJ1dCAkY2guIjsKKyAgICAgICAgfQogCi0gICAgcmV0dXJuICRtb2RlOwor
ICAgICAgICAjIFRyeTogWzAtOV0qIG9yIFswLTldKworICAgICAgICAkY2ggPSAkc2VsZi0+Z2V0
Q2hhcigpOworICAgICAgICBpZiAoJGNoID1+IC9eWzAtOV0kLykgeworICAgICAgICAgICAgcHVz
aChAYnVmZmVyLCAkY2gpOworICAgICAgICAgICAgd2hpbGUgKCgkY2ggPSAkc2VsZi0+Z2V0Q2hh
cigpKSA9fiAvXlswLTldLykgeworICAgICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgkZmlyc3Rj
aCBlcSAiLiIpIHsKKyAgICAgICAgICAgICAgICAkc2VsZi0+dW5nZXRDaGFyKCRjaCk7CisgICAg
ICAgICAgICAgICAgZGllICJFeHBlY3QgWzAtOV0rLCBidXQgbm90LiI7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICMgVHJ5OiAoW0VlXVsrLV0/WzAtOV0rKT8K
KyAgICAgICAgaWYgKCRjaCA9fiAvW0VlXS8pIHsKKyAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwg
JGNoKTsKKworICAgICAgICAgICAgJGNoID0gJHNlbGYtPmdldENoYXIoKTsKKyAgICAgICAgICAg
IGlmICgkY2ggPX4gL15bK1wtXSQvKSB7CisgICAgICAgICAgICAgICAgcHVzaChAYnVmZmVyLCAk
Y2gpOworICAgICAgICAgICAgICAgICRjaCA9ICRzZWxmLT5nZXRDaGFyKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICMgVHJ5OiBbMC05XSsKKyAgICAgICAgICAgIHB1c2goQGJ1ZmZl
ciwgJGNoKTsKKyAgICAgICAgICAgIGlmICgkY2ggPX4gL1teMC05XS8pIHsKKyAgICAgICAgICAg
ICAgICBkaWUgIkV4cGVjdCBbMC05XSssIGJ1dCBub3QuIjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHdoaWxlKCgkY2ggPSAkc2VsZi0+Z2V0Q2hhcigpKSA9fiAvXlswLTldLykgeworICAg
ICAgICAgICAgICAgIHB1c2goQGJ1ZmZlciwgJGNoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH07CisKKyAgICBpZiAoJEApIHsKKyAgICAgICAgd2hpbGUoZGVmaW5lZCAoJGNoID0g
cG9wKEBidWZmZXIpKSkgeworICAgICAgICAgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPnVuZ2V0Q2hhcigkY2gp
OworICAgIHJldHVybiBqb2luKCcnLCBAYnVmZmVyKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIK
LXN1YiBQcm9jZXNzU2VjdGlvbgorc3ViIHVuZ2V0Q2hhcgogewotICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9NT0RVTEUpIHsKLSAgICAgICAg
ZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZhdGFsIGVycm9yIVxuIikgaWYgKCRkb2N1
bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7Ci0gICAg
ICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVudCk7Ci0gICAgfSBlbHNpZiAoJHBhcnNl
TW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VNb2RlIGVxIE1PREVfRVhDRVBUSU9OKSB7
Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNzKCk7Ci0gICAgICAgIG15ICRzZWN0aW9u
TmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgPyAiaW50ZXJmYWNlIiA6ICJleGNl
cHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJzZUludGVyZmFjZSgkbm9kZSwgJHNlY3Rpb25O
YW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8gbW9kdWxlIHNwZWNpZmllZCEgRmF0YWwgRXJy
b3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAgICAgICBteSAkYXJyYXlSZWYgPSAkZG9j
dW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5vZGUpOworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGNoID0gc2hpZnQ7CisgICAgaWYgKGRlZmluZWQgJGNo
KSB7CisgICAgICAgIHB1c2goQHskc2VsZi0+e1JlYWRCdWZmZXJ9fSwgJGNoKTsKICAgICB9Cit9
CiAKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOworc3ViIGdldENoYXIKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworCisgICAgbXkgJGNoID0gcG9wKEB7JHNlbGYtPntSZWFkQnVmZmVyfX0p
OworICAgIGlmIChkZWZpbmVkICRjaCkgeworICAgICAgICByZXR1cm4gJGNoOworICAgIH0KKyAg
ICByZXR1cm4gdW5sZXNzIGRlZmluZWQgQHskc2VsZi0+e0RvY3VtZW50Q29udGVudH19OworCisg
ICAgbXkgJGxpbmUgPSBzaGlmdChAeyRzZWxmLT57RG9jdW1lbnRDb250ZW50fX0pOworICAgIHJl
dHVybiB1bmxlc3MgZGVmaW5lZCAkbGluZTsKKworICAgIG15IEBjaGFycyA9IHNwbGl0KC8vLCAk
bGluZSk7CisgICAgJGNoID0gc2hpZnQoQGNoYXJzKTsKKyAgICBwdXNoKEB7JHNlbGYtPntSZWFk
QnVmZmVyfX0sIHJldmVyc2UoQGNoYXJzKSk7CisgICAgcmV0dXJuICRjaDsKK30KKworc3ViIGR1
bXBFeHRlbmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkcGFkU3RyID0gc2hpZnQ7CisgICAgbXkg
JGF0dHJzID0gc2hpZnQ7CisKKyAgICBpZiAoISV7JGF0dHJzfSkgeworICAgICAgICByZXR1cm4g
IiI7CisgICAgfQorCisgICAgbXkgQHRlbXA7CisgICAgd2hpbGUgKChteSAkbmFtZSwgbXkgJHZh
bHVlKSA9IGVhY2goJXskYXR0cnN9KSkgeworICAgICAgICBwdXNoKEB0ZW1wLCAiJG5hbWU9JHZh
bHVlIik7CisgICAgfQorCisgICAgcmV0dXJuICRwYWRTdHIgLiAiWyIgLiBqb2luKCIsICIsIEB0
ZW1wKSAuICJdIjsKIH0KIAogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCmluZGV4IGNiNjExOTdlZDFh
OTcyNDY5NTdjZDZiOWU3ZGMwNGExZGQ5N2NjY2IuLmI1OWNiYjNmMjAyMWY1NTdhMDY5NWRiYTZi
YjlhOTJhMzQwODU3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApAQCAtNDI1LDkgKzQyNSw3IEBA
IHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50IG5ld0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNldEF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0g
ICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihlYykp
OworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdTdHJp
CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJET01S
YWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAgaW1w
bCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzdHJpbmdB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouY3BwCmluZGV4IDM0YTgwNzU1MWUwNGI4YmZmNzAwODhiNTYwOWNlZmFlMjgxOGU3ZDIuLjdl
MmU4OGZhMTQxOTY1M2IzMTI4MmJiMzVkMWMxNThjODY2NjNkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwCkBAIC0yMjksOCArMjI5LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0
eUlkLAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9HRVRU
RVJfRVhDRVBUSU9OOiB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKGdfdmFsdWVfZ2V0
X2xvbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046IHsKQEAgLTIzOSw4
ICsyMzgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OOiB7Ci0gICAg
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBjb3JlU2VsZi0+c2V0
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFs
dWVfZ2V0X3N0cmluZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRf
c3RyaW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX1NU
UklOR19BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjogewpAQCAtMTg1MiwxNyArMTg1MCwxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7
Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwot
ICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJX
RUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0t
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlKTsKIH0KIAogZ2xvbmcKQEAgLTE5MDEs
MTkgKzE4OTQsMTQgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9n
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24o
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CiAgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFs
dWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogZ2NoYXIqCkBAIC0yMDA0LDcgKzE5
OTIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC0yMDE1LDEyICsyMDAzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwK
ICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBn
X3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9l
cnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVj
ZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RP
YmoqCkBAIC0yMDQwLDcgKzIwMjMsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RP
YmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0y
MDUxLDEyICsyMDM0LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNj
LmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRE
T01UZXN0T2JqKgpAQCAtMjEwMiw3ICsyMDgwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUK
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3Jp
cHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIxMTMsMTIgKzIwOTEsNyBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktp
dDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUp
OwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwog
fQogCiBXZWJLaXRET01UZXN0T2JqKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4
IDlmYTlhYWRlZTNmZGY3MDE5NTNlMmVmZDA1ZmVjZjFmYThiMDYwMTAuLjUxNjVjNjQ5M2RhMTQ1
ODU3YWYwNTM1NDVhNzM1ZTY4MDk4ZmFjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKQEAgLTkxOSwxMyArOTE5LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI2dsb25nCi0gKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJf
d2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtOTY0LDEzICs5NjMsMTIgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhf
Z2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFs
dWU6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOgogICoKICoq
LwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93
aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdf
YXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdf
YXR0cl93aXRoX3NldHRlcl9leGNlcHRpb246CkBAIC0xMDUxLDEzICsxMDQ5LDEyIEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
ICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2Vz
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgpAQCAtMTA3NCwxMyArMTA3MSwxMiBAQCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9z
Y3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJL
aXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5k
X3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGU6CkBAIC0xMTE4LDEzICsxMTE0LDEyIEBAIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9l
eGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2Jq
Ci0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAg
KgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2Ny
aXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRl
X3dpdGhfc3BhY2VzX2F0dHJpYnV0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMjU1ZWI1NjBiZDJjYmY4NDM5
OWY0NTFhOGQ1NGQ2NzU2ZWNjMzFjYi4uMmZhYjgxZWEzY2IxODhmMzc4ZjZjOTc3NzFhZDExMzg0
OThkNDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEwODEsOSArMTA4MSw3IEBAIHZvaWQgc2V0SlNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhp
c09iamVjdCwKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1
ZS50b0ludDMyKGV4ZWMpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAg
ICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMpKTsK
IH0KIAogCkBAIC0xMTAzLDkgKzExMDEsNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYgogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0
PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdUb1N0
cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYykpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBp
bXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmcodmFs
dWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpKSk7CiB9CiAKIApAQCAtMTE1Myw5ICsxMTQ5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhp
c08KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhl
YywgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRvVGVz
dE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTExNjQsMTIgKzExNTgsMTAgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUq
IGV4ZWMsIEpTT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250
ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkK
ICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1
ZSkpOwogfQogCiAKQEAgLTExOTAsMTIgKzExODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNT
dGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAg
cmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVl
KSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVj
LCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpp
bmRleCA1M2U0NTk2NDMxNmI0ZGYzMmEzM2FiOGI2NWVmNmRjMGYwYWRlODg5Li4wZjJjZDg3YmY4
ZWNkZTU5ODgyODNjMGU3MWUyMWY5Njg1YjVkYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTM0OCw5
ICszNDgsNyBAQAogLSAodm9pZClzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjooaW50KW5ld0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwt
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBl
Yyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIC0g
KGludClhdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAtMzc5LDkgKzM3Nyw3IEBACiAtICh2b2lk
KXNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOihOU1N0cmluZyAqKW5ld1N0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwt
PnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJ
TVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbik7CiB9CiAKIC0gKE5TU3RyaW5nICopc3RyaW5nQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24KQEAgLTQ1MCw5ICs0NDYsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNl
dFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIElNUEwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMKQEAgLTQ2OSw5ICs0NjMsNyBAQAog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMp
OworICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2Vz
KGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpKTsKIH0K
IAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGUKQEAgLTUwMiw5ICs0OTQsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpy
YWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRl
c3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdENhbGxiYWNrLmlkbAppbmRleCAzNTQ4NTlhMzc5NzY3NDJmZmI5OWMyMzEzNTkxZmZj
OTQ5ZmMxZTE3Li4wNDNlNTQ5NDhjMmVlNTg3ZGFmYTY5YTg4YjBhN2UzZjY5Y2Q0ZmMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdENhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdENhbGxi
YWNrLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAvLyBUaGlzIElETCBmaWxlIGlzIGZvciB0ZXN0
aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRvciB3aXRoIGFuIGludGVyZmFjZQogLy8gdGhh
dCBoYXMgdGhlICJDYWxsYmFjayIgYXR0cmlidXRlIGFuZCBmb3IgdHJhY2tpbmcgY2hhbmdlcyBp
biBpdHMgb3VwdXQuCiBtb2R1bGUgdGVzdCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNRTF9EQVRBQkFTRSwKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIFRl
c3RDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgVGVzdENhbGxiYWNrIHsKICAgICAgIGJvb2xl
YW4gY2FsbGJhY2tXaXRoTm9QYXJhbSgpOwogICAgICAgYm9vbGVhbiBjYWxsYmFja1dpdGhDbGFz
czFQYXJhbShpbiBDbGFzczEgY2xhc3MxUGFyYW0pOwogICAgICAgYm9vbGVhbiBjYWxsYmFja1dp
dGhDbGFzczJQYXJhbShpbiBDbGFzczIgY2xhc3MyUGFyYW0sIGluIERPTVN0cmluZyBzdHJBcmcp
OwpAQCAtNDIsNCArNDIsNCBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICBib29sZWFuIGNhbGxiYWNr
V2l0aEJvb2xlYW4oaW4gYm9vbGVhbiBib29sUGFyYW0pOwogICAgICAgW1Bhc3NUaGlzVG9DYWxs
YmFjaz1UaGlzQ2xhc3NdIGJvb2xlYW4gY2FsbGJhY2tSZXF1aXJlc1RoaXNUb1Bhc3MoaW4gQ2xh
c3M4IGNsYXNzOFBhcmFtLCBpbiBUaGlzQ2xhc3MgdGhpc0NsYXNzUGFyYW0pOwogICAgIH07Ci19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RDdXN0b21OYW1lZEdldHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbAppbmRleCAzMjlmYTVkNmFmNWQzNjNkMTQw
OTZiOTcxNDcwNTkwZTU5ZTQzNmZmLi5iM2FlMzlhOGUzOTQ1NWVhYTExMjMyNzRjNTRlYzA1NTBk
NGRjOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbApAQCAtMjgsMTAgKzI4LDEwIEBA
CiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1
c3RvbU5hbWVkR2V0dGVyCi0gICAgXSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgeworICAgIF0gaW50
ZXJmYWNlIFRlc3RDdXN0b21OYW1lZEdldHRlciB7CiAgICAgICAgIHZvaWQgYW5vdGhlckZ1bmN0
aW9uKGluIERPTVN0cmluZyBzdHIpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdERvbWFpblNlY3VyaXR5LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJpdHku
aWRsCmluZGV4IGJiZDQ2ZTBkNDlmY2Y3MjdlNWZlYzNhMzBlZWNlYmI0NzVhYmNhNzcuLmZlODk2
MzE1M2U3NTdlYmY2MGRhMzUzYjQ5MGUzOWYxZTQyZDVlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJpdHkuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RG9tYWluU2VjdXJpdHku
aWRsCkBAIC0yNywxMSArMjcsMTEgQEAKICAqLwogCiBtb2R1bGUgdGVzdCB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENoZWNrU2VjdXJpdHkKLSAgICBdIFRlc3RBY3RpdmVET01P
YmplY3QgeworICAgIF0gaW50ZXJmYWNlIFRlc3RBY3RpdmVET01PYmplY3QgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBleGNpdGluZ0F0dHI7CiAgICAgICAgIHZvaWQgZXhjaXRp
bmdGdW5jdGlvbihpbiBOb2RlIG5leHRDaGlsZCk7CiAgICAgICAgIFtEb05vdENoZWNrU2VjdXJp
dHldIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RF
dmVudENvbnN0cnVjdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0RXZlbnRDb25zdHJ1Y3Rvci5pZGwKaW5kZXggNzA2ZjFlMmZjNmM2Yjc0ZmM5NmRhZjAx
OTFmN2NiMmIyNWQwNzRkOS4uODY4NDU1M2VjNGNkYTgwZWU5YTg5ZmM1NDEyNDg2ZDZkNzJjNDU2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RF
dmVudENvbnN0cnVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEV2ZW50Q29uc3RydWN0b3IuaWRsCkBAIC0yOSwxMSArMjksMTEgQEAKIC8vIFRo
aXMgSURMIGZpbGUgaXMgZm9yIHRlc3RpbmcgdGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFu
ZCBmb3IgdHJhY2tpbmcKIC8vIGNoYW5nZXMgaW4gaXRzIG91cHV0LgogbW9kdWxlIHRlc3Qgewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50
Ci0gICAgXSBUZXN0RXZlbnRDb25zdHJ1Y3RvciB7CisgICAgXSBpbnRlcmZhY2UgVGVzdEV2ZW50
Q29uc3RydWN0b3IgewogICAgICAgICAvLyBBdHRyaWJ1dGVzCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgYXR0cjE7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBhdHRyMjsKKyAgICAgICAgW0lu
aXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGF0dHIyOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RFdmVudFRhcmdldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEV2ZW50VGFyZ2V0LmlkbAppbmRleCAyMmU1Yjk2NDZhMGE3
ZTYxM2I0ZGVhOTYzYzU5NWM0MDQ1NTExZWI3Li44ZmI2ZThhZjQzZWFhYWY0NGY5YWJlYTRhY2Fk
MTMzNDZmNzNhZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdEV2ZW50VGFyZ2V0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdEV2ZW50VGFyZ2V0LmlkbApAQCAtMjgsMjMgKzI4LDIzIEBACiAKIG1v
ZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEV2ZW50VGFy
Z2V0LAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAg
ICAgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZAotICAgIF0gVGVzdEV2ZW50VGFyZ2V0IHsKKyAgICBd
IGludGVyZmFjZSBUZXN0RXZlbnRUYXJnZXQgewogCi0gICAgICAgIE5vZGUgaXRlbShpbiBbSXNJ
bmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIE5vZGUgaXRlbShbSXNJbmRleF0g
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVy
KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJl
bW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAg
ICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEV4Y2VwdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEV4Y2VwdGlv
bi5pZGwKaW5kZXggZjM0YWYwMDM1MjVjMzNjMjQ2YzNhZWQ3YmE5YWMxYjM1MjI4NGI0MS4uNWUx
OTFlNTBiZGQxODdhMmI0MTMzZjI4NTBhNzYwY2JmNWM4NjFiNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFeGNlcHRpb24uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RXhjZXB0aW9uLmlkbApAQCAt
MjksNCArMjksNCBAQCBtb2R1bGUgdGVzdCB7CiAgICAgZXhjZXB0aW9uIFRlc3RFeGNlcHRpb24g
ewogICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
SW50ZXJmYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
SW50ZXJmYWNlLmlkbAppbmRleCBhMDU4ZjFhOWVkYzI2OWNmNjFmZGU2ZjUxYTA5ZTAwZDdmODU1
NTg5Li4wYWMwMWFmNWZlODU3MDBiMmJlMjFlMzM3ZjhjMjYyMjhmMWYzMmI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEludGVyZmFjZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RJbnRlcmZhY2Uu
aWRsCkBAIC0yOSwxMyArMjksMTMgQEAKIC8vIFRoaXMgSURMIGZpbGUgaXMgZm9yIHRlc3Rpbmcg
dGhlIGJpbmRpbmdzIGNvZGUgZ2VuZXJhdG9yIGFuZCBmb3IgdHJhY2tpbmcKIC8vIGNoYW5nZXMg
aW4gaXRzIG91cHV0LgogbW9kdWxlIHRlc3QgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIEN1c3RvbU5hbWVkU2V0dGVyLAogICAgICAg
ICBDb25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjIsCiAgICAgICAgIENhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsCi0gICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBz
dHIxLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3RyMiksCisg
ICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBzdHIxLCBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgc3RyMiksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2Vz
RXhjZXB0aW9uCi0gICAgXSBUZXN0SW50ZXJmYWNlIHsKKyAgICBdIGludGVyZmFjZSBUZXN0SW50
ZXJmYWNlIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aWRsCmluZGV4IDUzNjM5M2IzODcyYzI0YWYzNDY4MzRjMDdjMWE4NjBkMjUwMTQyNWEuLjc2ZjI3
OGQ4OTI4ZDFiOWNiY2E2YWY4NTI4MDRlNzk5YWZjMmIwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmlkbApAQCAtMjksNCArMjksNCBAQCBtb2R1bGUgdGVzdCB7CiAgICAg
aW50ZXJmYWNlIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHsKICAgICAgICAgdm9pZCBtZXRo
b2QoaW4gTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciBsaXN0ZW5lcik7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVk
Q29uc3RydWN0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3ROYW1lZENvbnN0cnVjdG9yLmlkbAppbmRleCBlMGY4NTM5ZTRjY2YzZmNhZTQ5YzdkNGMzNDg3
NDQ2MDkwODg3ZmI2Li4xYTNjODg0ZGY1MjE0OWU5NThlNmQ3ZTRmYjE0OGU0NjBhYTY4ZWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVk
Q29uc3RydWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0TmFtZWRDb25zdHJ1Y3Rvci5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogLy8gVGhpcyBJ
REwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZv
ciB0cmFja2luZwogLy8gY2hhbmdlcyBpbiBpdHMgb3VwdXQuCiBtb2R1bGUgdGVzdCB7Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKLSAgICAgICAgTmFt
ZWRDb25zdHJ1Y3Rvcj1BdWRpbyhpbiBET01TdHJpbmcgc3RyMSwgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHN0cjIsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxs
U3RyaW5nXSBET01TdHJpbmcgc3RyMyksCisgICAgICAgIE5hbWVkQ29uc3RydWN0b3I9QXVkaW8o
aW4gRE9NU3RyaW5nIHN0cjEsIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBzdHIyLCBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHN0
cjMpLAogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgotICAgIF0gVGVzdE5hbWVk
Q29uc3RydWN0b3IgeworICAgIF0gaW50ZXJmYWNlIFRlc3ROYW1lZENvbnN0cnVjdG9yIHsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE5vZGUuaWRsCmluZGV4IDMyMTYyMWNkYzY2NDdjOTQ0YzA4YTQ5ODk5MDllMWY0MzlkOGE1
ZDkuLmY2YzZmOThjNTM1ODM1ODE5MGM0NTYzOWI3NDBiYTdiOTI4NDVkNTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Tm9kZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROb2RlLmlkbApAQCAtMjAs
MTEgKzIwLDExIEBACiAKIG1vZHVsZSB0ZXN0IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgQ29uc3RydWN0b3IsCiAgICAgICAgIFY4RGVw
ZW5kZW50TGlmZXRpbWUKLSAgICBdIFRlc3ROb2RlIDogTm9kZSB7CisgICAgXSBpbnRlcmZhY2Ug
VGVzdE5vZGUgOiBOb2RlIHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDUxM2RmMTA3NDAwYTkzMjkz
MzhjYmY4Yzc4NmNlNGIzNzZiMTU0MjEuLjJiZjk0YjczYzMxMGU1ZmUzMTUyYWM1N2RiMDMzNmM1
YTcwZjNlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKQEAgLTMwLDEwICszMCwxMCBAQAogLy8gVGhpcyBJREwgZmlsZSBpcyBmb3Ig
dGVzdGluZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZwogLy8g
Y2hhbmdlcyBpbiBpdHMgb3VwdXQuCiBtb2R1bGUgdGVzdCB7Ci0gICAgaW50ZXJmYWNlIFsKLSAg
ICAgICAgQ29uc3RydWN0b3IoaW4gW0NhbGxiYWNrXSBUZXN0Q2FsbGJhY2sgdGVzdENhbGxiYWNr
KSwKKyAgICBbCisgICAgICAgIENvbnN0cnVjdG9yKFtDYWxsYmFja10gaW4gVGVzdENhbGxiYWNr
IHRlc3RDYWxsYmFjayksCiAgICAgICAgIEludGVyZmFjZU5hbWU9VGVzdE9iamVjdAotICAgIF0g
VGVzdE9iaiB7CisgICAgXSBpbnRlcmZhY2UgVGVzdE9iaiB7CiAgICAgICAgIC8vIEF0dHJpYnV0
ZXMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICByZWFkT25seUlu
dEF0dHI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgcmVhZE9u
bHlTdHJpbmdBdHRyOwpAQCAtNDYsMjEgKzQ2LDIwIEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAg
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAgICAgICBh
dHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOwogCi0gICAgICAg
IEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19sY2ZpcnN0IGV4Y2VwdGlvbmFsIGNh
c2VzLgogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIFhNTE9iakF0
dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgICAgY3JlYXRlOwog
CiAgICAgICAgIC8vIFJlZmxlY3RlZCBET00gYXR0cmlidXRlcwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyByZWZsZWN0ZWRTdHJpbmdBdHRyOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGxvbmcgcmVmbGVjdGVkSW50ZWdyYWxBdHRyOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIHVuc2lnbmVkIGxvbmcgcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHI7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZWZsZWN0ZWRCb29sZWFuQXR0
cjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyByZWZsZWN0ZWRV
UkxBdHRyOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudFN0cmluZ0F0
dHJdIERPTVN0cmluZyByZWZsZWN0ZWRTdHJpbmdBdHRyOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3Q9Y3VzdG9tQ29udGVudEludGVncmFsQXR0cl0gbG9uZyByZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50Qm9vbGVh
bkF0dHJdIGJvb2xlYW4gcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHI7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdD1jdXN0b21Db250ZW50VVJMQXR0ciwgVVJMXSBET01TdHJpbmcgcmVmbGVj
dGVkQ3VzdG9tVVJMQXR0cjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
cmVmbGVjdGVkU3RyaW5nQXR0cjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBsb25nIHJl
ZmxlY3RlZEludGVncmFsQXR0cjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIHJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gcmVmbGVjdGVkQm9vbGVhbkF0dHI7CisgICAgICAgIFtSZWZsZWN0
LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmbGVjdGVkVVJMQXR0cjsKKyAgICAgICAgW1Jl
ZmxlY3Q9Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmbGVj
dGVkU3RyaW5nQXR0cjsKKyAgICAgICAgW1JlZmxlY3Q9Y3VzdG9tQ29udGVudEludGVncmFsQXR0
cl0gYXR0cmlidXRlIGxvbmcgcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyOworICAgICAgICBb
UmVmbGVjdD1jdXN0b21Db250ZW50Qm9vbGVhbkF0dHJdIGF0dHJpYnV0ZSBib29sZWFuIHJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyOworICAgICAgICBbUmVmbGVjdD1jdXN0b21Db250ZW50VVJM
QXR0ciwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHI7CiAK
ICAgICAgICAgLy8gTWV0aG9kcwogICAgICAgICB2b2lkICAgIHZvaWRNZXRob2QoKTsKQEAgLTc4
LDI2ICs3NywyNiBAQCBtb2R1bGUgdGVzdCB7CiAKICAgICAgICAgdm9pZCBzZXJpYWxpemVkVmFs
dWUoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlhbGl6ZWRBcmcpOwogICAgICAgICB2b2lk
IGlkYktleShpbiBJREJLZXkga2V5KTsKLSAgICAgICAgdm9pZCBvcHRpb25zT2JqZWN0KGluIERp
Y3Rpb25hcnkgb28sIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBvb28pOworICAgICAgICB2b2lk
IG9wdGlvbnNPYmplY3QoaW4gRGljdGlvbmFyeSBvbywgW09wdGlvbmFsXSBpbiBEaWN0aW9uYXJ5
IG9vbyk7CiAKICAgICAgICAgLy8gRXhjZXB0aW9ucwogICAgICAgICB2b2lkIG1ldGhvZFdpdGhF
eGNlcHRpb24oKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmlidXRlIGxvbmcg
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24gZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAg
ICAgICBhdHRyaWJ1dGUgbG9uZyBhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24gZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcgYXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24gZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0ZSBs
b25nIGF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIHNldHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIGdl
dHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIC8vICdDdXN0b20nIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgICAgICBhdHRyaWJ1dGUgW0N1
c3RvbV0gbG9uZyAgICAgICAgICAgIGN1c3RvbUF0dHI7CisgICAgICAgIFtDdXN0b21dIGF0dHJp
YnV0ZSBsb25nICAgICAgICAgICAgY3VzdG9tQXR0cjsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBj
dXN0b21NZXRob2QoKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBjdXN0b21NZXRob2RXaXRoQXJn
cyhpbiBsb25nIGludEFyZywgaW4gRE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcp
OwogCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VD
YXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9v
bGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERP
TVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50
TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogCiAgICAgICAgIC8v
ICdDYWxsV2l0aCcgZXh0ZW5kZWQgYXR0cmlidXRlCiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRT
dGF0ZV0gdm9pZCB3aXRoU2NyaXB0U3RhdGVWb2lkKCk7CkBAIC0xMTMsNjEgKzExMiw2MSBAQCBt
b2R1bGUgdGVzdCB7CiAgICAgICAgIFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
IHwgIFNjcmlwdFN0YXRlICBdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZVdpdGhTcGFjZXMoKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50
c3xDYWxsU3RhY2tdIHZvaWQgd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFjaygpOwogCi0g
ICAgICAgIGF0dHJpYnV0ZSBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIGxvbmcgd2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlOwotICAgICAgICBhdHRyaWJ1dGUgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGU7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIFRlc3RPYmogd2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gVGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcwotICAg
ICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBhdHRyaWJ1dGUg
W0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGVdIFRlc3RPYmogd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZTsKLSAgICAgICAg
YXR0cmlidXRlIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlXSBU
ZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
YXR0cmlidXRlIFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgIHwgIFNjcmlwdFN0
YXRlICBdIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ2FsbFdpdGg9U2NyaXB0QXJn
dW1lbnRzfENhbGxTdGFja10gVGVzdE9iaiB3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIGF0dHJpYnV0ZSBsb25n
IHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIGF0dHJpYnV0ZSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIGF0dHJpYnV0ZSBUZXN0
T2JqIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcworICAgICAgICAgICAgZ2V0cmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBhdHRyaWJ1dGUgVGVzdE9iaiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJh
aXNlcworICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlXSBhdHRyaWJ1dGUgVGVzdE9i
aiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlOworICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZV0gYXR0cmli
dXRlIFRlc3RPYmogd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcworICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtDYWxsV2l0aD0gIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgIHwgIFNjcmlwdFN0YXRlICBdIGF0
dHJpYnV0ZSBUZXN0T2JqIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENh
bGxTdGFja10gYXR0cmlidXRlIFRlc3RPYmogd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFj
a0F0dHJpYnV0ZTsKIAogICAgICAgICAvLyAnT3B0aW9uYWwnIGV4dGVuZGVkIGF0dHJpYnV0ZQot
ICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbEFyZyhpbiBbT3B0aW9uYWxdIGxvbmcg
b3B0KTsKLSAgICAgICAgdm9pZCAgICBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25h
bEFyZyhpbiBsb25nIG5vbk9wdCwgaW4gW09wdGlvbmFsXSBsb25nIG9wdCk7Ci0gICAgICAgIHZv
aWQgICAgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKGluIGxvbmcg
bm9uT3B0LCBpbiBbT3B0aW9uYWxdIGxvbmcgb3B0MSwgaW4gW09wdGlvbmFsXSBsb25nIG9wdDIp
OwotICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyhpbiBbT3B0aW9uYWxd
IERPTVN0cmluZyBzdHIpOwotICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0lzVW5kZWZpbmVkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBz
dHIpOwotICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmlu
ZyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gRE9NU3RyaW5nIHN0cik7CisgICAg
ICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsQXJnKFtPcHRpb25hbF0gaW4gbG9uZyBvcHQp
OworICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJn
KGluIGxvbmcgbm9uT3B0LCBbT3B0aW9uYWxdIGluIGxvbmcgb3B0KTsKKyAgICAgICAgdm9pZCAg
ICBtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoaW4gbG9uZyBub25P
cHQsIFtPcHRpb25hbF0gaW4gbG9uZyBvcHQxLCBbT3B0aW9uYWxdIGluIGxvbmcgb3B0Mik7Cisg
ICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKFtPcHRpb25hbF0gaW4gRE9N
U3RyaW5nIHN0cik7CisgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNV
bmRlZmluZWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0cik7
CisgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsU3RyaW5nKFtP
cHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgc3RyKTsKIAogI2lmIGRl
ZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAgICAvLyAnQ2Fs
bGJhY2snIGV4dGVuZGVkIGF0dHJpYnV0ZQotICAgICAgICB2b2lkICAgIG1ldGhvZFdpdGhDYWxs
YmFja0FyZyhpbiBbQ2FsbGJhY2tdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7Ci0gICAgICAgIHZv
aWQgICAgbWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcoaW4gbG9uZyBub25D
YWxsYmFjaywgaW4gW0NhbGxiYWNrXSBUZXN0Q2FsbGJhY2sgY2FsbGJhY2spOwotICAgICAgICB2
b2lkICAgIG1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKGluIFtDYWxsYmFjaywgT3B0
aW9uYWxdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAgICAgIHZvaWQgICAgbWV0aG9kV2l0
aENhbGxiYWNrQXJnKFtDYWxsYmFja10gaW4gVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICAg
ICAgdm9pZCAgICBtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhpbiBsb25n
IG5vbkNhbGxiYWNrLCBbQ2FsbGJhY2tdIGluIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAg
ICAgIHZvaWQgICAgbWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoW0NhbGxiYWNrLCBP
cHRpb25hbF0gaW4gVGVzdENhbGxiYWNrIGNhbGxiYWNrKTsKICNlbmRpZgogCiAgICAgICAgIC8v
ICdDb25kaXRpb25hbCcgZXh0ZW5kZWQgYXR0cmlidXRlCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9Q29uZGl0aW9uMV0gbG9uZyBjb25kaXRpb25hbEF0dHIxOwotICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjEmQ29uZGl0aW9uMl0gbG9uZyBjb25kaXRpb25h
bEF0dHIyOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0
aW9uMl0gbG9uZyBjb25kaXRpb25hbEF0dHIzOworICAgICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0
aW9uMV0gYXR0cmlidXRlIGxvbmcgY29uZGl0aW9uYWxBdHRyMTsKKyAgICAgICAgW0NvbmRpdGlv
bmFsPUNvbmRpdGlvbjEmQ29uZGl0aW9uMl0gYXR0cmlidXRlIGxvbmcgY29uZGl0aW9uYWxBdHRy
MjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gYXR0cmlidXRl
IGxvbmcgY29uZGl0aW9uYWxBdHRyMzsKIAogICAgICAgICAvLyAnQ29uZGl0aW9uYWwnIGV4dGVu
ZGVkIG1ldGhvZAogICAgICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uMV0gRE9NU3RyaW5nIGNv
bmRpdGlvbmFsTWV0aG9kMSgpOwogICAgICAgICBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uMSZDb25k
aXRpb24yXSB2b2lkIGNvbmRpdGlvbmFsTWV0aG9kMigpOwogICAgICAgICBbQ29uZGl0aW9uYWw9
Q29uZGl0aW9uMXxDb25kaXRpb24yXSB2b2lkIGNvbmRpdGlvbmFsTWV0aG9kMygpOwogCi0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9Q29uZGl0aW9uMV0gVGVzdE9iamVjdEFDb25zdHJ1
Y3RvciBjb25kaXRpb25hbEF0dHI0OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNv
bmRpdGlvbjEmQ29uZGl0aW9uMl0gVGVzdE9iamVjdEJDb25zdHJ1Y3RvciBjb25kaXRpb25hbEF0
dHI1OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9u
Ml0gVGVzdE9iamVjdENDb25zdHJ1Y3RvciBjb25kaXRpb25hbEF0dHI2OworICAgICAgICBbQ29u
ZGl0aW9uYWw9Q29uZGl0aW9uMV0gYXR0cmlidXRlIFRlc3RPYmplY3RBQ29uc3RydWN0b3IgY29u
ZGl0aW9uYWxBdHRyNDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjEmQ29uZGl0aW9u
Ml0gYXR0cmlidXRlIFRlc3RPYmplY3RCQ29uc3RydWN0b3IgY29uZGl0aW9uYWxBdHRyNTsKKyAg
ICAgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gYXR0cmlidXRlIFRlc3RP
YmplY3RDQ29uc3RydWN0b3IgY29uZGl0aW9uYWxBdHRyNjsKIAogICAgICAgICBbQ29uZGl0aW9u
YWw9Q29uZGl0aW9uMV0gY29uc3QgdW5zaWduZWQgc2hvcnQgQ09ORElUSU9OQUxfQ09OU1QgPSAw
OwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCi0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmli
dXRlMTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBj
YWNoZWRBdHRyaWJ1dGUyOworICAgICAgICBbQ2FjaGVkQXR0cmlidXRlXSByZWFkb25seSBhdHRy
aWJ1dGUgYW55IGNhY2hlZEF0dHJpYnV0ZTE7CisgICAgICAgIFtDYWNoZWRBdHRyaWJ1dGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgY2FjaGVkQXR0cmlidXRlMjsKICNlbmRpZgogCiAjaWYgZGVm
aW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgICAgIC8vIE92ZXJs
b2FkcwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gVGVzdE9iaj8gb2JqQXJn
LCBpbiBET01TdHJpbmcgc3RyQXJnKTsKLSAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9k
KGluIFRlc3RPYmo/IG9iakFyZywgaW4gW09wdGlvbmFsXSBsb25nIGludEFyZyk7CisgICAgICAg
IHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqPyBvYmpBcmcsIFtPcHRpb25hbF0g
aW4gbG9uZyBpbnRBcmcpOwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gRE9N
U3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBsb25n
IGludEFyZyk7Ci0gICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBbQ2FsbGJhY2td
IFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAgICAgIHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhv
ZChbQ2FsbGJhY2tdIGluIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgICAgIHZvaWQgICAg
b3ZlcmxvYWRlZE1ldGhvZChpbiBET01TdHJpbmdMaXN0PyBsaXN0QXJnKTsKICAgICAgICAgdm9p
ZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIERPTVN0cmluZ1tdPyBhcnJheUFyZyk7CiAgICAgICAg
IHZvaWQgICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBUZXN0T2JqIG9iakFyZyk7CkBAIC0xNzYsNyAr
MTc1LDcgQEAgbW9kdWxlIHRlc3QgewogCiAgICAgICAgIC8vIENsYXNzIG1ldGhvZHMgd2l0aGlu
IEphdmFTY3JpcHQgKGxpa2Ugd2hhdCdzIHVzZWQgZm9yIElEQktleVJhbmdlKS4KICAgICAgICAg
c3RhdGljIHZvaWQgY2xhc3NNZXRob2QoKTsKLSAgICAgICAgc3RhdGljIGxvbmcgY2xhc3NNZXRo
b2RXaXRoT3B0aW9uYWwoaW4gW09wdGlvbmFsXSBsb25nIGFyZyk7CisgICAgICAgIHN0YXRpYyBs
b25nIGNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKFtPcHRpb25hbF0gaW4gbG9uZyBhcmcpOwogICAg
ICAgICBbQ3VzdG9tXSBzdGF0aWMgdm9pZCBjbGFzc01ldGhvZDIoaW4gbG9uZyBhcmcpOwogCiAg
ICAgICAgIC8vIFN0YXRpYyBtZXRob2Qgd2l0aCBjb25kaXRpb25hbCBvbiBvdmVybG9hZGVkIG1l
dGhvZHMKQEAgLTE4NywxMSArMTg2LDExIEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgLy8gJ1Y4
RW5hYmxlZEF0UnVudGltZScgbWV0aG9kcyBhbmQgYXR0cmlidXRlcy4KICAgICAgICAgW1Y4RW5h
YmxlZEF0UnVudGltZV0gdm9pZCBlbmFibGVkQXRSdW50aW1lTWV0aG9kMShpbiBpbnQgaW50QXJn
KTsKICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gdm9pZCBlbmFibGVk
QXRSdW50aW1lTWV0aG9kMihpbiBpbnQgaW50QXJnKTsKLSAgICAgICAgYXR0cmlidXRlIFtWOEVu
YWJsZWRBdFJ1bnRpbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0dHIxOwotICAgICAgICBhdHRy
aWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gbG9uZyBlbmFibGVkQXRSdW50
aW1lQXR0cjI7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBsb25nIGVu
YWJsZWRBdFJ1bnRpbWVBdHRyMTsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJl
TmFtZV0gYXR0cmlidXRlIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0dHIyOwogICAgICAgICAvLyBW
OEVuYWJsZWRQZXJDb250ZXh0IGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGF0dHJpYnV0ZXMuCi0g
ICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkUGVyQ29udGV4dF0gbG9uZyBlbmFibGVkQXRDb250
ZXh0QXR0cjE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkUGVyQ29udGV4dD1GZWF0dXJl
TmFtZV0gbG9uZyBlbmFibGVkQXRDb250ZXh0QXR0cjI7CisgICAgICAgIFtWOEVuYWJsZWRQZXJD
b250ZXh0XSBhdHRyaWJ1dGUgbG9uZyBlbmFibGVkQXRDb250ZXh0QXR0cjE7CisgICAgICAgIFtW
OEVuYWJsZWRQZXJDb250ZXh0PUZlYXR1cmVOYW1lXSBhdHRyaWJ1dGUgbG9uZyBlbmFibGVkQXRD
b250ZXh0QXR0cjI7CiAjZW5kaWYKIAogCkBAIC0yMDcsMjUgKzIwNiwyNSBAQCBtb2R1bGUgdGVz
dCB7CiAgICAgICAgIERPTVN0cmluZ1tdIHN0cmluZ0FycmF5RnVuY3Rpb24oaW4gRE9NU3RyaW5n
W10gdmFsdWVzKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogCi0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIERvY3VtZW50IGNvbnRlbnREb2N1
bWVudDsKKyAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSByZWFkb25seSBhdHRyaWJ1dGUg
RG9jdW1lbnQgY29udGVudERvY3VtZW50OwogICAgICAgICBbQ2hlY2tTZWN1cml0eUZvck5vZGVd
IFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogCi0gICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9TnVsbF0gYSk7Ci0gICAgICAgIHZvaWQgY29udmVydDIoaW4gW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0MyhpbiBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1GYWxzZV0gYyk7Ci0gICAgICAgIHZvaWQgY29udmVydDQo
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGQpOwotICAgICAgICB2b2lkIGNvbnZlcnQ1KGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGUp
OworICAgICAgICB2b2lkIGNvbnZlcnQxKFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxd
IGluIGEpOworICAgICAgICB2b2lkIGNvbnZlcnQyKFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PVVuZGVmaW5lZF0gaW4gYik7CisgICAgICAgIHZvaWQgY29udmVydDMoW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9RmFsc2VdIGluIGMpOworICAgICAgICB2b2lkIGNvbnZlcnQ0KFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBpbiBkKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NShbVHJlYXROdWxs
QXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBlKTsKIAogICAg
ICAgICBhdHRyaWJ1dGUgU1ZHUG9pbnQgbXV0YWJsZVBvaW50OwotICAgICAgICBhdHRyaWJ1dGUg
W0ltbXV0YWJsZV0gU1ZHUG9pbnQgaW1tdXRhYmxlUG9pbnQ7CisgICAgICAgIFtJbW11dGFibGVd
IGF0dHJpYnV0ZSBTVkdQb2ludCBpbW11dGFibGVQb2ludDsKICAgICAgICAgU1ZHUG9pbnQgbXV0
YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICAgICAgW0ltbXV0YWJsZV0gU1ZHUG9pbnQgaW1tdXRh
YmxlUG9pbnRGdW5jdGlvbigpOwogCiAgICAgICAgIFtJbXBsZW1lbnRlZEFzPWJhbmFuYV0gdm9p
ZCBvcmFuZ2UoKTsKLSAgICAgICAgYXR0cmlidXRlIFtJbXBsZW1lbnRlZEFzPWJsdWViZXJyeV0g
aW50IHN0cmF3YmVycnk7CisgICAgICAgIFtJbXBsZW1lbnRlZEFzPWJsdWViZXJyeV0gYXR0cmli
dXRlIGludCBzdHJhd2JlcnJ5OwogCi0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCBzdHJpY3RGbG9hdDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0
cmlidXRlIGZsb2F0IHN0cmljdEZsb2F0OwogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBi
b29sIHN0cmljdEZ1bmN0aW9uKGluIERPTVN0cmluZyBzdHIsIGluIGZsb2F0IGEsIGluIGludCBi
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKQEAgLTI0OCw0ICsyNDcsNCBA
QCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVF
XzE0ID0gMHgxYWJjOwogICAgICAgICBbUmVmbGVjdD1DT05TVF9JTVBMXSBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBDT05TVF9KQVZBU0NSSVBUID0gMTU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5pZGwKaW5kZXggZmFjZjdjYmE4
NTgyNGEwNWRkMzgxZmQyM2FlMGRkYmJiOGU0NzIxZS4uMDgyZjVlZTQ1ZGIzMGM2MDZjMTFiZmY2
MTcwYzQzMDc2MmI4ZWI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmlkbApAQCAtMjYsMTcgKzI2LDE3IEBACiAvLyBUaGlzIElETCBmaWxlIGlz
IGZvciB0ZXN0aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRvciBhbmQgZm9yIHRyYWNraW5n
CiAvLyBjaGFuZ2VzIGluIGl0cyBvdXB1dC4KIG1vZHVsZSB0ZXN0IHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMXxDb25kaXRpb24yLAogICAg
ICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgaGVsbG8sIGluIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSB2YWx1ZSksCi0gICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBoZWxsbywgaW4g
W1RyYW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBcnJheSB0cmFuc2Zlckxpc3QpLAotICAg
IF0gVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSB7CisgICAgICAgIENvbnN0cnVj
dG9yKGluIERPTVN0cmluZyBoZWxsbywgW1RyYW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIGluIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBBcnJheSB0cmFuc2Zlckxpc3QpCisgICAgXSBpbnRlcmZhY2UgVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSB7CiAgICAgICAgIGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgcmVhZG9ubHlWYWx1ZTsKLSAgICAgICAgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBjYWNoZWRWYWx1ZTsKKyAgICAgICAgW0NhY2hlZEF0dHJpYnV0
ZV0gYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBjYWNoZWRWYWx1ZTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0QXJyYXkgcG9ydHM7Ci0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgY2Fj
aGVkUmVhZG9ubHlWYWx1ZTsKLSAgICAgICAgdm9pZCBhY2NlcHRUcmFuc2Zlckxpc3QoaW4gW1Ry
YW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBkYXRhLCBpbiBb
T3B0aW9uYWxdIEFycmF5IHRyYW5zZmVyTGlzdCk7Ci0gICAgICAgIHZvaWQgbXVsdGlUcmFuc2Zl
ckxpc3QoaW4gW09wdGlvbmFsLCBUcmFuc2Zlckxpc3Q9dHhdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBmaXJzdCwgaW4gW09wdGlvbmFsXSBBcnJheSB0eCwgaW4gW09wdGlvbmFsLCBUcmFuc2Zlckxp
c3Q9dHh4XSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc2Vjb25kLCBpbiBbT3B0aW9uYWxdIEFycmF5
IHR4eCk7CisgICAgICAgIFtDYWNoZWRBdHRyaWJ1dGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgY2FjaGVkUmVhZG9ubHlWYWx1ZTsKKyAgICAgICAgdm9pZCBhY2Nl
cHRUcmFuc2Zlckxpc3QoW1RyYW5zZmVyTGlzdD10cmFuc2Zlckxpc3RdIGluIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBkYXRhLCBbT3B0aW9uYWxdIGluIEFycmF5IHRyYW5zZmVyTGlzdCk7CisgICAg
ICAgIHZvaWQgbXVsdGlUcmFuc2Zlckxpc3QoW09wdGlvbmFsLCBUcmFuc2Zlckxpc3Q9dHhdIGlu
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBmaXJzdCwgW09wdGlvbmFsXSBpbiBBcnJheSB0eCwgW09w
dGlvbmFsLCBUcmFuc2Zlckxpc3Q9dHh4XSBpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc2Vjb25k
LCBbT3B0aW9uYWxdIGluIEFycmF5IHR4eCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdFN1cHBsZW1lbnRhbC5p
ZGwKaW5kZXggNjA1MTQxMjRiOGU1YzFmMGY1ZWM2YTQzNmE1MTEwNWI2ZWJmYTk4NC4uMDZjMTc4
NjZkMmEwYTI2ODljNDQ5Zjc3MWFiZTFiOGU0YmFjM2Y3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RTdXBwbGVtZW50YWwuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0U3VwcGxlbWVudGFsLmlkbApA
QCAtMjksMTMgKzI5LDEzIEBACiAvLyBUaGlzIElETCBmaWxlIGlzIGZvciB0ZXN0aW5nIHRoZSBi
aW5kaW5ncyBjb2RlIGdlbmVyYXRvciBhbmQgZm9yIHRyYWNraW5nCiAvLyBjaGFuZ2VzIGluIGl0
cyBvdXB1dC4KIG1vZHVsZSB0ZXN0IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9Q29uZGl0aW9uMTF8Q29uZGl0aW9uMTIsCiAgICAgICAgIFN1cHBsZW1lbnRh
bD1UZXN0SW50ZXJmYWNlCi0gICAgXSBUZXN0U3VwcGxlbWVudGFsIHsKKyAgICBdIGludGVyZmFj
ZSBUZXN0U3VwcGxlbWVudGFsIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBzdXBwbGVtZW50YWxTdHIxOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1l
bnRhbFN0cjI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXJd
IERPTVN0cmluZyBzdXBwbGVtZW50YWxTdHIzOworICAgICAgICBbQ3VzdG9tR2V0dGVyLCBDdXN0
b21TZXR0ZXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3VwcGxlbWVudGFsU3RyMzsKICAgICAgICAg
YXR0cmlidXRlIE5vZGUgc3VwcGxlbWVudGFsTm9kZTsKIAogICAgICAgICB2b2lkIHN1cHBsZW1l
bnRhbE1ldGhvZDEoKTsKQEAgLTQ2LDQgKzQ2LDQgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVVBQTEVNRU5UQUxDT05TVEFOVDEgPSAxOwogICAgICAgICBb
UmVmbGVjdD1DT05TVF9JTVBMXSBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVVBQTEVNRU5UQUxDT05T
VEFOVDIgPSAyOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RUeXBlZEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0VHlwZWRBcnJheS5pZGwKaW5kZXggZTgxNmIzODYwZjlm
Y2ZlZGY0NDI2Njg4NWZjYjU0ODdkMTIyOTJiNC4uZThmYzNiNTUyY2ExOTBiMmJmMTJlYTBhYmZm
MGEzMjU5NDdiYzIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RUeXBlZEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdFR5cGVkQXJyYXkuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAog
bW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25z
dHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEyMywKICAgICAgICAgTnVt
ZXJpY0luZGV4ZWRHZXR0ZXIsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAg
RG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gRmxvYXQ2NEFycmF5IDogQXJyYXlCdWZmZXJWaWV3
IHsKKyAgICBdIGludGVyZmFjZSBGbG9hdDY0QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAg
ICAgICBJbnQzMkFycmF5IGZvbyhpbiBGbG9hdDMyQXJyYXkgYXJyYXkpOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAppbmRleCBhZGY1NTYyZDY1MDE5ZWMyOWQ3YjY5ZDk5ZDIyMTI0Zjg1MGZhMDNh
Li42MzUwMDE3OGU3ZmIwNGI3YzlkYzYzZGRjZWM2NmEzN2EzMTM2YjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApA
QCAtNDEzLDEwICs0MTMsNyBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMbwogICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmouYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgaW50IHYg
PSB0b0ludDMyKHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNl
dEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQot
ICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsK
KyAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0K
IApAQCAtNDU1LDEwICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8
PiwgdiwgdmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0U3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykp
Ci0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkp
OworICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0
dXJuOwogfQogCkBAIC01NDgsMTMgKzU0MiwxMCBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
Ll9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/
IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkp
IDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUg
PSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RG
OjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpnZXRQdHIodikpOwogICAg
IGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZS5leGNl
cHRpb24oKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybjsKQEAgLTU3OSwxMyArNTcw
LDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBU
ZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29u
dGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0g
ICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVj
LCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAg
cmV0dXJuOwogfQogCkBAIC02NDMsMTYgKzYzMSwxMyBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2
OAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhU
ZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAg
ICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAo
IXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlw
dENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAg
ICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7Cisg
ICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzKHN0YXRlLCBzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYg
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlv
bigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
aGFyc2V0UnVsZS5pZGwKaW5kZXggM2NkYWY0YTc4NjI1YmFhYjRlODg0NDFhYTM0NjRhNDAzYzhh
NDk2Ni4uYzQwNjcxN2E5NjUzNzIxODI5OGE4NzkxMTViNmE4Njg1NjI2YjhkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaWRsCkBAIC0yMywxMSArMjMsMTEgQEAgbW9kdWxlIGNz
cyB7CiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgQ1NT
Q2hhcnNldFJ1bGUgOiBDU1NSdWxlIHsKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1Ry
ZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGVuY29kaW5nOworICAgICAg
ICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGVuY29kaW5nOwogI2Vsc2UKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0
cmluZyBlbmNvZGluZwotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
LCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVuY29kaW5nCisg
ICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VS
dWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsCmluZGV4IGJk
MzhhNjEzN2NhYjFjNGNiYmY2ZmEzNjM1Y2ZjZDk1Y2RlNmZhOGQuLjk1ZjFlNzRiNWNkOTAwNTM0
YmYzMTA2MmU4YTM2MmJkOWM3MDVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250RmFjZVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1
bGUuaWRsCkBAIC0yNSw0ICsyNSw0IEBAIG1vZHVsZSBjc3MgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuaWRsCmluZGV4IGRkZDBhOGJmZmRiMTNmMDg2MDQwN2Q2
ODk3ODEyMjgwYzJiNWFmY2QuLjUxNTMyMjk5MGU1YWI4ZGFmMTA1MGQ4MmYwY2VlMzgzMDZlNWEz
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5pZGwKQEAgLTIyLDkgKzIyLDkgQEAg
bW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGlu
dGVyZmFjZSBDU1NJbXBvcnRSdWxlIDogQ1NTUnVsZSB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaHJlZjsKKyAg
ICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBocmVmOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFMaXN0IG1l
ZGlhOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldCBzdHlsZVNoZWV0
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVk
aWFSdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsCmluZGV4IGY1
MmE2Y2VjODBiYmRjM2JiZmJlNjQyMzA3ZjA4MmNkNjM5Yjk5YzEuLjgyYTMyMzgxODU0ZTQxNDcz
OGExOTVmY2Q0Y2M2YTljMDU3ODM5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NNZWRpYVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRs
CkBAIC0yNSwxMSArMjUsMTEgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBNZWRpYUxpc3QgbWVkaWE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxl
TGlzdCBjc3NSdWxlczsKICAgICAgICAgCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFt
ZXRlcnNdIHVuc2lnbmVkIGxvbmcgICAgICBpbnNlcnRSdWxlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBydWxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gdW5zaWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gdW5zaWduZWQgbG9uZyAgICAgIGluc2VydFJ1bGUoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHJ1bGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBkZWxldGVSdWxlKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpCisgICAgICAgIHZvaWQgICAgICAg
ICAgICAgICBkZWxldGVSdWxlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2ln
bmVkIGxvbmcgaW5kZXgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5pZGwKaW5kZXggYjNlYTIyODUwMmRm
NmVmN2Y1YTkxZjM2ODZiNzhmOGFiY2RmYzg3Yi4uN2FmNDdhOTkzMjVhM2I5ZTQ1YWViOWMxMDEz
N2RkYTZjYzhjNzMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaWRsCkBAIC0yMywxMCAr
MjMsMTAgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoK
ICAgICBpbnRlcmZhY2UgQ1NTUGFnZVJ1bGUgOiBDU1NSdWxlIHsKIAotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9yVGV4dDsKKyAgICAgICAgICAgICAgICAgW1Ry
ZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0
cmlidXRlIERPTVN0cmluZyBzZWxlY3RvclRleHQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwKaW5kZXggNmM2MzdjOWFiNzZlYzI2YjNi
NWY4OWYzMGM0ODQxNTcxNDA0Y2NjOS4uYzI5MjE2YmMyNTNlNjQyYjhkMDkxZWUzMmMzOTdkNGJl
NGYwYjIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsCkBAIC01
NCwxMyArNTQsMTMgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKIAotICAgICAgICBbT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEZsb2F0VmFsdWUoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBmbG9hdCBmbG9hdFZhbHVlKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzXSB2b2lkIHNldEZsb2F0VmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBmbG9hdFZh
bHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGZsb2F0IGdl
dEZsb2F0VmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hv
cnQgdW5pdFR5cGUpCisgICAgICAgIGZsb2F0IGdldEZsb2F0VmFsdWUoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gdm9pZCBzZXRTdHJpbmdWYWx1ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1
bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
c3RyaW5nVmFsdWUpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQg
c2V0U3RyaW5nVmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
c2hvcnQgc3RyaW5nVHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0cmluZ1Zh
bHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmlu
ZyBnZXRTdHJpbmdWYWx1ZSgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAg
LTcyLDQgKzcyLDQgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1J1bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaWRsCmluZGV4IDc5MjE1Y2I0
YTA2ZmVmZTg0YTM3M2JlY2I4NzQ5NTVlOWRiNzViNDIuLjNiMjE1Y2FjOGYyOGIyYzBiYWUwMWYz
ZjE2MDRkNTI2MWMwODM2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5pZGwKQEAgLTIxLDEzICsyMSwx
MyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAg
ICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAog
ICAgICAgICBPYmpDUG9seW1vcnBoaWMsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKLSAg
ICBdIENTU1J1bGUgeworICAgIF0gaW50ZXJmYWNlIENTU1J1bGUgewogCiAgICAgICAgIC8vIFJ1
bGVUeXBlCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFVOS05PV05fUlVMRSA9IDA7CkBA
IC00NSwxMiArNDUsMTIgQEAgbW9kdWxlIGNzcyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0ICAgdHlwZTsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgICBjc3NUZXh0Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBjc3NUZXh0CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlU2hlZXQgICAgcGFy
ZW50U3R5bGVTaGVldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGUgICAgICAg
ICAgcGFyZW50UnVsZTsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0
LmlkbAppbmRleCA3YWM1MzNiOGFjNWYyODBiODkyZDNkNGI3ZThmZjM4ZThmNTc1YWI2Li42MjY5
NzJiY2YwZDFmNWUyMjllY2M5YzJiMzk1MTMwZjYyZjVkN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5pZGwKQEAgLTI2LDEzICsyNiwxMyBAQAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBKU0N1c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBW
OERlcGVuZGVudExpZmV0aW1lCi0gICAgXSBDU1NSdWxlTGlzdCB7CisgICAgXSBpbnRlcmZhY2Ug
Q1NTUnVsZUxpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAg
ICBsZW5ndGg7Ci0gICAgICAgIENTU1J1bGUgICAgICAgICAgIGl0ZW0oaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIENTU1J1bGUg
ICAgICAgICAgIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbAppbmRleCA5ODQ2YzU0NTg1YTkzNTAwZjc1NDdmZjgxYTg0OTgzNzk2
NjI0M2MyLi5lOTQ4NmFlYzIwN2U1NzU3ZmI3ZWZmNmEwOWZhZDM4ZmI0NTJlNGI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCkBAIC0yMSw3ICsyMSw3IEBA
CiBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBKU0dlbmVyYXRlSXNSZWFjaGFibGUsCiAgICAgICAgIEpTQ3VzdG9tR2V0T3duUHJvcGVydHlT
bG90QW5kRGVzY3JpcHRvciwKQEAgLTMyLDI3ICszMiwyNyBAQCBtb2R1bGUgY3NzIHsKICAgICAg
ICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgQ3VzdG9tRW51bWVyYXRlUHJvcGVydHksCiAgICAg
ICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKLSAgICBdIENTU1N0eWxlRGVjbGFyYXRpb24gewotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwg
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICBjc3NUZXh0Ci0gICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgXSBpbnRlcmZh
Y2UgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIGNzc1RleHQKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01F
eGNlcHRpb24pOwogCi0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERP
TVN0cmluZyAgICAgICAgICBnZXRQcm9wZXJ0eVZhbHVlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBbSlNDdXN0b21dIENT
U1ZhbHVlICAgICAgICAgICBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgcmVtb3ZlUHJvcGVydHko
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSkK
KyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAg
ICAgIGdldFByb3BlcnR5VmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFtKU0N1c3RvbV0gQ1NTVmFsdWUgICAgICAg
ICAgIGdldFByb3BlcnR5Q1NTVmFsdWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
RE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgICByZW1vdmVQcm9wZXJ0eShbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJvcGVydHlOYW1lKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIERPTVN0cmluZyAgICAgICAgICBnZXRQcm9wZXJ0eVByaW9yaXR5KGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgICAgICBb
T2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldFByb3BlcnR5KGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHZhbHVlLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgcHJpb3JpdHkpCisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgICBnZXRQcm9wZXJ0eVByaW9yaXR5KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworICAg
ICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldFByb3BlcnR5KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHZhbHVlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHJpb3JpdHkpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAg
ICBsZW5ndGg7Ci0gICAgICAgIERPTVN0cmluZyAgICAgICAgICBpdGVtKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBET01TdHJp
bmcgICAgICAgICAgaXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGUgICAgICAg
ICAgcGFyZW50UnVsZTsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCi0gICAgICAgIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyAgICAgICAgICBnZXRQcm9wZXJ0eVNo
b3J0aGFuZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcHJvcGVy
dHlOYW1lKTsKLSAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzUHJvcGVydHlJbXBsaWNpdChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsK
KyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAg
ICAgIGdldFByb3BlcnR5U2hvcnRoYW5kKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgaXNQ
cm9wZXJ0eUltcGxpY2l0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmlu
ZyBwcm9wZXJ0eU5hbWUpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1
bGUuaWRsCmluZGV4IGM1NzYzMjk0MmJkZjk1ZjQ4MzI4YTI5Yzg5ZjA5ZjA4YjNiMjk1NTQuLmE3
NzQ0YTUwMGNmODMxZTlhODhjMWMyZjE3NmYzNDVhOGM2ZmUyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuaWRsCkBAIC0yMywxMCArMjMsMTAgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8g
SW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgQ1NTU3R5bGVSdWxlIDog
Q1NTUnVsZSB7CiAKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3Rv
clRleHQ7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGws
IFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgc2VsZWN0b3JUZXh0
OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxl
OwogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNoZWV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmlkbAppbmRl
eCA3ODJkYjU4NmNlNDkxYjhiMzQ0YjI1YjFkMTZkNTEwOTE0ZGI3ODI3Li43N2QzY2QwMWEzNmRm
ZjY4NTE2NGM5M2U4NTJmYjA1OGEzNjNhMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTaGVldC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hl
ZXQuaWRsCkBAIC0yMSwyNyArMjEsMjcgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9k
dWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgVjhH
ZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxPd25lck5vZGVSb290Ci0gICAgXSBDU1NTdHlsZVNoZWV0
IDogU3R5bGVTaGVldCB7CisgICAgXSBpbnRlcmZhY2UgQ1NTU3R5bGVTaGVldCA6IFN0eWxlU2hl
ZXQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUnVsZSAgICAgICAgICBvd25lclJ1
bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCAgICAgIGNzc1J1bGVz
OwogCi0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHVuc2lnbmVkIGxvbmcg
aW5zZXJ0UnVsZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcnVs
ZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB1bnNpZ25lZCBsb25nIGluc2VydFJ1bGUo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHJ1bGUsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkICAgICAgICAgICAgICAgZGVsZXRlUnVsZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KQorICAg
ICAgICB2b2lkICAgICAgICAgICAgICAgZGVsZXRlUnVsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgLy8gSUUgRXh0ZW5zaW9ucwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgQ1NTUnVsZUxpc3QgICAgICBydWxlczsKIAotICAgICAgICBsb25nIGFkZFJ1bGUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHNlbGVjdG9yLAotICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHN0eWxlLAotICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBs
b25nIGluZGV4KQorICAgICAgICBsb25nIGFkZFJ1bGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHNlbGVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0eWxlLAorICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgcmVtb3ZlUnVsZShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KQorICAgICAgICB2b2lk
IHJlbW92ZVJ1bGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1bGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmlkbAppbmRleCBiNjJjZWI4NzNmNWQ1
MjBiN2U1ZTdhZjRkZjJiZDJmNjA5ZTAzNGRmLi4zZGRlYTJhZWFkNDNjMmJhNjRiNTc2YzVkMWJl
M2ZhZjI5Mjg4MzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVW5rbm93blJ1
bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5pZGwKQEAgLTIx
LDkgKzIxLDkgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2
ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0g
ICAgXSBDU1NVbmtub3duUnVsZSA6IENTU1J1bGUgeworICAgIF0gaW50ZXJmYWNlIENTU1Vua25v
d25SdWxlIDogQ1NTUnVsZSB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaWRs
CmluZGV4IDJiMGNlYjMxZjcwNWQzMTk2NTRlNTE5NmJkOGEzZWY0NzYzM2M3YTQuLjZiZDczZGVl
YzRlYzY2OWNkNTRiZTI2ZTRiMWI1ZDAxNWVjZjgxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmlk
bApAQCAtMjAsMTMgKzIwLDEzIEBACiAKIG1vZHVsZSBjc3MgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEpTQ3VzdG9tSXNSZWFj
aGFibGUsCiAgICAgICAgIEpTQ3VzdG9tRmluYWxpemUsCiAgICAgICAgIE9iakNQb2x5bW9ycGhp
YywKICAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQotICAgIF0gQ1NTVmFsdWUgeworICAgIF0g
aW50ZXJmYWNlIENTU1ZhbHVlIHsKIAogICAgICAgICAvLyBVbml0VHlwZXMKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgQ1NTX0lOSEVSSVQgICAgICAgICA9IDA7CkBAIC0zNCwxMSArMzQs
MTEgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENTU19WQUxV
RV9MSVNUICAgICAgPSAyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDU1NfQ1VTVE9N
ICAgICAgICAgID0gMzsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGNz
c1RleHQKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBjc3NUZXh0CisgICAgICAgICAg
ICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY3NzVmFsdWVUeXBlOwogCiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwKaW5kZXggMjNlMjdlYzE2NDJjMzMwZmQ1ZjNl
ODdiYjlhNzFkOGY5OTJlYTY4Yi4uNTE2N2YyYzYzYzM2NmMxNjg2NjkyN2Y2MzE4ZWU1MjcwMDgx
YmVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5pZGwKQEAgLTI2LDExICsyNiwxMSBA
QAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBDU1NWYWx1
ZUxpc3QgOiBDU1NWYWx1ZSB7CisgICAgXSBpbnRlcmZhY2UgQ1NTVmFsdWVMaXN0IDogQ1NTVmFs
dWUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyAgICBsZW5ndGg7
Ci0gICAgICAgIENTU1ZhbHVlICAgICAgICAgICBpdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAgICBDU1NWYWx1ZSAgICAgICAg
ICAgaXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Nv
dW50ZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvdW50ZXIuaWRsCmluZGV4IDYyMzZjNDU0
ZTlkMWEzMzA1YzVkMmQxZTJhNjdlMDhiZTliMmNlOTguLmQzYzNkMDNmNjY5NmU3Yzk1ZTQ2NTM0
YjExM2RhOWFiNGMzMzIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db3VudGVy
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ291bnRlci5pZGwKQEAgLTI2LDQgKzI2LDQg
QEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2Vw
YXJhdG9yOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaWRsCmluZGV4IDM1
NDQ1YTNkZGVmMzlkY2QwZjVmNTk1NjdlZmNlOGZkZTdlNWNjNWUuLjcwOGZmNWI3YWM3NWMwMjhj
YTU2ZGQxNTBiOGJkZTY3ZDUwM2RhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaWRsCkBAIC0y
NiwyMSArMjYsMjEgQEAKIG1vZHVsZSBzdHlsZXNoZWV0cyB7CiAKICAgICAvLyBJbnRyb2R1Y2Vk
IGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVy
YXRlSXNSZWFjaGFibGUsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIKLSAgICBdIE1lZGlhTGlzdCB7
CisgICAgXSBpbnRlcmZhY2UgTWVkaWFMaXN0IHsKIAotICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVs
bF0gRE9NU3RyaW5nIG1lZGlhVGV4dAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1l
ZGlhVGV4dAorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKIAotICAgICAg
ICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaXRlbShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAg
dm9pZCBkZWxldGVNZWRpdW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIG9sZE1lZGl1bSkKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0g
RE9NU3RyaW5nIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CisgICAgICAgIHZvaWQgZGVsZXRlTWVkaXVtKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBvbGRNZWRpdW0pCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBhcHBlbmRNZWRpdW0oaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5ld01lZGl1bSkKKyAgICAgICAgdm9pZCBhcHBl
bmRNZWRpdW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5ld01l
ZGl1bSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlzdC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3QuaWRsCmluZGV4IGI0ZjdiOTU4MWE5NjBi
ZjU4NTY0N2I5ZmM4MDE1ZjgwYWU3M2Q3YTkuLjBhMGRjZWRkZmY4MGM0NmQ5MTZlM2E1MmZiMGJk
MDM1MGM5Mjk0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5TGlz
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0LmlkbApAQCAtMjEs
NyArMjEsNyBAQCBtb2R1bGUgdmlldyB7CiAgICAgaW50ZXJmYWNlIE1lZGlhUXVlcnlMaXN0IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbWF0Y2hlczsKLSAgICAgICAgdm9pZCBhZGRMaXN0ZW5l
cihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
IGxpc3RlbmVyKTsKLSAgICAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICAg
ICAgdm9pZCBhZGRMaXN0ZW5lcihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIGxpc3RlbmVyKTsKKyAgICAgICAgdm9pZCByZW1vdmVMaXN0ZW5l
cihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
IGxpc3RlbmVyKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmlkbAppbmRleCBkOGYzODNhYWUwZTEwMDFjNzBmMDM0ZDUzYmFkODkz
MDYwOWQyM2IwLi4zYzhkZmU3OTI5OTNlNWRjMDIzMDkwZmQwODRhMzhmNTQ0ZGM4YjQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCkBAIC0xOCwx
MiArMTgsMTIgQEAKICAqLwogCiBtb2R1bGUgdmlldyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIE9iakNQcm90b2NvbCwKICAgICAg
ICAgQ1BQUHVyZUludGVyZmFjZSwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyIHsKLSAgICAgICAgdm9pZCBxdWVyeUNoYW5nZWQoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTWVkaWFRdWVyeUxpc3QgbGlzdCk7CisgICAgXSBpbnRl
cmZhY2UgTWVkaWFRdWVyeUxpc3RMaXN0ZW5lciB7CisgICAgICAgIHZvaWQgcXVlcnlDaGFuZ2Vk
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE1lZGlhUXVlcnlMaXN0IGxpc3QpOwog
ICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SR0JDb2xvci5pZGwKaW5kZXggMWRjODdiY2ZkODhiYzg5
YjljZWJmYmRjNmFiZmVhODlhNjc1YTM0Yi4uODVmNGViYjA4ZGI1NWNmYTc0ZjY4ODMyOTU3YTY3
MDMwZWZkY2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1JHQkNvbG9yLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUkdCQ29sb3IuaWRsCkBAIC0zNSw0ICszNSw0IEBAIG1v
ZHVsZSBjc3MgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SZWN0LmlkbAppbmRleCA2
MGViNzBlMzFmYTliOWU3MGIyM2U2MjhmNjQ1NmUwMWNkZDEyM2E4Li5mZGI2MjQ1MjFlYmY2OWZh
NDBiMTIzZjM2ZWYzNDdiNTEzODJjY2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UmVjdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1JlY3QuaWRsCkBAIC0yNiw0ICsyNiw0
IEBAIG1vZHVsZSBjc3MgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTUHJpbWl0aXZl
VmFsdWUgIGxlZnQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZU1lZGlhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZU1lZGlhLmlkbApp
bmRleCA1ZGQ1OGRhMWZlZDk0MWIxMTVmMjc2YmEwZDE1MjdmMzk5MzUyNTUyLi4zNGQzM2VkYTJi
MTFjODBjMjY4ZTdmYjFiMDk5YTM1ODI5OGUyZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVNZWRpYS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlTWVkaWEu
aWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKICAqLwogCiBtb2R1bGUgdmlldyB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUKLSAg
ICBdIFN0eWxlTWVkaWEgeworICAgIF0gaW50ZXJmYWNlIFN0eWxlTWVkaWEgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGJvb2xlYW4gbWF0Y2hN
ZWRpdW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG1lZGlhcXVl
cnkpOworICAgICAgICBib29sZWFuIG1hdGNoTWVkaXVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIERPTVN0cmluZyBtZWRpYXF1ZXJ5KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0LmlkbAppbmRleCBiODU2OGJmYjIwNTIyM2Q3YTRiOTkxY2JjOWE2ZTFlOGI0
ODg2NDllLi45YzZiN2MyYWZlNmMwNTA3NTlkYTJmZWM0N2U1OWQ0YzJhYjFkM2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXQuaWRsCkBAIC0yMSwxOSArMjEsMTkgQEAKIG1vZHVsZSBzdHlsZXNo
ZWV0cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgSlNHZW5l
cmF0ZUlzUmVhY2hhYmxlLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBPYmpD
UG9seW1vcnBoaWMsCiAgICAgICAgIFY4R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsT3duZXJOb2Rl
Um9vdAotICAgIF0gU3R5bGVTaGVldCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgIHR5cGU7CisgICAg
XSBpbnRlcmZhY2UgU3R5bGVTaGVldCB7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIHR5cGU7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGRpc2FibGVkOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICBvd25lck5vZGU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0ICAgICAgIHBhcmVudFN0eWxlU2hlZXQ7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgICAgICAgIGhyZWY7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgIHRpdGxlOworICAg
ICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBocmVmOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICB0aXRsZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lZGlhTGlzdCAgICAgICAgbWVkaWE7CiAKICNpZiBkZWZp
bmVkKExBTkdVQUdFX0NQUCkgJiYgTEFOR1VBR0VfQ1BQCkBAIC00Myw0ICs0Myw0IEBAIG1vZHVs
ZSBzdHlsZXNoZWV0cyB7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNo
ZWV0TGlzdC5pZGwKaW5kZXggM2E3YjE4NWNkOWQzYTdiYjI1YTg3MDBlYmYwMzg2YTU3OGVmMzBh
YS4uMmUzMmEwYWE0ZmEzNWM2Y2Y1YTg3ZjJhYTMxMTBhNTU4ZjBhN2NiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldExpc3QuaWRsCkBAIC0yMSwxNCArMjEsMTQgQEAKIG1vZHVsZSBzdHls
ZXNoZWV0cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbERvY3VtZW50
LAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAg
VjhEZXBlbmRlbnRMaWZldGltZQotICAgIF0gU3R5bGVTaGVldExpc3QgeworICAgIF0gaW50ZXJm
YWNlIFN0eWxlU2hlZXRMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgICAgbGVuZ3RoOwotICAgICAgICBTdHlsZVNoZWV0ICAgICAgICAgaXRlbShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAg
U3R5bGVTaGVldCAgICAgICAgIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
dW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaWRsCmluZGV4IDNmMjE5MTM3YjRhMDhiYTE5NDVkODIx
NDU3MGI5MmVjMzUyZWNhNDIuLjQ4NTZkMWFmMWU0NjhlOGVhOGQ0ZmRkNWJhZTQ0NDdkNmU4NDA2
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0ZpbHRlclZhbHVlLmlkbApAQCAt
MjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBjc3MgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgICAgICBDb25kaXRpb25hbD1DU1NfRklMVEVSUywKICAgICAgICAgICAgIEluZGV4
ZWRHZXR0ZXIsCiAgICAgICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBXZWJLaXRD
U1NGaWx0ZXJWYWx1ZSA6IENTU1ZhbHVlTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgV2ViS2l0Q1NT
RmlsdGVyVmFsdWUgOiBDU1NWYWx1ZUxpc3QgewogCiAgICAgICAgIC8vIE9wZXJhdGlvblR5cGVz
CiAKQEAgLTUxLDQgKzUxLDQgQEAgbW9kdWxlIGNzcyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0IG9wZXJhdGlvblR5cGU7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaWRsCmluZGV4IGY2ZWFjNzc0
MWRlZWYyMDIyN2UyZjU4NjliZTA1M2JkYTA5YzNiYTguLjAxNWI1MmQ0YzMxOTBkNzYxZmQwOGZk
ZjY0MjlhZjVhMGI3ODcxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaWRsCkBAIC0zNiw0ICszNiw0IEBAIG1vZHVsZSBjc3MgewogCiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmlkbApp
bmRleCBmYTBlYTJhMWJkOTk2NDZkMDhlZDI3ZDI4ODc0NTJmNWIwOWEzZmZmLi5kZDAzZjhhZmM3
OGE0MDIxMTUxZGVhYTg0NmY1YmY2MDBlMWNmNjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuaWRsCkBAIC0yOSwxNiArMjksMTYgQEAKIG1vZHVsZSBj
c3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgPzoKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgSW5kZXhlZEdldHRlcgotICAgIF0gV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZSA6IENTU1J1bGUgeworICAgIF0gaW50ZXJmYWNlIFdlYktpdENTU0tleWZyYW1lc1J1bGUg
OiBDU1NSdWxlIHsKIAotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAg
IFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENT
U1J1bGVMaXN0IGNzc1J1bGVzOwogICAgICAgICAKLSAgICAgICAgdm9pZCBpbnNlcnRSdWxlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBydWxlKTsKLSAgICAgICAg
dm9pZCBkZWxldGVSdWxlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyBrZXkpOwotICAgICAgICBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgZmluZFJ1bGUoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGtleSk7CisgICAgICAgIHZvaWQgaW5z
ZXJ0UnVsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcnVsZSk7
CisgICAgICAgIHZvaWQgZGVsZXRlUnVsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcga2V5KTsKKyAgICAgICAgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlIGZpbmRSdWxl
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBrZXkpOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCmluZGV4IDA4YzQx
YWExMjM3ZjlhYzZiMDAzN2M5MzA3N2U3M2QxZTE5ZTIxY2UuLmMyMjdiMzBiM2JmZmJjMTRlYmY5
ZGM5MmFiYWJiZjk5MWJkNDgzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NNYXRyaXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXgu
aWRsCkBAIC0yNiwxMCArMjYsMTAgQEAKIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNl
ZCBpbiBET00gTGV2ZWwgPzoKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25zdHJ1Y3Rvcihp
biBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNzc1ZhbHVlKSwKLSAg
ICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCi0gICAgXSBXZWJLaXRDU1NNYXRyaXgg
eworICAgIFsKKyAgICAgICAgQ29uc3RydWN0b3IoW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJp
bmddIGluIERPTVN0cmluZyBjc3NWYWx1ZSksCisgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhj
ZXB0aW9uCisgICAgXSBpbnRlcmZhY2UgV2ViS2l0Q1NTTWF0cml4IHsKIAogICAgICAgICAvLyBU
aGVzZSBhdHRyaWJ1dGVzIGFyZSBzaW1wbGUgYWxpYXNlcyBmb3IgY2VydGFpbiBlbGVtZW50cyBv
ZiB0aGUgNHg0IG1hdHJpeAogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGE7IC8vIGFsaWFzIGZv
ciBtMTEKQEAgLTU2LDUxICs1Niw1MSBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgYXR0cmlidXRl
IGRvdWJsZSBtNDM7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgbTQ0OwogCi0gICAgICAgIHZv
aWQgc2V0TWF0cml4VmFsdWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHN0cmluZykgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldE1hdHJp
eFZhbHVlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHJpbmcp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCiAgICAgICAgIC8vIE11bHRpcGx5IHRo
aXMgbWF0cml4IGJ5IHNlY29uZE1hdHJpeCwgb24gdGhlIHJpZ2h0IChyZXN1bHQgPSB0aGlzICog
c2Vjb25kTWF0cml4KQotICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggbXVsdGlw
bHkoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gV2ViS2l0Q1NTTWF0cml4IHNlY29u
ZE1hdHJpeCk7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBtdWx0aXBseShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBXZWJLaXRDU1NNYXRyaXggc2Vjb25kTWF0
cml4KTsKICAgICAgICAgCiAgICAgICAgIC8vIFJldHVybiB0aGUgaW52ZXJzZSBvZiB0aGlzIG1h
dHJpeC4gVGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBtYXRyaXggaXMgbm90IGludmVydGlibGUK
ICAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IGludmVyc2UoKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1cm4gdGhpcyBtYXRyaXggdHJh
bnNsYXRlZCBieSB0aGUgcGFzc2VkIHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2luZyBhIE5hTiB3
aWxsIHVzZSBhIHZhbHVlIG9mIDAuIFRoaXMgYWxsb3dzIHRoZSAzRCBmb3JtIHRvIHVzZWQgZm9y
IDJEIG9wZXJhdGlvbnMgICAgCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCB0
cmFuc2xhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91YmxlIHgsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSB5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3Vi
bGUgeik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCB0cmFuc2xhdGUoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHgsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGRvdWJsZSB5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUgeik7CiAgICAg
ICAgIAogICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHNjYWxlZCBieSB0aGUgcGFzc2Vk
IHZhbHVlcy4KICAgICAgICAgLy8gUGFzc2luZyBzY2FsZVggb3Igc2NhbGVaIGFzIE5hTiB1c2Vz
IGEgdmFsdWUgb2YgMSwgYnV0IHBhc3Npbmcgc2NhbGVZIG9mIE5hTiAKICAgICAgICAgLy8gbWFr
ZXMgaXQgdGhlIHNhbWUgYXMgc2NhbGVYLiBUaGlzIGFsbG93cyB0aGUgM0QgZm9ybSB0byB1c2Vk
IGZvciAyRCBvcGVyYXRpb25zCi0gICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBz
Y2FsZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgc2NhbGVYLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGRvdWJsZSBzY2FsZVksIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91Ymxl
IHNjYWxlWik7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCBzY2FsZShbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUgc2NhbGVYLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGRvdWJsZSBzY2FsZVksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHNjYWxlWik7
CiAgICAgICAgIAogICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHJvdGF0ZWQgYnkgdGhl
IHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8vIElmIHJvdFkgYW5kIHJvdFogYXJlIE5hTiwgcm90
YXRlIGFib3V0IFogKHJvdFg9MCwgcm90YXRlWT0wLCByb3RhdGVaPXJvdFgpLgogICAgICAgICAv
LyBPdGhlcndpc2UgdXNlIGEgcm90YXRpb24gdmFsdWUgb2YgMCBmb3IgYW55IHBhc3NlZCBOYU4u
ICAgIAotICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSByb3RYLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBkb3VibGUgcm90WSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZG91YmxlIHJvdFopOworICAgICAg
ICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGRvdWJsZSByb3RYLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUgcm90
WSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHJvdFopOwogICAgICAgICAKICAgICAgICAg
Ly8gUmV0dXJucyB0aGlzIG1hdHJpeCByb3RhdGVkIGFib3V0IHRoZSBwYXNzZWQgYXhpcyBieSB0
aGUgcGFzc2VkIGFuZ2xlLgogICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEgdmFs
dWUgb2YgMC4gSWYgdGhlIGF4aXMgaXMgKDAsMCwwKSB1c2UgYSB2YWx1ZQogICAgICAgICAvLyBv
ZiAoMCwwLDEpLgotICAgICAgICBbSW1tdXRhYmxlXSBXZWJLaXRDU1NNYXRyaXggcm90YXRlQXhp
c0FuZ2xlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSB4LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgeSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZG91YmxlIHosIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSBhbmds
ZSk7CisgICAgICAgIFtJbW11dGFibGVdIFdlYktpdENTU01hdHJpeCByb3RhdGVBeGlzQW5nbGUo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIHgsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGRvdWJsZSB5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBk
b3VibGUgeiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIGFuZ2xlKTsKIAog
ICAgICAgICAvLyBSZXR1cm5zIHRoaXMgbWF0cml4IHNrZXdlZCBhbG9uZyB0aGUgWCBheGlzIGJ5
IHRoZSBwYXNzZWQgdmFsdWVzLgogICAgICAgICAvLyBQYXNzaW5nIGEgTmFOIHdpbGwgdXNlIGEg
dmFsdWUgb2YgMC4KLSAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNrZXdYKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSBhbmdsZSk7CisgICAgICAgIFtJ
bW11dGFibGVdIFdlYktpdENTU01hdHJpeCBza2V3WChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBkb3VibGUgYW5nbGUpOwogCiAgICAgICAgIC8vIFJldHVybnMgdGhpcyBtYXRyaXgg
c2tld2VkIGFsb25nIHRoZSBZIGF4aXMgYnkgdGhlIHBhc3NlZCB2YWx1ZXMuCiAgICAgICAgIC8v
IFBhc3NpbmcgYSBOYU4gd2lsbCB1c2UgYSB2YWx1ZSBvZiAwLgotICAgICAgICBbSW1tdXRhYmxl
XSBXZWJLaXRDU1NNYXRyaXggc2tld1koaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
ZG91YmxlIGFuZ2xlKTsKKyAgICAgICAgW0ltbXV0YWJsZV0gV2ViS2l0Q1NTTWF0cml4IHNrZXdZ
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGRvdWJsZSBhbmdsZSk7CiAKICAgICAg
ICAgW05vdEVudW1lcmFibGVdIERPTVN0cmluZyB0b1N0cmluZygpOwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5pZGwKaW5kZXggZWMzZTZk
NTE1NzZmYjdjOGNlYTU0OGY2NWY5ZjMxNDgyNGM1NmM3MC4uNzI1MGY4OTJlNTc0ODFjMTQ1NTNk
YzI4NjFlMWQzZGExOTIxZmE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1JlZ2lvblJ1bGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdp
b25SdWxlLmlkbApAQCAtMjksMTAgKzI5LDEwIEBACiAKIG1vZHVsZSBjc3MgewogCi0gICAgaW50
ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9Q1NTX1JFR0lPTlMsCi0gICAgXSBXZWJLaXRD
U1NSZWdpb25SdWxlIDogQ1NTUnVsZSB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1DU1Nf
UkVHSU9OUworICAgIF0gaW50ZXJmYWNlIFdlYktpdENTU1JlZ2lvblJ1bGUgOiBDU1NSdWxlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGVMaXN0IGNzc1J1bGVzOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmlkbAppbmRleCA5MmZkZTFkMzZjZDZmZTE1OWQ2ZWU0NjZhMGNjZGU3YzgyOWFlNTZmLi5mMjVj
ODU0MGQ4NzU4NDQxZGZlZTdmNjAxZjhjNjI2MDMyMTkxMWZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwKQEAgLTI4LDEwICsyOCwxMCBAQAog
CiBtb2R1bGUgY3NzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICAgICAgSW5k
ZXhlZEdldHRlciwKICAgICAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFdlYktp
dENTU1RyYW5zZm9ybVZhbHVlIDogQ1NTVmFsdWVMaXN0IHsKKyAgICBdIGludGVyZmFjZSBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZSA6IENTU1ZhbHVlTGlzdCB7CiAKICAgICAgICAgLy8gT3BlcmF0
aW9uVHlwZXMKIApAQCAtNjAsNCArNjAsNCBAQCBtb2R1bGUgY3NzIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG9wZXJhdGlvblR5cGU7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9BdHRyLmlkbAppbmRleCAzMDA4OTY3MjNmYzM3ZmQxMTk1NGM1MDQ3NjMwODQ5MTY1
MjU2ZDY3Li5iZjdjMzg5NGU4MDEwMzY5Nzg5MjQwN2I1NDZlZjZlOTlhZDM4OGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0F0dHIuaWRsCkBAIC0yMCwxOSArMjAsMTkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBK
U0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEF0dHIgOiBOb2RlIHsKKyAgICBdIGludGVy
ZmFjZSBBdHRyIDogTm9kZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKIAotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3Ry
aW5nIG5hbWU7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBzcGVjaWZpZWQ7CiAKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVh
dFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0
cmluZyB2YWx1ZSAKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwg
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZSAKKyAgICAg
ICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIERP
TSBMZXZlbCAyCiAKQEAgLTQ4LDQgKzQ4LDQgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVMb2FkRXZl
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVudC5pZGwKaW5kZXggMDhk
ZmJiYjMwNmMyMTI3NGMxZTQxYjU5YTVlNGE0MDIyZDAyNDYxMi4uNDBhYjBmMmY0OTFjODBjYTUx
Y2I3Njg1NDQ3ODZhOWQ1ZWE2NTFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Jl
Zm9yZUxvYWRFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZUxvYWRFdmVu
dC5pZGwKQEAgLTI2LDEwICsyNiwxMCBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50Ci0gICAgXSBC
ZWZvcmVMb2FkRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyB1cmw7CisgICAgXSBpbnRlcmZh
Y2UgQmVmb3JlTG9hZEV2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50
Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaWRsCmluZGV4IDcwYTRmNTU4MDM4YmQ4
OTEzNjlmYzZkMjliOWJlNWMzNWJmMDk4ZjEuLjdiMGRlMDBjZDkxYzBjMjg1ZTFjZDJlNDkyYzRk
NmJjM2FmNTRhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DREFUQVNlY3Rpb24uaWRsCkBAIC0yMiw0ICsy
Miw0IEBAIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgQ0RBVEFTZWN0aW9uIDogVGV4dCB7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0
ZXJEYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbAppbmRleCAy
YmIzZDRlNDk5MzAwODYwY2Q4YjBmNDI0ZGM1MjFkOTAyMTFlYmQzLi42Njg0ZTY1ZmZjMTRmZTRk
NjY3ZWVkNTU3MWY1NzVkN2M2NmY0NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q2hhcmFjdGVyRGF0YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEu
aWRsCkBAIC0yMSwzMSArMjEsMzEgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIENo
YXJhY3RlckRhdGEgOiBOb2RlIHsKIAotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyBkYXRhCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGRhdGEKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgCi0g
ICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIE9iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gRE9NU3RyaW5nIHN1YnN0cmluZ0RhdGEoaW4gW0lzSW5kZXgsT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25n
IGxlbmd0aCkKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgT2JqQ0xl
Z2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBET01TdHJpbmcgc3Vic3RyaW5nRGF0YShbSXNJbmRleCxP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
LSAgICAgICAgdm9pZCBhcHBlbmREYXRhKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBkYXRhKQorICAgICAgICB2b2lkIGFwcGVuZERhdGEoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lk
IGluc2VydERhdGEoaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNp
Z25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZGF0YSkKKyAgICAg
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBpbnNlcnREYXRhKFtJc0luZGV4
LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGRl
bGV0ZURhdGEoaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25l
ZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGRlbGV0ZURh
dGEoW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25n
IG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbSXNJbmRl
eCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW09iakNMZWdhY3lV
bm5hbWVkUGFyYW1ldGVyc10gdm9pZCByZXBsYWNlRGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyBkYXRhKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlcGxh
Y2VEYXRhKFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
bG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtJ
c0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBsZW5n
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NsaWVudFJlY3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJl
Y3QuaWRsCmluZGV4IDdkYmRkNjg5OGE4MjhhMWFiNDhmZGU3ZjBlNTljMTNjNTE3ZTMxYTQuLmUw
NjMzNjkyMTUwMDQzOTNiODM5N2ZjYzhjYzg3NGVlZDEwMWE1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
ZW50UmVjdC5pZGwKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHZpZXcgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaWVudFJlY3RMaXN0LmlkbAppbmRleCAwMmYwNTVlNmU2MGViMjRlMTJmMzNjNzg1OTBi
MjdlM2IxYTlhNDQ5Li41MzAyNzM4NWNlYmFlZDU2OWE3ZTI5Y2RlNDU1YTE0MzZkNjVlNTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKQEAgLTI2LDEyICsyNiwxMiBAQAog
CiBtb2R1bGUgdmlldyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSW5kZXhl
ZEdldHRlcgotICAgIF0gQ2xpZW50UmVjdExpc3QgeworICAgIF0gaW50ZXJmYWNlIENsaWVudFJl
Y3RMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwotICAgICAgICBDbGllbnRSZWN0IGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgQ2xpZW50UmVjdCBpdGVt
KFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgICAgICAgIC8vIEZJWE1FOiBGaXggbGlzdCBiZWhhdmlvciB0byBhbGxvdyBjdXN0
b20gZXhjZXB0aW9ucyB0byBiZSB0aHJvd24uCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZC5pZGwKaW5kZXggYzk0NjIxYmM3ZmI0OGQyNmQxMzczNzkzOTkyMTJhNTgzNmM1ZmM0
MC4uYTFlMGRiOTQ1OTg0ZWNmZjIzMGM0NmQyMDM5NjVmOTc4ZWFkMGI5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NsaXBib2FyZC5pZGwKQEAgLTI5LDE5ICsyOSwxOSBAQAogbW9kdWxlIGNvcmUgewogCiAgICAg
aW50ZXJmYWNlIENsaXBib2FyZCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIERPTVN0cmluZyBkcm9wRWZmZWN0OwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZp
bmVkXSBET01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDdXN0b21HZXR0ZXJdIEFycmF5IHR5cGVzOworICAgICAgICAgICAgICAgICBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIGF0dHJpYnV0ZSBET01TdHJpbmcgZHJvcEVmZmVj
dDsKKyAgICAgICAgICAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVk
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGVmZmVjdEFsbG93ZWQ7CisgICAgICAgIFtDdXN0b21HZXR0
ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBBcnJheSB0eXBlczsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEZpbGVMaXN0IGZpbGVzOwogCi0gICAgICAgIFtDdXN0b21dIHZvaWQgY2xlYXJEYXRh
KGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHR5cGUpCisgICAgICAgIFtDdXN0b21dIHZvaWQgY2xl
YXJEYXRhKFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIHR5cGUpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgRE9NU3RyaW5nIGdldERhdGEoaW4gRE9NU3RyaW5nIHR5
cGUpOwogICAgICAgICBib29sZWFuIHNldERhdGEoaW4gRE9NU3RyaW5nIHR5cGUsIGluIERPTVN0
cmluZyBkYXRhKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXREcmFnSW1hZ2UoaW4gSFRNTElt
YWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBsb25nIHkpCiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIFY4RW5hYmxlZEF0UnVudGltZT1EYXRhVHJhbnNmZXJJ
dGVtc10gRGF0YVRyYW5zZmVySXRlbUxpc3QgaXRlbXM7CisgICAgICAgIFtDb25kaXRpb25hbD1E
QVRBX1RSQU5TRkVSX0lURU1TLCBWOEVuYWJsZWRBdFJ1bnRpbWU9RGF0YVRyYW5zZmVySXRlbXNd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRhVHJhbnNmZXJJdGVtTGlzdCBpdGVtczsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaWRsCmluZGV4IGI5ZjRlMzE5ZWFjMzU0MDFmYWVhMWJh
NDg5NjE2YjlhM2Y4YmE3MjcuLjMwNjk5ZjE1OWNiYzFhMzc2YmE5MTY2M2M2N2Q5YWU1ZGUzYmYz
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29tbWVudC5pZGwKQEAgLTIyLDQgKzIyLDQgQEAgbW9kdWxlIGNvcmUg
ewogICAgIGludGVyZmFjZSBDb21tZW50IDogQ2hhcmFjdGVyRGF0YSB7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmlkbAppbmRleCBmNjZlZDVhZTRj
ZjM4M2E4NDRhYTNiODA3ZTNiNTI4MmNlNDYwZTU3Li5iNDliN2NiMjQ1NzhiMmY1MDY5NWU3ZTg2
MDc0YjliNDZkNzg3YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRp
b25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
CkBAIC0zMCwxMiArMzAsMTIgQEAgbW9kdWxlIGV2ZW50cyB7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkYXRhOwogCi0gICAgICAgIHZvaWQgaW5pdENvbXBvc2l0aW9u
RXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVBcmcs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNh
bmNlbGFibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2aWV3QXJnLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgZGF0YUFyZyk7CisgICAgICAgIHZvaWQgaW5pdENvbXBvc2l0aW9uRXZlbnQoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGVBcmcsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGVB
cmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIERPTVdpbmRvdyB2aWV3QXJnLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
ZGF0YUFyZyk7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0N1c3RvbUV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5pZGwK
aW5kZXggOTE1OGQ1OGEyZjAzYjZkYTg5ZjQ1NzllMGJkNjMzNDJmZmM1OTFmMy4uM2VmOWQ0ODAz
NGMzY2I4OGNlZDc0YTZhODcyM2M2MTA1YjgzYTUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0N1c3RvbUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZl
bnQuaWRsCkBAIC0yNywxNiArMjcsMTYgQEAgbW9kdWxlIGV2ZW50cyB7CiAKICNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERP
TSBMZXZlbCAzOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvclRl
bXBsYXRlPUV2ZW50Ci0gICAgXSBDdXN0b21FdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NT2JqZWN0IGRl
dGFpbDsKKyAgICBdIGludGVyZmFjZSBDdXN0b21FdmVudCA6IEV2ZW50IHsKKyAgICAgICAgW0lu
aXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NT2JqZWN0
IGRldGFpbDsKIAotICAgICAgICB2b2lkIGluaXRDdXN0b21FdmVudChpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZUFyZywgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnVi
YmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NT2JqZWN0IGRl
dGFpbEFyZyk7CisgICAgICAgIHZvaWQgaW5pdEN1c3RvbUV2ZW50KFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5CdWJi
bGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01PYmplY3QgZGV0
YWlsQXJnKTsKICAgICB9OwogI2VuZGlmCiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQ29y
ZUV4Y2VwdGlvbi5pZGwKaW5kZXggMzg3YmI2YmIyMjg1NzRiYmRiMWZiMWY4MTJkZWZjNjdjNWM0
NzIzMy4uZDI3ZTA2M2M0NmIxY2FmYTBjZDdjODk2Y2U5ZWI5MWI1ZDcyZTExOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbApAQCAtMjgsMTEgKzI4LDExIEBACiAKIG1v
ZHVsZSBjb3JlIHsKIAotICAgIGV4Y2VwdGlvbiBbCisgICAgWwogICAgICAgICBKU05vU3RhdGlj
VGFibGVzLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAgICAgICBJbnRlcmZhY2VO
YW1lPURPTUV4Y2VwdGlvbgotICAgIF0gRE9NQ29yZUV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRp
b24gRE9NQ29yZUV4Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0ICAgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbmFtZTsKQEAgLTgyLDQgKzgyLDQgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCAgICAgIERBVEFfQ0xPTkVfRVJSICAgICAgICAgICAgICAgICA9IDI1
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJy
b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUVycm9yLmlkbAppbmRleCBlZTA1OWQ0YjI1
NmRlYzE5ZTg2MTJjYjU2ZGMxYjRiYzFiNzQwN2YwLi4xNDBmMjhlZjI5Zjc2OTcxMjc2ZWIxMGRi
ZjNiMjE5NzA2Mjc2Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NRXJyb3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01FcnJvci5pZGwKQEAgLTI3LDkgKzI3LDgg
QEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gIGludGVyZmFjZSBbCi0gICAgXSBET01FcnJvciB7
CisgIGludGVyZmFjZSBET01FcnJvciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbmFtZTsKICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uaWRsCmluZGV4IGNkNTcwOTkwNjc2MWI0MjI4OGU1MDllYzRlMzUyNjllN2JjMzRiOTku
LmZhYmM5YTE0OGNkOGFhODRiM2M4ODMwN2NjMWFjMzZlYWFiZmI0Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbApAQCAtMjAsMzYgKzIwLDM2IEBACiAKIG1vZHVs
ZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbERvY3VtZW50LAogICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCi0gICAg
XSBET01JbXBsZW1lbnRhdGlvbiB7CisgICAgXSBpbnRlcmZhY2UgRE9NSW1wbGVtZW50YXRpb24g
ewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAxCiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gYm9vbGVhbiBoYXNGZWF0dXJlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBmZWF0dXJlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHZlcnNpb24pOworICAgICAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSBib29sZWFuIGhhc0ZlYXR1cmUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIGZlYXR1cmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdmVyc2lvbik7CiAKICAgICAgICAgLy8gRE9NIExldmVs
IDIKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBEb2N1bWVudFR5cGUg
Y3JlYXRlRG9jdW1lbnRUeXBlKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVm
aW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
cXVhbGlmaWVkTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRB
cz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHB1Ymxp
Y0lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJp
bmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3lzdGVtSWQpCisgICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1
bWVudFR5cGUoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0
cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBxdWFsaWZpZWRO
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHVibGljSWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzeXN0ZW1JZCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJz
XSBEb2N1bWVudCBjcmVhdGVEb2N1bWVudChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBxdWFsaWZp
ZWROYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
b2N1bWVudFR5cGUgZG9jdHlwZSkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnQoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcXVhbGlm
aWVkTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
RG9jdW1lbnRUeXBlIGRvY3R5cGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAogICAgICAgICAvLyBET01JbXBsZW1lbnRhdGlvbkNTUyBpbnRlcmZhY2UgZnJvbSBET00gTGV2
ZWwgMiBDU1MKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBDU1NTdHls
ZVNoZWV0IGNyZWF0ZUNTU1N0eWxlU2hlZXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIHRpdGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIG1lZGlhKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBDU1NT
dHlsZVNoZWV0IGNyZWF0ZUNTU1N0eWxlU2hlZXQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIHRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
RE9NU3RyaW5nIG1lZGlhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAg
ICAgICAgLy8gSFRNTERPTUltcGxlbWVudGF0aW9uIGludGVyZmFjZSBmcm9tIERPTSBMZXZlbCAy
IEhUTUwKIAotICAgICAgICBIVE1MRG9jdW1lbnQgY3JlYXRlSFRNTERvY3VtZW50KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0aXRsZSk7CisgICAgICAgIEhUTUxE
b2N1bWVudCBjcmVhdGVIVE1MRG9jdW1lbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0
cmluZ0xpc3QuaWRsCmluZGV4IDViZWY4ODdiYzhhNzFmNTQ0MWMyYTM4MWFhNWFjM2IzMThiMTIx
YzAuLmYxZGUzN2I2ZmNjY2IwMjRmMjAwMjUwYWZkNDE2NmM3OTUyMzY2NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwKQEAgLTI1LDE0ICsyNSwxNCBAQAogCiBtb2R1bGUgY29y
ZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAg
ICAgICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdAotICAgIF0gRE9NU3RyaW5nTGlzdCB7CisgICAg
XSBpbnRlcmZhY2UgRE9NU3RyaW5nTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gRE9NU3RyaW5nIGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc3RyaW5nKTsKKyAgICAgICAg
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGl0ZW0oW0lzSW5kZXgs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAg
ICAgICAgYm9vbGVhbiBjb250YWlucyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgc3RyaW5nKTsKICAgICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJp
bmdNYXAuaWRsCmluZGV4IDA0NWQ1MjIzMjI5ZjJjMjliYTdmNjE2NjZiNDZjNTllYmE4MmFjZWUu
LjBlZTU1OGJhNzM1ZDVkMzZlMjU1M2RjOWQ0ZWM5NDM0YzljMmI4N2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01TdHJpbmdNYXAuaWRsCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogbW9kdWxlIGNvcmUgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bEVsZW1lbnRSb290LAogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAgQ3VzdG9tRGVsZXRl
UHJvcGVydHksCiAgICAgICAgIEN1c3RvbUVudW1lcmF0ZVByb3BlcnR5LAogICAgICAgICBDdXN0
b21OYW1lZFNldHRlcgotICAgIF0gRE9NU3RyaW5nTWFwIHsKKyAgICBdIGludGVyZmFjZSBET01T
dHJpbmdNYXAgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbS5pZGwKaW5kZXggMGRhZDMzODIyZjc0Y2ZlOWZkNDRhZjQ2ZTA0YmYzOWI2ODM1Yzk1NC4u
MGQzMDVmNjMyOWNhMWZjZTk0MDUwY2I5ZjRiY2MwM2JhNDc2Y2FlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbApAQCAtMzAsMTQgKzMwLDE0IEBACiAKIG1vZHVsZSBj
b3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNG
RVJfSVRFTVMsCi0gICAgXSBEYXRhVHJhbnNmZXJJdGVtIHsKKyAgICBbCisgICAgICAgIENvbmRp
dGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMKKyAgICBdIGludGVyZmFjZSBEYXRhVHJhbnNmZXJJ
dGVtIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAKLSAgICAgICAgdm9pZCBnZXRB
c1N0cmluZyhpbiBbQ2FsbGJhY2ssT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBTdHJpbmdD
YWxsYmFjayBjYWxsYmFjayk7CisgICAgICAgIHZvaWQgZ2V0QXNTdHJpbmcoW0NhbGxiYWNrLE9w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU3RyaW5nQ2FsbGJhY2sgY2FsbGJhY2spOwog
ICAgICAgICBCbG9iIGdldEFzRmlsZSgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbAppbmRleCBhZWU5MmU3YWFmNjgyMDVlNTk3
NDNlMGYzY2FlNWE0NWUxYTJkNGUyLi42ODE1NzMwYTc4OWZiNGYzYTBjNGQ5OTU4ZjhjMTE3ZDJk
M2VkYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwK
QEAgLTMwLDIxICszMCwyMSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywKICAgICAgICAg
SW5kZXhlZEdldHRlciwKLSAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgICAg
ICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKICNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4
X0JJTkRJTkcKLSAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCisgICAgICAgICxDdXN0b21E
ZWxldGVQcm9wZXJ0eQogI2VuZGlmCi0gICAgXSBEYXRhVHJhbnNmZXJJdGVtTGlzdCB7CisgICAg
XSBpbnRlcmZhY2UgRGF0YVRyYW5zZmVySXRlbUxpc3QgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBsZW5ndGg7Ci0gICAgICAgIERhdGFUcmFuc2Zlckl0ZW0gaXRlbShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAg
RGF0YVRyYW5zZmVySXRlbSBpdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHZvaWQgY2xlYXIoKTsKICAgICAgICAgdm9p
ZCBhZGQoaW4gRmlsZT8gZmlsZSk7Ci0gICAgICAgIHZvaWQgYWRkKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhLCAKLSAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICB2b2lkIGFkZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgZGF0YSwgCisgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKaW5kZXgg
YmI1NWY3Y2NlNzAzZWUyYTgzOWQ3NDk3MWNmYmNmNWRkM2I5NDY5Yi4uNjliYzA4YWNiZmJmNDE0
NDM0YzBiZWU1MmJjNTYxZGUxYWM2YTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uRXZlbnQuaWRsCkBAIC0yNSwyMCArMjUsMjAgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAg
aW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLAotICAg
IF0gRGV2aWNlTW90aW9uRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ3VzdG9tXSBBY2NlbGVyYXRpb24gYWNjZWxlcmF0aW9uOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0N1c3RvbV0gQWNjZWxlcmF0aW9uIGFjY2VsZXJhdGlvbkluY2x1ZGluZ0dyYXZp
dHk7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBSb3RhdGlvblJhdGUgcm90
YXRpb25SYXRlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbV0gZG91YmxlIGlu
dGVydmFsOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIGluaXREZXZpY2VNb3Rpb25FdmVudChpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gYnViYmxlcywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
Y2FuY2VsYWJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEFjY2VsZXJhdGlvbiBhY2NlbGVyYXRp
b24sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBY2NlbGVyYXRpb24gYWNjZWxlcmF0aW9uSW5jbHVk
aW5nR3Jhdml0eSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJvdGF0aW9uUmF0ZSByb3RhdGlvblJh
dGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgaW50ZXJ2YWwpOworICAgIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OCisgICAgXSBpbnRlcmZhY2UgRGV2aWNl
TW90aW9uRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0
ZSBBY2NlbGVyYXRpb24gYWNjZWxlcmF0aW9uOworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBh
dHRyaWJ1dGUgQWNjZWxlcmF0aW9uIGFjY2VsZXJhdGlvbkluY2x1ZGluZ0dyYXZpdHk7CisgICAg
ICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBSb3RhdGlvblJhdGUgcm90YXRpb25SYXRl
OworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGludGVydmFsOwor
ICAgICAgICBbQ3VzdG9tXSB2b2lkIGluaXREZXZpY2VNb3Rpb25FdmVudChbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGJvb2xlYW4gYnViYmxlcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJs
ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEFjY2VsZXJhdGlvbiBhY2NlbGVyYXRpb24sIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBBY2NlbGVyYXRpb24gYWNjZWxlcmF0aW9uSW5jbHVkaW5nR3Jhdml0
eSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFJvdGF0aW9uUmF0ZSByb3RhdGlvblJhdGUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBkb3VibGUgaW50ZXJ2YWwpOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwKaW5kZXggYWVkMzhm
ZmUzYjdiY2ZiNzAxNGQ2ZmQyNjM0MjExMTk5YWY0YTVkNi4uMTcyZjY1NmI5MGQxZWQyYWZmZDg3
MGM1Zjk3NDY0NTI0ZjFmNTM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmll
bnRhdGlvbkV2ZW50LmlkbApAQCAtMjUsMjAgKzI1LDIwIEBACiAKIG1vZHVsZSBjb3JlIHsKIAot
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTiwK
LSAgICBdIERldmljZU9yaWVudGF0aW9uRXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ3VzdG9tXSBkb3VibGUgYWxwaGE7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ3VzdG9tXSBkb3VibGUgYmV0YTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
dXN0b21dIGRvdWJsZSBnYW1tYTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21d
IGJvb2xlYW4gYWJzb2x1dGU7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgaW5pdERldmljZU9yaWVu
dGF0aW9uRXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5
cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gYnViYmxlcywgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBkb3VibGUgYWxwaGEsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGRvdWJsZSBi
ZXRhLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBkb3VibGUgZ2FtbWEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBhYnNvbHV0ZSk7CisgICAgWworICAgICAgICBDb25kaXRp
b25hbD1ERVZJQ0VfT1JJRU5UQVRJT04KKyAgICBdIGludGVyZmFjZSBEZXZpY2VPcmllbnRhdGlv
bkV2ZW50IDogRXZlbnQgeworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUgZG91
YmxlIGFscGhhOworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGJl
dGE7CisgICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZ2FtbWE7Cisg
ICAgICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGFic29sdXRlOworICAg
ICAgICBbQ3VzdG9tXSB2b2lkIGluaXREZXZpY2VPcmllbnRhdGlvbkV2ZW50KFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBib29sZWFuIGJ1YmJsZXMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xl
YW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZG91YmxlIGFscGhhLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBkb3VibGUgYmV0YSwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZG91YmxlIGdhbW1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4g
YWJzb2x1dGUpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAppbmRleCA3
YzFjNDgzOWMyOTI4NzAyZTczMjA4MTdhZjc0ZDYzNDZjNzQzMGUyLi4zNjJhNjAzMmNjYmM3ZGE1
N2QyZjhlMjVmNTllYWU5ZmYwYWFmYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTIw
LDU5ICsyMCw1OSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2Jq
ZWN0LAogICAgICAgICBKU0lubGluZUdldE93blByb3BlcnR5U2xvdAotICAgIF0gRG9jdW1lbnQg
OiBOb2RlIHsKKyAgICBdIGludGVyZmFjZSBEb2N1bWVudCA6IE5vZGUgewogCiAgICAgICAgIC8v
IERPTSBMZXZlbCAxIENvcmUKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50VHlw
ZSBkb2N0eXBlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb24g
aW1wbGVtZW50YXRpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGRvY3Vt
ZW50RWxlbWVudDsKIAotICAgICAgICBbUmV0dXJuTmV3T2JqZWN0XSBFbGVtZW50IGNyZWF0ZUVs
ZW1lbnQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgdGFnTmFtZSkKKyAgICAgICAgW1JldHVybk5ld09iamVjdF0gRWxlbWVu
dCBjcmVhdGVFbGVtZW50KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRhZ05hbWUpCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgICBjcmVhdGVEb2N1bWVudEZy
YWdtZW50KCk7Ci0gICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIFRleHQgY3JlYXRlVGV4dE5vZGUo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpOwotICAgICAg
ICBbUmV0dXJuTmV3T2JqZWN0XSBDb21tZW50IGNyZWF0ZUNvbW1lbnQoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGEpOwotICAgICAgICBbUmV0dXJuTmV3T2Jq
ZWN0XSBDREFUQVNlY3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBkYXRhKQorICAgICAgICBbUmV0dXJuTmV3T2JqZWN0XSBU
ZXh0IGNyZWF0ZVRleHROb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBkYXRhKTsKKyAgICAgICAgW1JldHVybk5ld09iamVjdF0gQ29tbWVudCBjcmVhdGVDb21t
ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBkYXRhKTsKKyAg
ICAgICAgW1JldHVybk5ld09iamVjdF0gQ0RBVEFTZWN0aW9uIGNyZWF0ZUNEQVRBU2VjdGlvbihb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZGF0YSkKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzLCBSZXR1cm5OZXdPYmplY3RdIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjcmVhdGVQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3Ry
aW5nIHRhcmdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgW09iakNMZWdhY3lVbm5h
bWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3Jl
YXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyB0YXJnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtSZXR1cm5OZXdPYmplY3RdIEF0dHIgY3JlYXRl
QXR0cmlidXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1l
KQorICAgICAgICBbUmV0dXJuTmV3T2JqZWN0XSBBdHRyIGNyZWF0ZUF0dHJpYnV0ZShbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSkKICAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1JldHVybk5ld09iamVjdF0gRW50aXR5UmVm
ZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgbmFtZSkKKyAgICAgICAgW1JldHVybk5ld09iamVjdF0gRW50aXR5UmVm
ZXJlbmNlIGNyZWF0ZUVudGl0eVJlZmVyZW5jZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBET01TdHJpbmcgbmFtZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICBOb2RlTGlzdCAgICAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ25hbWUpOworICAgICAgICBOb2Rl
TGlzdCAgICAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6CiAKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywg
UmV0dXJuTmV3T2JqZWN0XSBOb2RlIGltcG9ydE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gTm9kZSBpbXBvcnRlZE5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gZGVlcCkKKyAgICAg
ICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2JqZWN0XSBOb2RlIGlt
cG9ydE5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBpbXBvcnRlZE5v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWxdIGluIGJvb2xlYW4gZGVlcCkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgUmV0dXJuTmV3T2Jq
ZWN0XSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRl
cnMsIFJldHVybk5ld09iamVjdF0gRWxlbWVudCBjcmVhdGVFbGVtZW50TlMoW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBxdWFsaWZpZWROYW1lKQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzLCBS
ZXR1cm5OZXdPYmplY3RdIEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNl
VVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnMsIFJldHVybk5ld09iamVjdF0gQXR0ciBjcmVhdGVBdHRyaWJ1dGVOUyhbVHJl
YXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkKICAgICAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVyc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VV
UkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7
Ci0gICAgICAgIEVsZW1lbnQgICAgICAgICAgICBnZXRFbGVtZW50QnlJZChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZWxlbWVudElkKTsKKyAgICAgICAgW09iakNM
ZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhb
VHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIGxvY2FsTmFtZSk7CisgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBnZXRFbGVtZW50
QnlJZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZWxlbWVudElk
KTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMyBDb3JlCiAKLSAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBpbnB1dEVu
Y29kaW5nOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlucHV0RW5jb2Rpbmc7CiAKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyB4bWxF
bmNvZGluZzsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0
cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB4bWxWZXJzaW9u
Ci0gICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgeG1sRW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVkTnVs
bFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJp
bmcgeG1sVmVyc2lvbgorICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHhtbFN0YW5kYWxvbmUKLSAg
ICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIE5vZGUgICAg
ICAgICAgICAgICBhZG9wdE5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9k
ZSBzb3VyY2UpCisgICAgICAgIE5vZGUgICAgICAgICAgICAgICBhZG9wdE5vZGUoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBzb3VyY2UpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBM
QU5HVUFHRV9PQkpFQ1RJVkVfQwpAQCAtODAsMTQgKzgwLDE0IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgLy8gKHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDExL1dELWRvbS0yMDExMDkxNS8j
ZG9jdW1lbnQpLiBXZSBuZWVkIHRvIGtlZXAKICAgICAgICAgLy8gdGhlIHdyaXRhYmxlIHZlcnNp
b24gYXJvdW5kIGZvciBPYmplY3RpdmUgQyBjbGllbnRzLCBidXQgYXJlIG1vdmluZyB0bwogICAg
ICAgICAvLyByZWFkLW9ubHkgZm9yIG90aGVyIGNsaWVudHMuCi0gICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBET01TdHJpbmcgZG9jdW1lbnRVUkk7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0
ZSBET01TdHJpbmcgZG9jdW1lbnRVUkk7CiAjZWxzZQotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGRvY3VtZW50VVJJ
OworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGRvY3VtZW50VVJJOwogI2VuZGlmCiAKICAgICAgICAgLy8gRE9NIExl
dmVsIDIgRXZlbnRzIChEb2N1bWVudEV2ZW50cyBpbnRlcmZhY2UpCiAKLSAgICAgICAgRXZlbnQg
ICAgICAgICAgICAgIGNyZWF0ZUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBldmVudFR5cGUpCisgICAgICAgIEV2ZW50ICAgICAgICAgICAgICBjcmVhdGVF
dmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZXZlbnRUeXBl
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRE9NIExl
dmVsIDIgVHJhbnZlcnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50UmFuZ2UgaW50ZXJmYWNlKQpAQCAt
OTYsMTUgKzk2LDE1IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBU
cmFudmVyc2FsIGFuZCBSYW5nZSAoRG9jdW1lbnRUcmF2ZXJzYWwgaW50ZXJmYWNlKQogCi0gICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2Rl
SXRlcmF0b3IoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByb290LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlRmlsdGVyIGZpbHRlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCisg
ICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIE5vZGVJdGVyYXRvciBjcmVhdGVO
b2RlSXRlcmF0b3IoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByb290LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlRmlsdGVyIGZpbHRlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW09iakNMZWdhY3lV
bm5hbWVkUGFyYW1ldGVyc10gVHJlZVdhbGtlciBjcmVhdGVUcmVlV2Fsa2VyKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IE5vZGVGaWx0ZXIgZmlsdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBl
eHBhbmRFbnRpdHlSZWZlcmVuY2VzKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0
ZXJzXSBUcmVlV2Fsa2VyIGNyZWF0ZVRyZWVXYWxrZXIoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gTm9kZSByb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQg
bG9uZyB3aGF0VG9TaG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZUZpbHRlciBm
aWx0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGV4cGFuZEVudGl0eVJl
ZmVyZW5jZXMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyBET00gTGV2ZWwgMiBBYnN0cmFjdCBWaWV3cyAoRG9jdW1lbnRWaWV3IGludGVyZmFjZSkKQEAg
LTExNywyNiArMTE3LDI2IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwg
MiBTdHlsZSAoRG9jdW1lbnRDU1MgaW50ZXJmYWNlKQogCi0gICAgICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnNdIENTU1N0eWxlRGVjbGFyYXRpb24gZ2V0T3ZlcnJpZGVTdHlsZShpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBFbGVtZW50IGVsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcHNldWRvRWxlbWVudCk7CisgICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIENTU1N0eWxlRGVjbGFyYXRpb24gZ2V0
T3ZlcnJpZGVTdHlsZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBFbGVtZW50IGVs
ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHNl
dWRvRWxlbWVudCk7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDMgWFBhdGggKFhQYXRoRXZhbHVh
dG9yIGludGVyZmFjZSkKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gWFBh
dGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGV4cHJlc3Npb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlcikKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGV4cHJlc3Npb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIFhQYXRoTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBYUGF0aE5TUmVzb2x2ZXIgICAgY3JlYXRl
TlNSZXNvbHZlcihpbiBOb2RlIG5vZGVSZXNvbHZlcik7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5u
YW1lZFBhcmFtZXRlcnMsIFY4Q3VzdG9tXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZXhwcmVzc2lvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgY29udGV4dE5vZGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSB1bnNpZ25lZCBzaG9ydCB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gWFBhdGhSZXN1bHQgaW5SZXN1bHQpCisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBh
cmFtZXRlcnMsIFY4Q3VzdG9tXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgZXhwcmVzc2lvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIE5vZGUgY29udGV4dE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiB1bnNpZ25lZCBzaG9ydCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
WFBhdGhSZXN1bHQgaW5SZXN1bHQpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAogICAgICAgICAvLyBDb21tb24gZXh0ZW5zaW9ucwogCi0gICAgICAgIGJvb2xlYW4gICAgICAg
ICAgICBleGVjQ29tbWFuZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gdXNlckludGVyZmFjZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgdmFsdWUpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgZXhlY0Nv
bW1hbmQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNvbW1hbmQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHVzZXJJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRl
ZmluZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIHZhbHVlKTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdV
QUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlIHRoZXNlIHR3byB2
ZXJzaW9ucyBvbmNlIFtPcHRpb25hbF0gaXMgaW1wbGVtZW50ZWQgZm9yIE9iamVjdGl2ZS1DLgpA
QCAtMTQ1LDMyICsxNDUsMzEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBib29sZWFuICAgICAg
ICAgICAgZXhlY0NvbW1hbmQoaW4gRE9NU3RyaW5nIGNvbW1hbmQpOwogI2VuZGlmCiAKLSAgICAg
ICAgYm9vbGVhbiAgICAgICAgICAgIHF1ZXJ5Q29tbWFuZEVuYWJsZWQoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbW1hbmQpOwotICAgICAgICBib29sZWFuICAg
ICAgICAgICAgcXVlcnlDb21tYW5kSW5kZXRlcm0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGNvbW1hbmQpOwotICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVl
cnlDb21tYW5kU3RhdGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IGNvbW1hbmQpOwotICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kU3VwcG9y
dGVkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21tYW5kKTsK
LSAgICAgICAgRE9NU3RyaW5nICAgICAgICAgIHF1ZXJ5Q29tbWFuZFZhbHVlKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21tYW5kKTsKKyAgICAgICAgYm9vbGVh
biAgICAgICAgICAgIHF1ZXJ5Q29tbWFuZEVuYWJsZWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIGNvbW1hbmQpOworICAgICAgICBib29sZWFuICAgICAgICAgICAg
cXVlcnlDb21tYW5kSW5kZXRlcm0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIGNvbW1hbmQpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5k
U3RhdGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNvbW1hbmQp
OworICAgICAgICBib29sZWFuICAgICAgICAgICAgcXVlcnlDb21tYW5kU3VwcG9ydGVkKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBjb21tYW5kKTsKKyAgICAgICAg
RE9NU3RyaW5nICAgICAgICAgIHF1ZXJ5Q29tbWFuZFZhbHVlKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBjb21tYW5kKTsKIAogICAgICAgICAvLyBNb3ZlZCBkb3du
IGZyb20gSFRNTERvY3VtZW50CiAKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CisgICAgICAgICAgICAgICAgIFtUcmVh
dE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwogI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBkb21haW4KLSAgICAg
ICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFp
bgorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogI2Vsc2UK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CiAjZW5kaWYKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBVUkw7CiAKLSAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgY29va2llCi0g
ICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pLAotICAgICAg
ICAgICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgY29va2ll
CisgICAgICAgICAgICAgICAgICAgICBnZXRyYWlzZXMgKERPTUV4Y2VwdGlvbikgc2V0cmFpc2Vz
IChET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEZJWE1FOiB0aGUgRE9NIHNwZWMgZG9lcyBO
T1QgaGF2ZSB0aGlzIGF0dHJpYnV0ZQogICAgICAgICAvLyByYWlzaW5nIGFuIGV4Y2VwdGlvbi4K
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIEhUTUxFbGVtZW50IGJvZHkKLSAgICAgICAgICAg
ICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAg
ICAgICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxIZWFkRWxlbWVudCBoZWFkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gaW1hZ2VzOwpAQCAtMTgwLDQ0ICsxNzksNDQgQEAgbW9kdWxlIGNvcmUgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gYW5jaG9yczsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0TW9kaWZpZWQ7CiAKLSAgICAgICAg
Tm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNC
eU5hbWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGVsZW1lbnRO
YW1lKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxFX01JQ1JPREFU
QQotICAgICAgICBOb2RlTGlzdCBnZXRJdGVtcyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywg
VHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLCBPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyB0eXBlTmFtZXMpOworICAgICAgICBOb2RlTGlzdCBnZXRJdGVtcyhbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nLCBPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlTmFtZXMpOwogI2VuZGlmCiAKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOworICAg
ICAgICAgICAgICAgICBbQ3VzdG9tXSBhdHRyaWJ1dGUgTG9jYXRpb24gbG9jYXRpb247CiAjZW5k
aWYKIAogICAgICAgICAvLyBJRSBleHRlbnNpb25zCiAKLSAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZCwgVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIGNoYXJzZXQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
VHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIERPTVN0cmluZyBkZWZhdWx0Q2hh
cnNldDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPVVuZGVmaW5lZF0gRE9NU3RyaW5nIHJlYWR5U3RhdGU7CisgICAgICAgICAgICAgICAgIFtU
cmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZCwgVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OworICAgICAgICBbVHJlYXRSZXR1cm5lZE51
bGxTdHJpbmdBcz1VbmRlZmluZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZGVmYXVs
dENoYXJzZXQ7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRlOwogCi0gICAgICAgIEVsZW1l
bnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGxvbmcgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeSk7Ci0gICAgICAgIFJh
bmdlICAgICAgICAgICAgICBjYXJldFJhbmdlRnJvbVBvaW50KGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeSk7Cisg
ICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgeSk7
CisgICAgICAgIFJhbmdlICAgICAgICAgICAgICBjYXJldFJhbmdlRnJvbVBvaW50KFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgeCwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCiAjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgIERPTVNl
bGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIGNoYXJh
Y3RlclNldDsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7CiAKICAgICAgICAgLy8gV2ViS2l0
IGV4dGVuc2lvbnMKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIHByZWZlcnJlZFN0eWxlc2hlZXRTZXQ7Ci0gICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0ZWRTdHlsZXNoZWV0U2V0Owor
ICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHByZWZlcnJlZFN0eWxlc2hlZXRTZXQ7CisgICAgICAgICAgICAgICAgIFtU
cmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0
dHJpYnV0ZSBET01TdHJpbmcgc2VsZWN0ZWRTdHlsZXNoZWV0U2V0OwogCiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJUFQKICAgICAgICAgQ1NT
U3R5bGVEZWNsYXJhdGlvbiBjcmVhdGVDU1NTdHlsZURlY2xhcmF0aW9uKCk7CiAjZW5kaWYKIAog
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVVORE9fTUFOQUdFUl0gVW5k
b01hbmFnZXIgdW5kb01hbmFnZXI7CisgICAgICAgIFtDb25kaXRpb25hbD1VTkRPX01BTkFHRVJd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBVbmRvTWFuYWdlciB1bmRvTWFuYWdlcjsKICNlbmRpZgogCiAj
aWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MK
QEAgLTIzMSw3ICsyMzAsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsK
ICAgICAgICAgW09iakNVc2VEZWZhdWx0Vmlld10gQ1NTUnVsZUxpc3QgZ2V0TWF0Y2hlZENTU1J1
bGVzKGluIEVsZW1lbnQgZWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBhdXRob3JPbmx5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIGF1dGhvck9ubHkpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNlbmRpZgogCkBAIC0y
NDIsNyArMjQxLDcgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmCiAKICAgICAgICAgLy8gSFRNTCA1
Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHRhZ25hbWUpOworICAgICAgICBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyB0YWduYW1lKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNvbXBhdE1vZGU7CiAKQEAgLTI1NCwxOSArMjUzLDE5IEBAIG1vZHVsZSBjb3JlIHsKIAogI2lm
IGRlZmluZWQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAmJiBFTkFCTEVfRlVMTFNDUkVFTl9BUEkK
ICAgICAgICAgLy8gTW96aWxsYSB2ZXJzaW9uCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
VjhFbmFibGVkQXRSdW50aW1lXSBib29sZWFuIHdlYmtpdElzRnVsbFNjcmVlbjsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Via2l0RnVs
bFNjcmVlbktleWJvYXJkSW5wdXRBbGxvd2VkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1Y4RW5hYmxlZEF0UnVudGltZV0gRWxlbWVudCB3ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1l
bnQ7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHdlYmtpdElzRnVsbFNjcmVlbjsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0RnVsbFNjcmVlbktleWJvYXJkSW5wdXRBbGxv
d2VkOworICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUgRWxl
bWVudCB3ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQ7CiAgICAgICAgIFtWOEVuYWJsZWRB
dFJ1bnRpbWVdIHZvaWQgd2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogCiAgICAgICAgIC8vIFcz
QyB2ZXJzaW9uCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1l
XSBib29sZWFuIHdlYmtpdEZ1bGxzY3JlZW5FbmFibGVkOwotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gRWxlbWVudCB3ZWJraXRGdWxsc2NyZWVuRWxlbWVu
dDsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gd2Via2l0RnVsbHNjcmVlbkVuYWJsZWQ7CisgICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IHdlYmtpdEZ1bGxzY3JlZW5FbGVtZW50OwogICAg
ICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSB2b2lkIHdlYmtpdEV4aXRGdWxsc2NyZWVuKCk7CiAj
ZW5kaWYKIAogICAgICAgICBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1
bnRpbWU9cG9pbnRlckxvY2tdIHZvaWQgd2Via2l0RXhpdFBvaW50ZXJMb2NrKCk7Ci0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRB
dFJ1bnRpbWU9cG9pbnRlckxvY2tdIEVsZW1lbnQgd2Via2l0UG9pbnRlckxvY2tFbGVtZW50Owor
ICAgICAgICBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9cG9p
bnRlckxvY2tdIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IHdlYmtpdFBvaW50ZXJMb2NrRWxl
bWVudDsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05TKSAmJiBFTkFCTEVfQ1NTX1JF
R0lPTlMKICAgICAgICAgV2ViS2l0TmFtZWRGbG93IHdlYmtpdEdldEZsb3dCeU5hbWUoaW4gRE9N
U3RyaW5nIG5hbWUpOwpAQCAtMjc0LDkzICsyNzMsOTMgQEAgbW9kdWxlIGNvcmUgewogCiAjaWYg
IWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwog
ICAgICAgICAvLyBFdmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCi0gICAgICAgIGF0dHJpYnV0
ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmFib3J0OwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25ibHVyOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNsaWNrOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jb250ZXh0bWVudTsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZGJsY2xpY2s7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWc7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdlbmQ7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdl
bnRlcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
ZHJhZ2xlYXZlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25kcmFnb3ZlcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExp
c3RlbmVyIG9uZHJhZ3N0YXJ0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25kcm9wOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9uZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbmlucHV0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RF
bnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ua2V5dXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxvYWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlZG93bjsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3ZlOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW91dDsKLSAgICAgICAg
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2VvdmVyOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXVwOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXdo
ZWVsOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25y
ZWFkeXN0YXRlY2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25zY3JvbGw7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnNlbGVjdDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9uc3VibWl0OwotCi0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVy
YWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXk7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXl0aHJvdWdoOwotICAgICAgICAvLyBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5nZTsK
LSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZW1w
dGllZDsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVy
IG9uZW5kZWQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0
ZW5lciBvbmxvYWRlZGRhdGE7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1ldGFkYXRhOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7Ci0gICAgICAgIC8vIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnBhdXNlOwotICAgICAgICAvLyBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25wbGF5OwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25wbGF5aW5nOwotICAg
ICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25wcm9ncmVz
czsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
cmF0ZWNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExp
c3RlbmVyIG9uc2Vla2VkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25zZWVraW5nOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25zaG93OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25zdGFsbGVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zdXNwZW5kOwotICAgICAgICAvLyBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb250aW1ldXBkYXRlOwotICAgICAgICAv
LyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb252b2x1bWVjaGFuZ2U7
Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbndh
aXRpbmc7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmFib3J0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25ibHVyOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25jaGFuZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbmNsaWNrOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25jb250ZXh0bWVudTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uZGJsY2xpY2s7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmRyYWc7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmRyYWdlbmQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmRyYWdlbnRlcjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2xlYXZlOworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnb3ZlcjsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ3N0YXJ0OworICAgICAgICBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcm9wOworICAgICAgICBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKyAgICAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OworICAgICAgICBb
Tm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsK
KyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ua2V5dXA7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNl
ZG93bjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bW91c2Vtb3ZlOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25tb3VzZW91dDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ubW91c2VvdmVyOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25tb3VzZXVwOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25tb3VzZXdoZWVsOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZWFkeXN0YXRlY2hhbmdlOworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zY3JvbGw7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlbGVjdDsKKyAgICAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc3VibWl0OworCisgICAgICAg
IC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXk7Cisg
ICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNhbnBs
YXl0aHJvdWdoOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25kdXJhdGlvbmNoYW5nZTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVd
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7CisgICAgICAgIC8vIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1ldGFkYXRhOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fk
c3RhcnQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbnBhdXNlOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25wbGF5OworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25wbGF5aW5nOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25wcm9ncmVzczsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmF0ZWNoYW5nZTsKKyAgICAgICAgLy8gW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2Vla2VkOworICAgICAgICAvLyBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWVraW5nOworICAgICAgICAv
LyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zaG93OworICAgICAg
ICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdGFsbGVkOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdXNw
ZW5kOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b250aW1ldXBkYXRlOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb252b2x1bWVjaGFuZ2U7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRy
aWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndhaXRpbmc7CiAKICAgICAgICAgLy8gV2ViS2l0IGV4dGVu
c2lvbnMKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
YmVmb3JlY3V0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25jdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmJlZm9yZWNvcHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbmNvcHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbmJlZm9yZXBhc3RlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25wYXN0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxl
XSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZV0gRXZlbnRMaXN0ZW5lciBvbnNlYXJjaDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJh
YmxlXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdGlvbmNoYW5nZTsKLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRB
dFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaHN0YXJ0OwotICAgICAgICBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGlt
ZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50
TGlzdGVuZXIgb250b3VjaGVuZDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLENv
bmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIg
b250b3VjaGNhbmNlbDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRp
b25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRMaXN0ZW5lciBvbndlYmtpdGZ1bGxzY3JlZW5jaGFu
Z2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9RlVMTFND
UkVFTl9BUEldIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVuZXJyb3I7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVu
YWJsZWRBdFJ1bnRpbWU9cG9pbnRlckxvY2tdIEV2ZW50TGlzdGVuZXIgb253ZWJraXRwb2ludGVy
bG9ja2NoYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25h
bD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVyTG9ja10gRXZlbnRMaXN0
ZW5lciBvbndlYmtpdHBvaW50ZXJsb2NrZXJyb3I7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJlZm9yZWN1dDsKKyAgICAgICAgW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY3V0OworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjb3B5OworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb3B5OworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVwYXN0ZTsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucGFzdGU7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlc2V0OworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CisgICAg
ICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlbGVjdHN0YXJ0
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWxl
Y3Rpb25jaGFuZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VW
RU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hz
dGFydDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4
RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaG1vdmU7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRB
dFJ1bnRpbWVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hlbmQ7CisgICAgICAgIFtO
b3RFbnVtZXJhYmxlLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVd
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udG91Y2hjYW5jZWw7CisgICAgICAgIFtOb3RFbnVt
ZXJhYmxlLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb253ZWJraXRmdWxsc2NyZWVuY2hhbmdlOworICAgICAgICBbTm90RW51bWVyYWJsZSwgQ29u
ZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEldIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0
ZnVsbHNjcmVlbmVycm9yOworICAgICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9UE9J
TlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9cG9pbnRlckxvY2tdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ud2Via2l0cG9pbnRlcmxvY2tjaGFuZ2U7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlLCBDb25kaXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGltZT1wb2ludGVy
TG9ja10gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRwb2ludGVybG9ja2Vycm9yOwog
I2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIEVOQUJMRV9UT1VD
SF9FVkVOVFMKLSAgICAgICAgW1JldHVybk5ld09iamVjdCwgVjhFbmFibGVkQXRSdW50aW1lXSBU
b3VjaCBjcmVhdGVUb3VjaChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01XaW5k
b3cgd2luZG93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRXZlbnRUYXJnZXQg
dGFyZ2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBpZGVudGlmaWVy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBwYWdlWCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgcGFnZVksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBsb25nIHNjcmVlblgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBsb25nIHNjcmVlblksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25n
IHdlYmtpdFJhZGl1c1gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHdl
YmtpdFJhZGl1c1ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB3ZWJr
aXRSb3RhdGlvbkFuZ2xlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQg
d2Via2l0Rm9yY2UpCisgICAgICAgIFtSZXR1cm5OZXdPYmplY3QsIFY4RW5hYmxlZEF0UnVudGlt
ZV0gVG91Y2ggY3JlYXRlVG91Y2goW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
V2luZG93IHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEV2ZW50VGFy
Z2V0IHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaWRlbnRp
ZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgcGFnZVgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHBhZ2VZLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzY3JlZW5YLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gbG9uZyBzY3JlZW5ZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
bG9uZyB3ZWJraXRSYWRpdXNYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9u
ZyB3ZWJraXRSYWRpdXNZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQg
d2Via2l0Um90YXRpb25BbmdsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHdlYmtpdEZvcmNlKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAg
ICAgICBbUmV0dXJuTmV3T2JqZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWUsIEN1c3RvbV0gVG91Y2hM
aXN0IGNyZWF0ZVRvdWNoTGlzdCgpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CkBAIC0zNzIsOSArMzcxLDkgQEAgbW9kdWxlIGNvcmUgewogI2VuZGlmCiAKICAgICAgICAgLy8g
UGFnZSB2aXNpYmlsaXR5IEFQSS4KLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSBET01TdHJpbmcgd2Via2l0VmlzaWJpbGl0eVN0YXRl
OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElU
WV9BUEldIGJvb2xlYW4gd2Via2l0SGlkZGVuOworICAgICAgICBbQ29uZGl0aW9uYWw9UEFHRV9W
SVNJQklMSVRZX0FQSV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB3ZWJraXRWaXNpYmls
aXR5U3RhdGU7CisgICAgICAgIFtDb25kaXRpb25hbD1QQUdFX1ZJU0lCSUxJVFlfQVBJXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRIaWRkZW47CiAKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmluZGV4IDg4MmI2MmRiMzllYjdm
MmUwNTA0NzgyMDQ5MmI3ZTkzNjFhOGVkZWQuLjhmMzA3MWQ5MDlmODkwNzJjYmE0MzA2NWNiMThl
NWM1OWExM2M4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKQEAg
LTI3LDQgKzI3LDQgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudFR5cGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlwZS5pZGwKaW5k
ZXggNzI5MDIzMjcxZjI3NWY3YzI0NjVmZDExN2NlNDAxMDNhM2I4NGIyYy4uZmEyYTA2NzM4YzUy
NDBkOWY1MDIyZGZkYzU5MWE3MTFjMDVmMjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50VHlwZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50VHlw
ZS5pZGwKQEAgLTE5LDkgKzE5LDkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAotICAgIF0gRG9jdW1l
bnRUeXBlIDogTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgRG9jdW1lbnRUeXBlIDogTm9kZSB7CiAK
ICAgICAgICAgLy8gRE9NIExldmVsIDEKIApAQCAtMzEsMTAgKzMxLDEwIEBAIG1vZHVsZSBjb3Jl
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMgogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgcHVibGljSWQ7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgc3lzdGVtSWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaW50ZXJuYWxTdWJzZXQ7ICAgICAg
ICAKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBwdWJsaWNJZDsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzeXN0ZW1JZDsKKyAgICAg
ICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBpbnRlcm5hbFN1YnNldDsgICAgICAgIAogCiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmlkbAppbmRleCBmZGY2ZjM2MDY2OWVhYzcwYTNlNjAzZjY1ZTVhMzBiMTczOWFk
NTJlLi40YzhmMDE2M2RlYjRiNDUyOTA0MGQxODBiZjhkN2VkZmUwZjA5NDA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaWRsCkBAIC0yMCw0NiArMjAsNDYgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAg
ICAgICAgSlNJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QKLSAgICBdIEVsZW1lbnQgOiBOb2RlIHsK
KyAgICBdIGludGVyZmFjZSBFbGVtZW50IDogTm9kZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVs
IDEgQ29yZQogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSBET01TdHJpbmcgdGFnTmFtZTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YWdOYW1lOwog
Ci0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBnZXRB
dHRyaWJ1dGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUp
OwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHNldEF0dHJpYnV0
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHZhbHVlKQorICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gdm9pZCBzZXRBdHRyaWJ1dGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB2YWx1ZSkK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHJlbW92ZUF0
dHJpYnV0ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7
Ci0gICAgICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIEF0dHIgc2V0QXR0cmlidXRlTm9kZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBBdHRyIG5ld0F0dHIpCisgICAgICAgIHZv
aWQgcmVtb3ZlQXR0cmlidXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyBuYW1lKTsKKyAgICAgICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2RlKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgQXR0ciBzZXRBdHRy
aWJ1dGVOb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEF0dHIgbmV3QXR0cikK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBBdHRyIHJlbW92ZUF0
dHJpYnV0ZU5vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gQXR0ciBvbGRBdHRy
KQorICAgICAgICBBdHRyIHJlbW92ZUF0dHJpYnV0ZU5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gQXR0ciBvbGRBdHRyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0
RWxlbWVudHNCeVRhZ05hbWUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIG5hbWUpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIENvcmUKIAotICAgICAgICBbT2Jq
Q0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlTlMoaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2Fs
TmFtZSk7Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgc2V0QXR0
cmlidXRlTlMoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0
cmluZyBxdWFsaWZpZWROYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdmFsdWUp
CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIERPTVN0cmluZyBnZXRBdHRy
aWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVy
c10gdm9pZCBzZXRBdHRyaWJ1dGVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyB2YWx1ZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKGlu
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAg
ICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2Nh
bE5hbWUpOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICAgICAgW09iakNM
ZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gQXR0ciBnZXRBdHRyaWJ1dGVOb2RlTlMoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbG9jYWxOYW1l
KTsKLSAgICAgICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlTlMoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gQXR0ciBuZXdBdHRyKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbG9jYWxOYW1l
KTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gQXR0ciBnZXRBdHRyaWJ1
dGVOb2RlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICAgICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlTlMoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gQXR0ciBuZXdBdHRyKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaGFzQXR0cmlidXRlKGluIERP
TVN0cmluZyBuYW1lKTsKLSAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gYm9v
bGVhbiBoYXNBdHRyaWJ1dGVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1l
ZFBhcmFtZXRlcnNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogCkBAIC04MSwy
MCArODEsMjAgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIHZvaWQgZm9jdXMoKTsKICAgICAg
ICAgdm9pZCBibHVyKCk7Ci0gICAgICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXcoaW4gW09wdGlvbmFs
XSBib29sZWFuIGFsaWduV2l0aFRvcCk7CisgICAgICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXcoW09w
dGlvbmFsXSBpbiBib29sZWFuIGFsaWduV2l0aFRvcCk7CiAKICAgICAgICAgLy8gV2ViS2l0IGV4
dGVuc2lvbnMKIAotICAgICAgICB2b2lkIHNjcm9sbEludG9WaWV3SWZOZWVkZWQoaW4gW09wdGlv
bmFsXSBib29sZWFuIGNlbnRlcklmTmVlZGVkKTsKLSAgICAgICAgdm9pZCBzY3JvbGxCeUxpbmVz
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgbGluZXMpOwotICAgICAgICB2
b2lkIHNjcm9sbEJ5UGFnZXMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBw
YWdlcyk7CisgICAgICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChbT3B0aW9uYWxdIGlu
IGJvb2xlYW4gY2VudGVySWZOZWVkZWQpOworICAgICAgICB2b2lkIHNjcm9sbEJ5TGluZXMoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBsaW5lcyk7CisgICAgICAgIHZvaWQg
c2Nyb2xsQnlQYWdlcyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHBhZ2Vz
KTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICYmIEVOQUJMRV9BTklNQVRJ
T05fQVBJCiAgICAgICAgIFdlYktpdEFuaW1hdGlvbkxpc3Qgd2Via2l0R2V0QW5pbWF0aW9ucygp
OwogI2VuZGlmCiAKICAgICAgICAgLy8gSFRNTCA1Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1l
bnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IG5hbWUpOworICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKIAogI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTWFwIGRhdGFzZXQ7CkBAIC0xMDcsNyArMTA3LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAg
ICAgLy8gV2ViS2l0IGV4dGVuc2lvbiwgcGVuZGluZyBzcGVjaWZpY2F0aW9uLgotICAgICAgICBi
b29sZWFuIHdlYmtpdE1hdGNoZXNTZWxlY3RvcihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcgc2VsZWN0b3JzKQorICAgICAgICBib29sZWFuIHdlYmtpdE1hdGNoZXNT
ZWxlY3RvcihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgc2VsZWN0
b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gRWxl
bWVudFRyYXZlcnNhbCBBUEkKQEAgLTEzMSw3ICsxMzEsNyBAQCBtb2R1bGUgY29yZSB7CiAjaWYg
ZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQog
ICAgICAgICAvLyBNb3ppbGxhIHZlcnNpb24KICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
QUxMT1dfS0VZQk9BUkRfSU5QVVQgPSAxOwotICAgICAgICBbVjhFbmFibGVkQXRSdW50aW1lXSB2
b2lkIHdlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0g
dm9pZCB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiB1bnNpZ25lZCBzaG9ydCBmbGFncyk7CiAKICAgICAgICAgLy8gVzNDIHZlcnNpb24KICAg
ICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gdm9pZCB3ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbigp
OwpAQCAtMTQ0LDc3ICsxNDQsNzcgQEAgbW9kdWxlIGNvcmUgewogCiAjaWYgIWRlZmluZWQoTEFO
R1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBF
dmVudCBoYW5kbGVyIERPTSBhdHRyaWJ1dGVzCi0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVy
YWJsZV0gRXZlbnRMaXN0ZW5lciBvbmFib3J0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25ibHVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNsaWNrOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25jb250ZXh0bWVudTsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZGJsY2xpY2s7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWc7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdlbmQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdlbnRlcjsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZHJhZ2xlYXZlOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnb3Zl
cjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZHJh
Z3N0YXJ0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25kcm9wOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVy
IG9uZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmlucHV0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25pbnZhbGlkOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlz
dGVuZXIgb25rZXlkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25rZXlwcmVzczsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9ua2V5dXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbmxvYWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbm1vdXNlZG93bjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJh
YmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3ZlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW91dDsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2VvdmVyOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXVwOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXdoZWVsOwotICAgICAg
ICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zY3JvbGw7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdDsKLSAg
ICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc3VibWl0Owot
Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmNh
bnBsYXk7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmNhbnBsYXl0aHJvdWdoOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5nZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZW1wdGllZDsKLSAgICAgICAgLy8gYXR0cmli
dXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZW5kZWQ7Ci0gICAgICAgIC8vIGF0
dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZGRhdGE7Ci0gICAg
ICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1l
dGFkYXRhOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25sb2Fkc3RhcnQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnBhdXNlOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25wbGF5OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25wbGF5aW5nOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25wcm9ncmVzczsKLSAgICAgICAgLy8gYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ucmF0ZWNoYW5nZTsKLSAgICAgICAgLy8g
YXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ucmVhZHlzdGF0ZWNoYW5n
ZTsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
c2Vla2VkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVu
ZXIgb25zZWVraW5nOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25zaG93OwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25zdGFsbGVkOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25zdXNwZW5kOwotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb250aW1ldXBkYXRlOwotICAgICAgICAvLyBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb252b2x1bWVjaGFuZ2U7Ci0gICAgICAg
IC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbndhaXRpbmc7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFib3J0Owor
ICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25ibHVyOwor
ICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jaGFuZ2U7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsaWNr
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25jb250
ZXh0bWVudTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uZGJsY2xpY2s7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmRyYWc7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbmRyYWdlbmQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmRyYWdlbnRlcjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uZHJhZ2xlYXZlOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnb3ZlcjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ3N0YXJ0OworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcm9wOworICAgICAgICBbTm90RW51bWVyYWJs
ZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKKyAgICAgICAgW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmlucHV0OworICAgICAgICBbTm90RW51bWVy
YWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25pbnZhbGlkOworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOworICAgICAgICBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKKyAgICAgICAg
W05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ua2V5dXA7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNlZG93bjsKKyAg
ICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3Zl
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3Vz
ZW91dDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
bW91c2VvdmVyOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb25tb3VzZXVwOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb25tb3VzZXdoZWVsOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25zY3JvbGw7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnNlbGVjdDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9uc3VibWl0OworCisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXk7CisgICAgICAgIC8vIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNhbnBsYXl0aHJvdWdoOworICAgICAgICAv
LyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kdXJhdGlvbmNoYW5n
ZTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
ZW1wdGllZDsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uZW5kZWQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmxvYWRlZGRhdGE7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWRlZG1ldGFkYXRhOworICAgICAgICAvLyBbTm90RW51bWVy
YWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25sb2Fkc3RhcnQ7CisgICAgICAgIC8vIFtO
b3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBhdXNlOworICAgICAgICAv
LyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wbGF5OworICAgICAg
ICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wbGF5aW5nOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25wcm9n
cmVzczsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9ucmF0ZWNoYW5nZTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9ucmVhZHlzdGF0ZWNoYW5nZTsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGVd
IGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2Vla2VkOworICAgICAgICAvLyBbTm90RW51bWVy
YWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWVraW5nOworICAgICAgICAvLyBbTm90
RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zaG93OworICAgICAgICAvLyBb
Tm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdGFsbGVkOworICAgICAg
ICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdXNwZW5kOwor
ICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250aW1l
dXBkYXRlOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVu
ZXIgb252b2x1bWVjaGFuZ2U7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbndhaXRpbmc7CiAKICAgICAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMK
LSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYmVmb3Jl
Y3V0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25j
dXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmJl
Zm9yZWNvcHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmNvcHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5l
ciBvbmJlZm9yZXBhc3RlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50
TGlzdGVuZXIgb25wYXN0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVu
dExpc3RlbmVyIG9ucmVzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnNlYXJjaDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVy
YWJsZSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExp
c3RlbmVyIG9udG91Y2hzdGFydDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLENv
bmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxWOEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIg
b250b3VjaG1vdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSxDb25kaXRpb25h
bD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hl
bmQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VDSF9F
VkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hjYW5jZWw7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9RlVMTFNDUkVFTl9B
UEldIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVuY2hhbmdlOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBFdmVudExp
c3RlbmVyIG9ud2Via2l0ZnVsbHNjcmVlbmVycm9yOworICAgICAgICBbTm90RW51bWVyYWJsZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmVjdXQ7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmN1dDsKKyAgICAgICAgW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmVmb3JlY29weTsKKyAgICAgICAgW05vdEVu
dW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uY29weTsKKyAgICAgICAgW05vdEVu
dW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmVmb3JlcGFzdGU7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBhc3RlOworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25yZXNldDsKKyAgICAg
ICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2VhcmNoOworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFy
dDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5h
YmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaHN0YXJ0OworICAg
ICAgICBbTm90RW51bWVyYWJsZSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRS
dW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKKyAgICAgICAgW05v
dEVudW1lcmFibGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKKyAgICAgICAgW05vdEVudW1lcmFi
bGUsQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb250b3VjaGNhbmNlbDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIENv
bmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtp
dGZ1bGxzY3JlZW5jaGFuZ2U7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1G
VUxMU0NSRUVOX0FQSV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVu
ZXJyb3I7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VudGl0eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5LmlkbAppbmRleCBi
OWVjNDA2Yjk3NDdlMjJkNGQ3MGZiYjNjNjY5MTk2N2RiMWRkZDZlLi5jZTMzMWZjYzNkY2Y5MWI0
MjFmMTc5ZTY5N2M5NmM5OTFmYjAwYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RW50aXR5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5LmlkbApAQCAtMjAsOSAr
MjAsOSBAQAogbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIEVudGl0eSA6IE5vZGUgewot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVs
bF0gRE9NU3RyaW5nIHB1YmxpY0lkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIHN5c3RlbUlkOwotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3Ry
aW5nIG5vdGF0aW9uTmFtZTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVs
bF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwdWJsaWNJZDsKKyAgICAgICAgW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBz
eXN0ZW1JZDsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBub3RhdGlvbk5hbWU7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKaW5kZXggZjY1MmQ5YWRmNzY5ZmJiZjhk
ZTAxYTVlMGQ3OGNmMjg2ZTVhMjljOS4uYWJiNzU1N2ZlYTk4ZDA3ZmNiNTI3ZDhiMzA5NGVmNjk5
M2U5ZTZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VudGl0eVJlZmVyZW5jZS5pZGwKQEAgLTIyLDQg
KzIyLDQgQEAgbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBFbnRpdHlSZWZlcmVuY2UgOiBO
b2RlIHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vy
cm9yRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaWRsCmluZGV4IDJh
MGMyYzUxNDU1NWUxODA3ZDFkM2ZlOWEyOWVmNTNmYTY1OWFjZDYuLjQ1NGQwZGVkMDg1OTI4OWJl
NDI0MjVkZWMxOTNhZTgyOGFmOTE4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
cnJvckV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5pZGwKQEAg
LTMwLDEzICszMCwxMyBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDb25zdHJ1Y3RvclRlbXBs
YXRlPUV2ZW50Ci0gICAgXSBFcnJvckV2ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgbWVzc2Fn
ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gRE9NU3RyaW5nIGZpbGVuYW1lOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0lu
aXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSB1bnNpZ25lZCBsb25nIGxpbmVubzsKKyAgICBd
IGludGVyZmFjZSBFcnJvckV2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKKyAg
ICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGZpbGVuYW1lOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0
b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxpbmVubzsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5pZGwKaW5kZXggYWIwMzlkMDdmNDNkYTY3YTkyODUyOWU3NjZiOThh
MGQyYTkzNTk3YS4uYjExODhhOWU1OTA5MzI0MjcyNmVjZWUzZTkzNjUwN2M5MDBiZmYzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsCkBAIC0yMSwxMiArMjEsMTIgQEAKIG1vZHVsZSBldmVudHMgewogCiAg
ICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1F
dmVudCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgT2JqQ1BvbHltb3JwaGlj
Ci0gICAgXSBFdmVudCB7CisgICAgXSBpbnRlcmZhY2UgRXZlbnQgewogCiAgICAgICAgIC8vIERP
TSBQaGFzZVR5cGUKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9ORSAgICAgICAgICAg
ICAgICA9IDA7CkBAIC01OCwxNSArNTgsMTUgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBFdmVudFRhcmdldCAgICAgIHRhcmdldDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0ICAgICAgY3VycmVudFRhcmdldDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgZXZlbnRQaGFzZTsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gYm9vbGVhbiBi
dWJibGVzOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSBib29sZWFuIGNhbmNlbGFibGU7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZl
bnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYnViYmxlczsKKyAgICAg
ICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBjYW5jZWxhYmxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1w
ICAgICB0aW1lU3RhbXA7CiAKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHN0b3BQcm9wYWdh
dGlvbigpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQoKTsKLSAg
ICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBpbml0RXZlbnQoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGV2ZW50VHlwZUFyZywgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBj
YW5jZWxhYmxlQXJnKTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9p
ZCBpbml0RXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGV2
ZW50VHlwZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnKTsKIAogICAgICAgICAvLyBET00gTGV2ZWwg
MyBBZGRpdGlvbnMuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGRlZmF1bHRQ
cmV2ZW50ZWQ7CkBAIC03OCw3ICs3OCw3IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBjYW5jZWxCdWJibGU7CiAKICNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIENsaXBib2FyZCAgICAgICAgY2xpcGJvYXJkRGF0
YTsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRlIENsaXBib2FyZCAgICAgICAg
Y2xpcGJvYXJkRGF0YTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9DUFApICYmIExB
TkdVQUdFX0NQUApAQCAtODksNCArODksNCBAQCBtb2R1bGUgZXZlbnRzIHsKIAogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAppbmRleCA5ZDEwNWNiZmNl
ZDVhM2Y0ZmU2ZWVmM2MzYjQ0MzY2NDZjNjI4YTI3Li5mNjdlYzBmMjNhZmQ4YWFhZjk0MDcxZDg5
OTc3NzNjNDBhMGNiY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRFeGNl
cHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwKQEAg
LTI5LDEwICsyOSwxMCBAQAogbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCAyOgotICAgIGV4Y2VwdGlvbiBbCisgICAgWwogICAgICAgICBKU05vU3RhdGlj
VGFibGVzLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBFdmVudEV4Y2VwdGlv
biB7CisgICAgXSBleGNlcHRpb24gRXZlbnRFeGNlcHRpb24gewogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CkBAIC00OCw0ICs0OCw0IEBAIG1vZHVsZSBldmVu
dHMgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBESVNQQVRDSF9SRVFVRVNUX0VSUiA9
IDE7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dExpc3RlbmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmlkbAppbmRl
eCA0ZTgzYjQ0MGNhOWFiNzdiNzk1ZTlkYjJiMTI5NGJlMTMxZTViNzcyLi45ZGY3ODQyYjYyMjdl
ZTQ0MmI1YWFlMDdmZDkyMmZmZWIxZDJjZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRMaXN0ZW5lci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVu
ZXIuaWRsCkBAIC0yMSwxMyArMjEsMTMgQEAKIG1vZHVsZSBldmVudHMgewogCiAgICAgLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBDUFBQdXJl
SW50ZXJmYWNlLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIEV2ZW50TGlzdGVuZXIg
eworICAgIF0gaW50ZXJmYWNlIEV2ZW50TGlzdGVuZXIgewogICAgICAgICB2b2lkICAgICAgICAg
ICAgICAgaGFuZGxlRXZlbnQoaW4gRXZlbnQgZXZ0KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5pZGwKaW5kZXggYmQ5OGQwNDQ4NDNhOTE4M2IyMTc2NWRiMzJlYmRh
NzlhYzM2MjEzNi4uNDZkZjk4MzRlNWI4ODU0NjQxMzc4NzBiZDEzNDQ0NjE2Y2UzNjI1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaWRsCkBAIC0yMSwyMSArMjEsMjEgQEAKIG1vZHVsZSBl
dmVudHMgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBDUFBQdXJlSW50ZXJm
YWNlLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIEpTQ3VzdG9tVG9KU09iamVj
dCwKICAgICAgICAgSlNDdXN0b21Ub05hdGl2ZU9iamVjdAotICAgIF0gRXZlbnRUYXJnZXQgewor
ICAgIF0gaW50ZXJmYWNlIEV2ZW50VGFyZ2V0IHsKICAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1
cmUpOwogICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIHJlbW92ZUV2
ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldmVudCkKICAgICAgICAgICAgIHJhaXNl
cyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9IYXNoQ2hhbmdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hD
aGFuZ2VFdmVudC5pZGwKaW5kZXggNmM4MGE5NTdmNmE5YzE3MThmM2VmOGIyMjQzMWM0MDBiZGNh
MjQ2My4uYTBiNTgxNDEyODg3ZGNkYjhhOWNkYTAxZGY4ODlhOWE0NTZkZDZhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwKQEAgLTIwLDE2ICsyMCwxNiBAQAogbW9kdWxl
IGV2ZW50cyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2hpc3RvcnkuaHRtbCNldmVudC1o
YXNoY2hhbmdlCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVt
cGxhdGU9RXZlbnQKLSAgICBdIEhhc2hDaGFuZ2VFdmVudCA6IEV2ZW50IHsKLSAgICAgICAgdm9p
ZCBpbml0SGFzaENoYW5nZUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJv
b2xlYW4gY2FuY2VsYWJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgb2xkVVJMLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IERPTVN0cmluZyBuZXdVUkwpOyAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFs
aXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIG9sZFVSTDsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIG5l
d1VSTDsKKyAgICBdIGludGVyZmFjZSBIYXNoQ2hhbmdlRXZlbnQgOiBFdmVudCB7CisgICAgICAg
IHZvaWQgaW5pdEhhc2hDaGFuZ2VFdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBET01TdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG9sZFVSTCwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBET01TdHJpbmcgbmV3VVJMKTsgCisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25z
dHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRVUkw7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBuZXdVUkw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9LZXlib2FyZEV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50Lmlk
bAppbmRleCAyYzJiN2JhMTExZTcwMTMyYTEyYWI4NGEyMzk0MjRiMmU1NTJkYzk5Li43ODMyZjM0
MWE1MTBiM2MxNGEyMjQ2YTZiY2QwYzJhZTgyNjFhZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJv
YXJkRXZlbnQuaWRsCkBAIC00MCwzOSArNDAsMzkgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGFsdEdyYXBoS2V5OwogCiAjaWYg
IWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJUFQKLSAg
ICAgICAgYm9vbGVhbiBnZXRNb2RpZmllclN0YXRlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBrZXlJZGVudGlmaWVyQXJnKTsKKyAgICAgICAgYm9vbGVhbiBnZXRN
b2RpZmllclN0YXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBr
ZXlJZGVudGlmaWVyQXJnKTsKICNlbmRpZgogCiAgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRvZXMg
bm90IG1hdGNoIHRoZSB2ZXJzaW9uIGluIHRoZSBET00gc3BlYy4KLSAgICAgICAgdm9pZCBpbml0
S2V5Ym9hcmRFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
dHlwZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGUsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2Vs
YWJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93IHZpZXcsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBrZXlJZGVu
dGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcga2V5TG9jYXRpb24sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVh
biBjdHJsS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gYWx0S2V5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2hpZnRL
ZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gYm9vbGVhbiBtZXRhS2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gYWx0R3JhcGhLZXkp
OworICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgdmlldywgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIGtleUlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBrZXlMb2Nh
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBib29sZWFuIGN0cmxLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBhbHRLZXksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gYm9vbGVhbiBzaGlmdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIG1ldGFLZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
Ym9vbGVhbiBhbHRHcmFwaEtleSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKICNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAg
ICAgCi0gICAgICAgIHZvaWQgaW5pdEtleWJvYXJkRXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBib29sZWFuIGNhbmNlbGFibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2aWV3LCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01TdHJpbmcga2V5SWRlbnRpZmllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGtleUxv
Y2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY3RybEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGFsdEtleSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBib29sZWFuIHNoaWZ0S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gbWV0YUtleSk7CisgICAg
ICAgIHZvaWQgaW5pdEtleWJvYXJkRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRE9NU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBi
b29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVdpbmRvdyB2aWV3LCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcga2V5SWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGtleUxvY2F0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGFsdEtleSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBi
b29sZWFuIHNoaWZ0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gbWV0YUtleSk7CiAjZW5kaWYKIAogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUNoYW5u
ZWwuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbAppbmRleCBkMjFl
YjExNDIxYjAwYmMwZTdmZmY4NWFiZjM2MDBiYmI2NTdiNDNjLi5jYzNmODhiODllYjFjZjgxMWVi
ZmI1NDNhNzEzZTAxNGZjODc1NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVz
c2FnZUNoYW5uZWwuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5p
ZGwKQEAgLTI2LDE3ICsyNiwxNyBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvciwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCwKICAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIE1l
c3NhZ2VDaGFubmVsIHsKKyAgICBdIGludGVyZmFjZSBNZXNzYWdlQ2hhbm5lbCB7CiAKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0IHBvcnQxOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDI7CiAKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTWVzc2FnZUV2ZW50LmlkbAppbmRleCBjODM1NmVkNjBjMTEyYjM1Y2ZmMzAwZWIzYTQw
ZjI1MmVmY2FhY2Y4Li4zOWIwNzM0OTFlNDUxZTUwZTFiYTc3Y2YwNzk1NDcyYjY4YTA4NmY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmlkbApAQCAtMjcsMzQgKzI3LDM0IEBACiAKIG1v
ZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTTm9TdGF0
aWNUYWJsZXMsCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIE1lc3Nh
Z2VFdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXpl
ZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIG9yaWdpbjsKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gRE9NU3RyaW5nIGxhc3RF
dmVudElkOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSBET01XaW5kb3cgc291cmNlOworICAgIF0gaW50ZXJmYWNlIE1lc3NhZ2VFdmVu
dCA6IEV2ZW50IHsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG9yaWdpbjsKKyAgICAgICAgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhc3RFdmVudElk
OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01XaW5kb3cgc291cmNlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
JiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yLCBDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0g
RE9NT2JqZWN0IGRhdGE7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRC
eUV2ZW50Q29uc3RydWN0b3IsIEN1c3RvbUdldHRlcl0gQXJyYXkgcG9ydHM7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvciwgQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0
ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01PYmplY3QgZGF0YTsKKyAgICAgICAgW0luaXRpYWxp
emVkQnlFdmVudENvbnN0cnVjdG9yLCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
cnJheSBwb3J0czsKIAotICAgICAgICBbQ3VzdG9tXSB2b2lkIGluaXRNZXNzYWdlRXZlbnQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGVBcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBj
YW5jZWxhYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTU9iamVjdCBkYXRhQXJnLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyBvcmlnaW5BcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IGxhc3RFdmVudElkQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyBzb3VyY2VBcmcsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gQXJyYXkgbWVzc2FnZVBvcnRzKTsKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCBpbml0TWVzc2FnZUV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0
cmluZyB0eXBlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01P
YmplY3QgZGF0YUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgb3JpZ2luQXJnLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBsYXN0RXZlbnRJZEFyZywgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01XaW5kb3cgc291cmNlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEFycmF5IG1lc3NhZ2VQb3J0cyk7
CiAKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB3ZWJraXRJbml0TWVzc2FnZUV2ZW50KGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBlQXJnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gYm9vbGVhbiBjYW5CdWJibGVBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29s
ZWFuIGNhbmNlbGFibGVBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01PYmplY3QgZGF0YUFy
ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBvcmlnaW5BcmcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBET01TdHJpbmcgbGFzdEV2ZW50SWRBcmcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01XaW5kb3cgc291cmNlQXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gQXJyYXkgdHJhbnNm
ZXJhYmxlcyk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgd2Via2l0SW5pdE1lc3NhZ2VFdmVudChb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZUFyZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NT2JqZWN0
IGRhdGFBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgb3JpZ2luQXJnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGxhc3RFdmVudElkQXJnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NV2luZG93IHNvdXJjZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEFycmF5
IHRyYW5zZmVyYWJsZXMpOwogI2Vsc2UKICAgICAgICAgLy8gQ29kZSBnZW5lcmF0b3IgZm9yIE9i
akMgYmluZGluZ3MgZG9lcyBub3Qgc3VwcG9ydCBjdXN0b20gYmluZGluZ3MsIHRodXMgdGhlcmUg
aXMgbm8gZ29vZCB3YXkgdG8KICAgICAgICAgLy8gcmV0dXJuIGEgdmFyaWFudCB2YWx1ZS4gQXMg
d29ya2Fyb3VuZCwgZXhwb3NlIHRoZSBkYXRhIGF0dHJpYnV0ZSBhcyBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuCkBAIC02MywxNiArNjMsMTYgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIC8vIFRo
ZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gZXhwb3NlIGFuIGFycmF5IHZpYSB0aGUgT2JqQyBiaW5kaW5n
cywgc28gZm9yIG5vdyBqdXN0IGV4cG9zZSBhIHNpbmdsZSBwb3J0LgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgbWVzc2FnZVBvcnQ7CiAKLSAgICAgICAgdm9pZCBpbml0
TWVzc2FnZUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0
eXBlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2Fu
Y2VsYWJsZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgZGF0YUFyZywgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgb3JpZ2luQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBsYXN0RXZlbnRJZEFyZywg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01XaW5kb3cgc291cmNlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE1lc3NhZ2VQb3J0IG1lc3NhZ2VQ
b3J0KTsKKyAgICAgICAgdm9pZCBpbml0TWVzc2FnZUV2ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlQXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxl
QXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgZGF0YUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgb3JpZ2luQXJnLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyBsYXN0RXZlbnRJZEFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgc291cmNlQXJnLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIE1lc3NhZ2VQb3J0IG1lc3NhZ2VQb3J0KTsKICNlbmRpZgogCiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaWRsCmluZGV4IGYzMThmNzk4NzQ5OTMwMTkyMDg4MDJh
ODliMjAyMjZjZjlmOGU1Y2UuLmMyZWZlYWIxNGI4MTU2ZTcyNjc3OTg2NGIzMDViYTkxMWRiMjQ0
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbApAQCAtMjcsMTkgKzI3LDE5IEBACiAK
IG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3Vz
dG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbCwKICAg
ICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlNO
b1N0YXRpY1RhYmxlcwotICAgIF0gTWVzc2FnZVBvcnQgeworICAgIF0gaW50ZXJmYWNlIE1lc3Nh
Z2VQb3J0IHsKIC8vIFdlIG5lZWQgdG8gaGF2ZSBzb21ldGhpbmcgYXMgYW4gT2JqQyBiaW5kaW5n
LCBiZWNhdXNlIE1lc3NhZ2VQb3J0IGlzIHVzZWQgaW4gTWVzc2FnZUV2ZW50LCB3aGljaCBhbHJl
YWR5IGhhcyBvbmUsCiAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBhY3R1YWxseSBleHBvc2UgdGhl
IEFQSSB3aGlsZSBpdCBpcyBpbiBmbHV4LgogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICBbQ3VzdG9tXSB2b2lkIHBvc3RNZXNz
YWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIEFycmF5IG1lc3NhZ2VQb3J0
cykKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2Fn
ZSwgW09wdGlvbmFsXSBpbiBBcnJheSBtZXNzYWdlUG9ydHMpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShp
biBET01TdHJpbmcgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBBcnJheSB0cmFuc2ZlcikKKyAgICAg
ICAgW0N1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwg
W09wdGlvbmFsXSBpbiBBcnJheSB0cmFuc2ZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgICAgICB2b2lkIHN0YXJ0KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoKTsKQEAg
LTUwLDEzICs1MCwxMyBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgLy8gRXZlbnRUYXJnZXQg
aW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlw
ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3Rl
bmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVh
biB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0g
aW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVy
KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2Vz
KEV2ZW50RXhjZXB0aW9uKTsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5pZGwKaW5kZXggYzFlZmJiNDY2YmE3MjYzZjUxOGMxODJhZWE5MDM2YWNmMzFlYTJk
My4uOWY5NDg2YjhlNmY4OTlhOWY2MTIxZDJkYzliNjQ4ZWE2NmExMTNlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZUV2ZW50LmlkbApAQCAtMjUsOCArMjUsOCBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgc2NyZWVuWTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgY2xpZW50WDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgY2xpZW50WTsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1QT0lOVEVSX0xPQ0ssIFY4RW5hYmxlZEF0UnVudGlt
ZT1wb2ludGVyTG9ja10gbG9uZyB3ZWJraXRNb3ZlbWVudFg7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9cG9p
bnRlckxvY2tdIGxvbmcgd2Via2l0TW92ZW1lbnRZOworICAgICAgICBbQ29uZGl0aW9uYWw9UE9J
TlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9cG9pbnRlckxvY2tdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHdlYmtpdE1vdmVtZW50WDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVBPSU5URVJf
TE9DSywgVjhFbmFibGVkQXRSdW50aW1lPXBvaW50ZXJMb2NrXSByZWFkb25seSBhdHRyaWJ1dGUg
bG9uZyB3ZWJraXRNb3ZlbWVudFk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgIGN0cmxLZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgIHNoaWZ0S2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgICBhbHRLZXk7CkBAIC0zNCwyMSArMzQsMjEgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGJ1dHRvbjsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0ICAgICAgcmVsYXRlZFRhcmdldDsKICAgICAgICAg
Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgaW5pdE1vdXNlRXZl
bnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBi
b29sZWFuIGNhbmNlbGFibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2aWV3LCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGRldGFpbCwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9u
ZyBzY3JlZW5YLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHNjcmVlblksIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGxvbmcgY2xpZW50WCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBjbGllbnRZ
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGN0cmxLZXksIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGJvb2xlYW4gYWx0S2V5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHNoaWZ0S2V5
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIG1ldGFLZXksIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRXZlbnRUYXJn
ZXQgcmVsYXRlZFRhcmdldCk7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNd
IHZvaWQgaW5pdE1vdXNlRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVdpbmRvdyB2aWV3LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGRldGFpbCwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gbG9uZyBzY3JlZW5YLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHNj
cmVlblksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgY2xpZW50WCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gbG9uZyBjbGllbnRZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGN0cmxLZXks
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gYWx0S2V5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBib29sZWFuIHNoaWZ0S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIG1ldGFLZXks
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRXZlbnRUYXJnZXQgcmVsYXRlZFRhcmdldCk7CiAKICAgICAgICAgLy8gZXh0ZW5z
aW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBvZmZzZXRY
OwpAQCAtNjMsNCArNjMsNCBAQCBtb2R1bGUgZXZlbnRzIHsKICNlbmRpZgogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwKaW5kZXggMTYzODE3MTRj
ODA5ZWE3Y2E0Nzg0YzZiM2IwMzExYjg5NzlmODE3NS4uZTY5N2M4ZWY4OTZmNDg3MzM1MGMwMmE2
MTdmMGZiNzJlNzFmMWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlk
bApAQCAtMjksMTAgKzI5LDEwIEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlMsCiAgICAg
ICAgIENhbGxiYWNrCi0gICAgXSBNdXRhdGlvbkNhbGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBN
dXRhdGlvbkNhbGxiYWNrIHsKICAgICAgICAgW0N1c3RvbV0gYm9vbGVhbiBoYW5kbGVFdmVudChp
biBNdXRhdGlvblJlY29yZEFycmF5IG11dGF0aW9ucywgaW4gV2ViS2l0TXV0YXRpb25PYnNlcnZl
ciBvYnNlcnZlcik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTXV0YXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25FdmVudC5p
ZGwKaW5kZXggMjc2NWRjOWMyYTg3NzhjMmMyYmYzMzY1OWIyZTM2M2NlODI4YWI3MS4uMmEwNjNk
MGU3NmU2MWY2ZmM5NTkxMzA5NzdkNTQ5ZWY0ZTVlZmM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRh
dGlvbkV2ZW50LmlkbApAQCAtMzMsMTUgKzMzLDE1IEBAIG1vZHVsZSBldmVudHMgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgYXR0ck5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBhdHRyQ2hhbmdlOwogCi0gICAgICAgIFtP
YmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgaW5pdE11dGF0aW9uRXZlbnQoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29s
ZWFuIGNhbmNlbGFibGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcmVsYXRlZE5vZGUs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwcmV2VmFsdWUsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBuZXdWYWx1ZSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
RE9NU3RyaW5nIGF0dHJOYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBzaG9y
dCBhdHRyQ2hhbmdlKTsKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9p
ZCBpbml0TXV0YXRpb25FdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01T
dHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5CdWJibGUsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gTm9kZSByZWxhdGVkTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3Ry
aW5nIHByZXZWYWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5ld1ZhbHVl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgYXR0ck5hbWUsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIHVuc2lnbmVkIHNob3J0IGF0dHJDaGFuZ2UpOwogCiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQuaWRsCmluZGV4IGE3ODgzYzUwZjBlMDBj
YWVhOGM5M2IzOGRlYjE0MmRjYzE3NzFjMDMuLmJjZTBiNDBlOTQ3M2E0ZWQ0NzUyMzc3NDI5NGIw
ZGIzYzM1M2VkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvblJlY29y
ZC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVjb3JkLmlkbApAQCAtMjks
OSArMjksOSBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9TVVUQVRJT05fT0JTRVJWRVJTCi0gICAgXSBNdXRhdGlvblJl
Y29yZCB7CisgICAgXSBpbnRlcmZhY2UgTXV0YXRpb25SZWNvcmQgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlIHRhcmdldDsKIApAQCAtNDEsOCArNDEsOCBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOb2RlIG5leHRTaWJsaW5nOwogCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBhdHRyaWJ1dGVO
YW1lc3BhY2U7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXR0cmlidXRlTmFtZXNwYWNlOwogCi0gICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJp
bmcgb2xkVmFsdWU7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgb2xkVmFsdWU7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCmluZGV4IDdlZTZiNzU2NzdhYTMyOGRlMWIxMzRjZjQw
YzU1ZDIzNWNhYmRjZGUuLjExZTE5NmQxNWIwMjRiNWFkM2Q0MjU5OWQ4MGMwN2Q1Y2VjMThiYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCkBAIC0yMCw0MCArMjAsNDAgQEAKIAog
bW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEdlbmVyYXRl
SXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAg
ICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgTmFtZWRHZXR0ZXIKLSAgICBdIE5h
bWVkTm9kZU1hcCB7CisgICAgXSBpbnRlcmZhY2UgTmFtZWROb2RlTWFwIHsKIAotICAgICAgICBO
b2RlIGdldE5hbWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgbmFtZSk7CisgICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKIAotICAgICAgICBOb2RlIHNldE5hbWVkSXRl
bShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIG5vZGUpCisgICAgICAgIE5v
ZGUgc2V0TmFtZWRJdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgbm9k
ZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIE5vZGUgcmVt
b3ZlTmFtZWRJdGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBu
YW1lKQorICAgICAgICBOb2RlIHJlbW92ZU5hbWVkSXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogCi0gICAgICAgIE5vZGUgaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgTm9kZSBpdGVtKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgICAgICAKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogCiAKICAgICAgICAg
Ly8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSBOb2RlIGdldE5hbWVkSXRlbU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2FsTmFtZSkKKyAgICAgICAgW09iakNM
ZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gTm9kZSBnZXROYW1lZEl0ZW1OUyhbVHJlYXROdWxsQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpCiAgICAg
ICAgICAgICAvLyBGSVhNRTogdGhlIGltcGxlbWVudGF0aW9uIGRvZXMgdGFrZSBhbiBleGNlcHRp
b25jb2RlIHBhcmFtZXRlci4KICAgICAgICAgICAgIC8qcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsK
IAotICAgICAgICBOb2RlIHNldE5hbWVkSXRlbU5TKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIE5vZGUgbm9kZSkKKyAgICAgICAgTm9kZSBzZXROYW1lZEl0ZW1OUyhbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBOb2Rl
IHJlbW92ZU5hbWVkSXRlbU5TKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2FsTmFtZSkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVk
UGFyYW1ldGVyc10gTm9kZSByZW1vdmVOYW1lZEl0ZW1OUyhbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkks
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBsb2NhbE5hbWUpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwK
aW5kZXggZmM0YTg4MmFiY2M0NjU4ZmU5YmFlMmY1MTU1YjNiZTk2OTJlMTdhNy4uNTAwZGQ4YmE3
M2U0NWRhN2YzMGEwNWY1MzUxMmM2YzQyNjU3YjBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbApAQCAtMjAs
NyArMjAsNyBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgSlNDdXN0b21IZWFkZXIsCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAg
ICAgICBKU0N1c3RvbVB1c2hFdmVudEhhbmRsZXJTY29wZSwKQEAgLTMyLDcgKzMyLDcgQEAgbW9k
dWxlIGNvcmUgewogICAgICAgICBKU0lubGluZUdldE93blByb3BlcnR5U2xvdCwKICAgICAgICAg
T2JqQ1BvbHltb3JwaGljLAogICAgICAgICBWOERlcGVuZGVudExpZmV0aW1lCi0gICAgXSBOb2Rl
CisgICAgXSBpbnRlcmZhY2UgTm9kZQogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0Mp
ICYmIExBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIDogT2JqZWN0LCBFdmVudFRhcmdldAog
I2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICovCkBAIC01MSwxMSArNTEs
MTEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERP
Q1VNRU5UX0ZSQUdNRU5UX05PREUgICAgICAgICA9IDExOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIE5PVEFUSU9OX05PREUgICAgICAgICAgICAgICAgICA9IDEyOwogCi0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBE
T01TdHJpbmcgICAgICAgIG5vZGVOYW1lOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBub2RlTmFtZTsK
IAogICAgICAgICAgICAgICAgICAvLyBGSVhNRTogdGhlIHNwZWMgc2F5cyB0aGlzIGNhbiBhbHNv
IHJhaXNlIG9uIHJldHJpZXZhbC4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyAgICAgICAgbm9kZVZhbHVlCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
IG5vZGVWYWx1ZQorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgbm9kZVR5cGU7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIHBhcmVudE5vZGU7
CkBAIC02Nyw0NiArNjcsNDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTmFtZWROb2RlTWFwICAgICBhdHRyaWJ1dGVzOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRG9jdW1lbnQgICAgICAgICBvd25lckRvY3VtZW50OwogCi0gICAgICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnMsIEN1c3RvbV0gTm9kZSBpbnNlcnRCZWZvcmUoaW4gW0N1c3Rv
bVJldHVybl0gTm9kZSBuZXdDaGlsZCwKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1l
dGVycywgQ3VzdG9tXSBOb2RlIGluc2VydEJlZm9yZShbQ3VzdG9tUmV0dXJuXSBpbiBOb2RlIG5l
d0NoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIE5vZGUgcmVmQ2hpbGQpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVycywgQ3VzdG9t
XSBOb2RlIHJlcGxhY2VDaGlsZChpbiBOb2RlIG5ld0NoaWxkLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDdXN0b21S
ZXR1cm5dIE5vZGUgb2xkQ2hpbGQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0N1c3RvbVJldHVybl0gaW4gTm9kZSBvbGRD
aGlsZCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9t
XSBOb2RlICAgICAgICAgICAgICAgcmVtb3ZlQ2hpbGQoaW4gW0N1c3RvbVJldHVybl0gTm9kZSBv
bGRDaGlsZCkKKyAgICAgICAgW0N1c3RvbV0gTm9kZSAgICAgICAgICAgICAgIHJlbW92ZUNoaWxk
KFtDdXN0b21SZXR1cm5dIGluIE5vZGUgb2xkQ2hpbGQpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0gTm9kZSAgICAgICAgICAgICAgIGFwcGVuZENo
aWxkKGluIFtDdXN0b21SZXR1cm5dIE5vZGUgbmV3Q2hpbGQpCisgICAgICAgIFtDdXN0b21dIE5v
ZGUgICAgICAgICAgICAgICBhcHBlbmRDaGlsZChbQ3VzdG9tUmV0dXJuXSBpbiBOb2RlIG5ld0No
aWxkKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgYm9vbGVh
biAgICAgICAgICAgIGhhc0NoaWxkTm9kZXMoKTsKLSAgICAgICAgTm9kZSAgICAgICAgICAgICAg
IGNsb25lTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGRlZXAp
OworICAgICAgICBOb2RlICAgICAgICAgICAgICAgY2xvbmVOb2RlKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gZGVlcCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAg
ICBub3JtYWxpemUoKTsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgog
Ci0gICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIGJvb2xlYW4gaXNTdXBwb3J0
ZWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGZlYXR1cmUsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHZlcnNp
b24pOworICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBib29sZWFuIGlzU3Vw
cG9ydGVkKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBmZWF0dXJl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB2
ZXJzaW9uKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxs
U3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICBuYW1lc3BhY2VVUkk7Ci0gICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIHByZWZpeAotICAgICAgICAgICAgICAg
ICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICBs
b2NhbE5hbWU7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWVzcGFjZVVSSTsKKyAgICAgICAgICAg
ICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9TnVsbFN0
cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgcHJlZml4CisgICAgICAgICAgICAgICAg
ICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxs
U3RyaW5nQXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbG9jYWxO
YW1lOwogCiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBoYXNBdHRyaWJ1dGVzKCk7CiAKICAg
ICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKIAotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAg
IGJhc2VVUkk7CisgICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgYmFzZVVSSTsKIAogICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogdGhlIHNwZWMgc2F5cyB0aGlzIGNhbiBhbHNvIHJhaXNlIG9uIHJldHJpZXZh
bC4KLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyAgICAgICB0ZXh0Q29udGVu
dAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
ICAgICAgICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsLCBUcmVhdE51bGxB
cz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50CisgICAg
ICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBib29s
ZWFuICAgICAgICAgICAgaXNTYW1lTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBOb2RlIG90aGVyKTsKLSAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzRXF1YWxOb2RlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgb3RoZXIpOwotICAgICAgICBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgbG9va3VwUHJl
Zml4KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIGJvb2xlYW4gICAgICAgICAgICBp
c0RlZmF1bHROYW1lc3BhY2UoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKLSAgICAgICAgW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGxvb2t1cE5hbWVz
cGFjZVVSSShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBwcmVmaXgpOworICAgICAgICBib29sZWFuICAgICAgICAgICAgaXNT
YW1lTm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG90aGVyKTsKKyAg
ICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzRXF1YWxOb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIE5vZGUgb3RoZXIpOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJp
bmdBcz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgbG9va3VwUHJlZml4KFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSk7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc0RlZmF1bHROYW1lc3BhY2Uo
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBE
T01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGxvb2t1cE5hbWVzcGFjZVVSSShbVHJlYXROdWxs
QXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBw
cmVmaXgpOwogCiAgICAgICAgIC8vIERvY3VtZW50UG9zaXRpb24KICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgICAgICBET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgPSAweDAxOwpA
QCAtMTE2LDEwICsxMTYsMTAgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSA9IDB4MTA7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5U
QVRJT05fU1BFQ0lGSUMgPSAweDIwOwogCi0gICAgICAgIHVuc2lnbmVkIHNob3J0ICAgICBjb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2Rl
IG90aGVyKTsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgICAgIGNvbXBhcmVEb2N1bWVudFBvc2l0
aW9uKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgb3RoZXIpOwogCiAgICAg
ICAgIC8vIEludHJvZHVjZWQgaW4gRE9NNAotICAgICAgICBib29sZWFuIGNvbnRhaW5zKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgb3RoZXIpOworICAgICAgICBib29sZWFu
IGNvbnRhaW5zKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgb3RoZXIpOwog
CiAjaWYgMAogICAgICAgICBET01PYmplY3QgICAgICAgICAgZ2V0RmVhdHVyZShpbiBET01TdHJp
bmcgZmVhdHVyZSwgCkBAIC0xNDQsMTAgKzE0NCwxMCBAQCBtb2R1bGUgY29yZSB7CiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAg
ICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNw
YXRjaEV2ZW50KGluIEV2ZW50IGV2ZW50KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0
aW9uKTsKICNlbmRpZgpAQCAtMTY2LDQgKzE2Niw0IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKaW5kZXggNWNhYTVmZjAzYmVlNDk1
YzkyZWVhZDY2ZmQ1NDA0M2EwN2E4YTU1Zi4uZWNhZWE3YTc5MWIwMzc4YWVkYWIzMDIxYmFiNjVi
NDQ3YjkwNTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbApAQCAtMjEsMTIgKzIxLDEy
IEBACiBtb2R1bGUgdHJhdmVyc2FsIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9u
LAogICAgICAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBPYmpDUHJvdG9jb2ws
CiAgICAgICAgIENQUFB1cmVJbnRlcmZhY2UKLSAgICBdIE5vZGVGaWx0ZXIgeworICAgIF0gaW50
ZXJmYWNlIE5vZGVGaWx0ZXIgewogICAgICAgICAvLyBDb25zdGFudHMgcmV0dXJuZWQgYnkgYWNj
ZXB0Tm9kZQogICAgICAgICBjb25zdCBzaG9ydCAgICAgICAgICAgICAgIEZJTFRFUl9BQ0NFUFQg
ICAgICAgICAgICAgICAgICA9IDE7CiAgICAgICAgIGNvbnN0IHNob3J0ICAgICAgICAgICAgICAg
RklMVEVSX1JFSkVDVCAgICAgICAgICAgICAgICAgID0gMjsKQEAgLTQ3LDggKzQ3LDggQEAgbW9k
dWxlIHRyYXZlcnNhbCB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAgU0hPV19E
T0NVTUVOVF9GUkFHTUVOVCAgICAgICAgID0gMHgwMDAwMDQwMDsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyAgICAgICBTSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgICAgPSAweDAwMDAw
ODAwOwogCi0gICAgICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gc2hvcnQgYWNjZXB0Tm9kZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIG4pOworICAgICAgICBbQ2FsbFdp
dGg9U2NyaXB0U3RhdGVdIHNob3J0IGFjY2VwdE5vZGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gTm9kZSBuKTsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZUl0ZXJhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRl
cmF0b3IuaWRsCmluZGV4IDViM2YyODhmYmE3YWNjYzE5ZGNjN2ViNWI3MjY2ZGM1N2NjMGQyMzIu
LmU2ZWRjODdhODI3MTVmYWZjZTBjMmQwNmVlNmQ0N2RmMzMyMDUyNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlSXRlcmF0b3IuaWRsCkBAIC0yMSw5ICsyMSw5IEBACiBtb2R1bGUgdHJhdmVyc2FsIHsK
IAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCi0gICAgXSBOb2RlSXRlcmF0b3Igewor
ICAgIF0gaW50ZXJmYWNlIE5vZGVJdGVyYXRvciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlIHJvb3Q7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdo
YXRUb1Nob3c7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZpbHRlcjsK
QEAgLTM4LDQgKzM4LDQgQEAgbW9kdWxlIHRyYXZlcnNhbCB7CiAgICAgICAgIHZvaWQgZGV0YWNo
KCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCmluZGV4IGU1ZDBmOTA3
NGI5OWRhZTgxNDk4MDFhYTRiZjczNWM3NmRiYWNiOGUuLjA3ZTBhNGQwODdmMjdiNmQ5NjBlMzhj
MGVlZTk4MjRhOWJmZjMwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlz
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbApAQCAtMjAsMTcgKzIw
LDE3IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDdXN0b21Jc1JlYWNoYWJsZSwKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgTmFt
ZWRHZXR0ZXIsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKLSAgICBdIE5vZGVMaXN0IHsK
KyAgICBdIGludGVyZmFjZSBOb2RlTGlzdCB7CiAKLSAgICAgICAgTm9kZSBpdGVtKGluIFtJc0lu
ZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
ICAgICAgIE5vZGUgaXRlbShbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm90YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vdGF0aW9uLmlk
bAppbmRleCAyOTE3Y2IyNmY5YWYzNDE2MDMwYzgzMDI1MWM3NTBhYmU3ZTc2ZjA3Li5lNjM0YmE5
NmUwM2Q0Mjc4OGY5ZDNkYTE1ZjVhZmZhOTExYjM3NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm90YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob3RhdGlvbi5p
ZGwKQEAgLTIwLDggKzIwLDggQEAKIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBOb3Rh
dGlvbiA6IE5vZGUgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIHB1YmxpY0lkOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gRE9NU3RyaW5nIHN5c3Rl
bUlkOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHB1YmxpY0lkOworICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN5c3RlbUlkOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5pZGwKaW5kZXggMTBiOTUw
NGY0MDUxMjAwNzhjM2MxY2JkMTIwNzc3OWY0OWM5MTM4Yi4uMDEyNjE3YTYwZDUwNWVlNGJhNjkz
YTdiMzU3NDAzOTAzNzkwN2VkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL092ZXJm
bG93RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxvd0V2ZW50LmlkbApA
QCAtMjUsMjIgKzI1LDIyIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIE92ZXJmbG93
RXZlbnQgOiBFdmVudCB7CisgICAgXSBpbnRlcmZhY2UgT3ZlcmZsb3dFdmVudCA6IEV2ZW50IHsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSE9SSVpPTlRBTCA9IDA7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFZFUlRJQ0FMICAgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBCT1RIICAgICAgID0gMjsKICAgICAgICAgCi0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHVuc2lnbmVkIHNob3J0IG9yaWVu
dDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gYm9vbGVhbiBob3Jpem9udGFsT3ZlcmZsb3c7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIGJvb2xlYW4gdmVydGljYWxPdmVy
ZmxvdzsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgb3JpZW50OworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGhvcml6b250YWxPdmVy
ZmxvdzsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiB2ZXJ0aWNhbE92ZXJmbG93OwogCiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAgdm9pZCBpbml0
T3ZlcmZsb3dFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBz
aG9ydCBvcmllbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBob3Jpem9udGFsT3ZlcmZsb3csCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
Ym9vbGVhbiB2ZXJ0aWNhbE92ZXJmbG93KTsKKyAgICAgICAgdm9pZCBpbml0T3ZlcmZsb3dFdmVu
dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBzaG9ydCBvcmllbnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gYm9vbGVhbiBob3Jpem9udGFsT3ZlcmZsb3csCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiB2ZXJ0
aWNhbE92ZXJmbG93KTsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUGFnZVRyYW5zaXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUGFnZVRyYW5zaXRpb25FdmVudC5pZGwKaW5kZXggNzZjODcyN2I3N2IyNjkyYjA4NWVmMTgx
NWZjYWM0ZWUxMjc2ODYxNS4uYjVkZjAzNTg4ZmFjNDc0ZjkxYmQwOGQzZWMwMzVkNTc5YzIzZjUx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmlkbApAQCAtMjUs
MTAgKzI1LDEwIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIFBhZ2VUcmFuc2l0aW9u
RXZlbnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRC
eUV2ZW50Q29uc3RydWN0b3JdIGJvb2xlYW4gcGVyc2lzdGVkOworICAgIF0gaW50ZXJmYWNlIFBh
Z2VUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcGVyc2lzdGVkOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5pZGwKaW5kZXggYzkzNDNjYTgw
ZWQxNzkyNDJiMWRiNGY1YjE2N2VlOGM2NjAzYTU3ZC4uYzBmZWYwMTExYTllMTZjNmUwOTcwMzlj
ZTE3MGUzMWE0MDEyZWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BvcFN0YXRl
RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbApAQCAt
MjcsMTEgKzI3LDExIEBACiBtb2R1bGUgZXZlbnRzIHsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdF
X0NQUCkgfHwgIUxBTkdVQUdFX0NQUAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50Ci0gICAgXSBQb3BTdGF0ZUV2ZW50IDogRXZlbnQgewot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9y
LCBDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbUdldHRlcl0gRE9NT2JqZWN0IHN0YXRlOworICAgIF0g
aW50ZXJmYWNlIFBvcFN0YXRlRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFsaXplZEJ5
RXZlbnRDb25zdHJ1Y3RvciwgQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01PYmplY3Qgc3RhdGU7CiAgICAgfTsKICNlbmRpZgogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbAppbmRleCAwMjQ5OWEy
ZjExZDk3YjNmZTY2MzQzNzE1Njc5YjdkZmU2ZjI0NTBlLi4yYWY4YjZkMDNlMTM5YTRmYjQzZWYy
NDU5NTAwZDkzY2IzZGNjMGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmlkbApAQCAtMjQsMTIgKzI0LDEyIEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAg
ICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXRSZXR1
cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgdGFyZ2V0OwotICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbCwgVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRhdGEKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXQ7CisgICAgICAgICAgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGwsIFRyZWF0TnVsbEFzPU51bGxTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZGF0YQorICAgICAgICAgICAgICAgICAgICAgc2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gaW50ZXJmYWNlIExpbmtTdHlsZSBmcm9t
IERPTSBMZXZlbCAyIFN0eWxlIFNoZWV0cwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3R5
bGVTaGVldCBzaGVldDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZl
bnQuaWRsCmluZGV4IDUyNWZhNGFlOTNmMmQ3YjMzZGEwNTI3OTQwOWJlYjE5NWJmYWVhMjEuLjE4
YmU4OGI4NGJkMGM0NDBlNTdlZjJhY2E4ODZmNzk3NzExNWE2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UHJvZ3Jlc3NFdmVudC5pZGwKQEAgLTI1LDEzICsyNSwxMyBAQAogCiBtb2R1bGUgZXZlbnRzIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2
ZW50LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBQcm9ncmVzc0V2ZW50IDogRXZl
bnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0
cnVjdG9yXSBib29sZWFuIGxlbmd0aENvbXB1dGFibGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHVuc2lnbmVkIGxvbmcgbG9uZyBs
b2FkZWQ7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbDsKKyAgICBdIGludGVyZmFjZSBQcm9n
cmVzc0V2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0
b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGxlbmd0aENvbXB1dGFibGU7CisgICAgICAg
IFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbG9uZyBsb2FkZWQ7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1
Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbDsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggNjdmNGFlZTA3MmIxNDQwMjk1NDk4MjQw
MWM2ODc1NDI0NjFkMjQ4OC4uOTRlNGQ5ZDFhZDM5YjBiYzBhNzBhMTcyNjE5ZTk5MDgyNGZmNTli
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaWRsCkBAIC0yNCwzNyArMjQsMzcgQEAgbW9kdWxlIHJhbmdlcyB7
CiAgICAgaW50ZXJmYWNlIFJhbmdlIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSBzdGFydENvbnRhaW5lcgotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIHN0YXJ0T2Zmc2V0Ci0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgZW5kQ29udGFpbmVyCi0gICAgICAgICAgICBnZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgZW5kT2Zmc2V0Ci0gICAgICAg
ICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29sbGFw
c2VkCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGUgY29tbW9uQW5jZXN0b3JDb250YWluZXIKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAg
ICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgc2V0U3RhcnQoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25n
IG9mZnNldCkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFyYW1ldGVyc10gdm9pZCBzZXRT
dGFydChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIHJlZk5vZGUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9u
LCBET01FeGNlcHRpb24pOwotICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2
b2lkIHNldEVuZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJlZk5vZGUs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBsb25nIG9mZnNldCkKKyAgICAgICAgW09iakNMZWdhY3lVbm5hbWVkUGFy
YW1ldGVyc10gdm9pZCBzZXRFbmQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9k
ZSByZWZOb2RlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICByYWlzZXMo
UmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0U3RhcnRCZWZv
cmUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlKQorICAgICAg
ICB2b2lkIHNldFN0YXJ0QmVmb3JlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5v
ZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCBzZXRTdGFydEFmdGVyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIE5vZGUgcmVmTm9kZSkKKyAgICAgICAgdm9pZCBzZXRTdGFydEFmdGVyKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJh
aXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmRC
ZWZvcmUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlKQorICAg
ICAgICB2b2lkIHNldEVuZEJlZm9yZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBO
b2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5kQWZ0ZXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gTm9kZSByZWZOb2RlKQorICAgICAgICB2b2lkIHNldEVuZEFmdGVyKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNl
cyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBjb2xsYXBzZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHRvU3RhcnQpCisgICAgICAg
IHZvaWQgY29sbGFwc2UoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiB0
b1N0YXJ0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
c2VsZWN0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIHJlZk5vZGUp
CisgICAgICAgIHZvaWQgc2VsZWN0Tm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2VsZWN0Tm9kZUNvbnRlbnRzKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcmVmTm9kZSkKKyAgICAgICAgdm9pZCBzZWxlY3ROb2Rl
Q29udGVudHMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByZWZOb2RlKQog
ICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIC8vIENvbXBhcmVIb3cKQEAgLTYzLDggKzYzLDggQEAgbW9kdWxlIHJhbmdlcyB7CiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEVORF9UT19FTkQgICAgID0gMjsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgRU5EX1RPX1NUQVJUICAgPSAzOwogCi0gICAgICAgIFtPYmpDTGVn
YWN5VW5uYW1lZFBhcmFtZXRlcnNdIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBDb21wYXJlSG93IGhvdywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIFJhbmdlIHNvdXJjZVJhbmdlKQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFt
ZWRQYXJhbWV0ZXJzXSBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gQ29tcGFyZUhvdyBob3csCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBSYW5nZSBzb3VyY2VSYW5nZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwogCiAgICAgICAgIHZvaWQgZGVsZXRlQ29udGVudHMoKQpAQCAtNzMsOSArNzMsOSBAQCBtb2R1
bGUgcmFuZ2VzIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBE
b2N1bWVudEZyYWdtZW50IGNsb25lQ29udGVudHMoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgaW5zZXJ0Tm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBOb2RlIG5ld05vZGUpCisgICAgICAgIHZvaWQgaW5zZXJ0Tm9kZShbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5ld05vZGUpCiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uLCBSYW5nZUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc3Vycm91bmRD
b250ZW50cyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIG5ld1BhcmVudCkK
KyAgICAgICAgdm9pZCBzdXJyb3VuZENvbnRlbnRzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIE5vZGUgbmV3UGFyZW50KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwg
UmFuZ2VFeGNlcHRpb24pOwogICAgICAgICBSYW5nZSBjbG9uZVJhbmdlKCkKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtOTQsMTUgKzk0LDE1IEBAIG1vZHVsZSByYW5nZXMg
ewogCiAgICAgICAgIC8vIGV4dGVuc2lvbnMKIAotICAgICAgICBEb2N1bWVudEZyYWdtZW50IGNy
ZWF0ZUNvbnRleHR1YWxGcmFnbWVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgaHRtbCkKKyAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGh0bWwp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBXZWJLaXQg
ZXh0ZW5zaW9ucwogCi0gICAgICAgIGJvb2xlYW4gaW50ZXJzZWN0c05vZGUoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSByZWZOb2RlKQorICAgICAgICBib29sZWFuIGludGVy
c2VjdHNOb2RlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkK
ICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAotICAg
ICAgICBzaG9ydCBjb21wYXJlTm9kZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBO
b2RlIHJlZk5vZGUpCisgICAgICAgIHNob3J0IGNvbXBhcmVOb2RlKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4
Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBDb21wYXJlUmVzdWx0cwpAQCAt
MTExLDE1ICsxMTEsMTUgQEAgbW9kdWxlIHJhbmdlcyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5PREVfQkVGT1JFX0FORF9BRlRFUiA9IDI7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IE5PREVfSU5TSURFICAgICAgICAgICA9IDM7CiAKLSAgICAgICAgc2hvcnQgY29tcGFy
ZVBvaW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgcmVmTm9kZSwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBsb25nIG9mZnNldCkKKyAgICAgICAgc2hvcnQgY29tcGFyZVBvaW50KFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIE5vZGUgcmVmTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIG9mZnNldCkKICAgICAg
ICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBi
b29sZWFuIGlzUG9pbnRJblJhbmdlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5v
ZGUgcmVmTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBvZmZzZXQpCisgICAgICAgIGJvb2xlYW4gaXNQb2lu
dEluUmFuZ2UoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSByZWZOb2RlLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBsb25nIG9mZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwg
RE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGV4cGFuZChpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcgdW5pdCkKKyAgICAgICAgdm9pZCBleHBhbmQoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHVuaXQpCiAgICAgICAgICAgICBy
YWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7CiAKICNpZiAhZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVApAQCAtMTI3LDQgKzEyNyw0
IEBAIG1vZHVsZSByYW5nZXMgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2VFeGNlcHRpb24uaWRsCmluZGV4IDdlZjhjNGE1YWIyMTk5Y2U5NTAwMDJiMjM4ZDBj
OGU2YmY5OTFiYmIuLjViNzY1YzJlN2JjODZlYzUwMzYyNjAxMzEzMmZjYzg1ODY4NjU0OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbApAQCAtMTksOSArMTksOSBAQAogCiBt
b2R1bGUgcmFuZ2VzIHsKIAotICAgIGV4Y2VwdGlvbiBbCisgICAgWwogICAgICAgICBEb05vdENo
ZWNrQ29uc3RhbnRzCi0gICAgXSBSYW5nZUV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRpb24gUmFu
Z2VFeGNlcHRpb24gewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9y
dCAgIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5h
bWU7CkBAIC0zNyw0ICszNyw0IEBAIG1vZHVsZSByYW5nZXMgewogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBJTlZBTElEX05PREVfVFlQRV9FUlIgPSAyOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
LmlkbAppbmRleCA0ZGE2ODIwODMxMDQ3MmZkZDRhNjRiNGNiMDgzODk2YmE2YjM0NjI2Li4zYTdh
ZGUzYjNmMGUxNjY4YmIyNzY3YTYxNjgzNjJhYWVjODUwY2UxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwKQEAgLTI5LDEw
ICsyOSwxMCBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ2FsbGJhY2ssCi0gICAgICAgIENvbmRpdGlvbmFsPVJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FLAotICAgIF0gUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2t7CisgICAgICAgIENv
bmRpdGlvbmFsPVJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FCisgICAgXSBpbnRlcmZhY2UgUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2sgewogI2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhf
QklORElORwogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVRpbWVTdGFtcCB0aW1l
KTsKICNlbHNlCkBAIC00MCw0ICs0MCw0IEBAIG1vZHVsZSBjb3JlIHsKICNlbmRpZgogICAgICAg
ICAKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCBjMDRjM2Ux
NWQ1MGU2Yzg0NzQ4YTUzYjYzZjEyNmZhMmEzOGIyNDRmLi43OWU2NDdlZjI1YTdjMmZjNTVhZjcx
MzRmNjU3OGY3MjUwYzQxY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0yNiwy
NSArMjYsMjUgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNIQURPV19ET00sCiAgICAgICAgIENvbnN0cnVjdG9yKGluIEVs
ZW1lbnQgaG9zdCksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAogICAgICAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21l
bnQgeworICAgIF0gaW50ZXJmYWNlIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVudDsKICAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gYXBwbHlBdXRob3JTdHlsZXM7CiAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuIHJlc2V0U3R5bGVJbmhlcml0YW5jZTsKIAotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKLSAgICAgICAgICAgIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IGF0dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJIVE1MCisgICAgICAgICAgICBzZXRyYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAogICAgICAgICBET01TZWxlY3Rpb24gZ2V0U2VsZWN0aW9uKCk7Ci0gICAg
ICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gRE9NU3RyaW5nIGVsZW1lbnRJZCk7Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlD
bGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNz
TmFtZSk7Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0YWdOYW1lKTsKLSAgICAgICAgTm9kZUxp
c3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7CisgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVu
dEJ5SWQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGVsZW1lbnRJ
ZCk7CisgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CisgICAgICAgIE5vZGVM
aXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyB0YWdOYW1lKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05h
bWVOUyhbVHJlYXROdWxsQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGxv
Y2FsTmFtZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TdHJpbmdDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2su
aWRsCmluZGV4IDFlMThkODNmZTBhZjRjMmE1ZDQzMmE4NTBhMGJkMDhlM2MzMmVkMmYuLmIzMjc1
ZWYxYTJhMWMzMjVmOWQ5NGQ2ODcyNzE1Yjc2YmJjNzgxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmluZ0NhbGxiYWNrLmlkbApAQCAtMjksOSArMjksOSBAQAogICovCiAKIG1vZHVsZSBjb3JlIHsK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ2FsbGJhY2sKLSAgICBdIFN0cmluZ0Nh
bGxiYWNrIHsKKyAgICBdIGludGVyZmFjZSBTdHJpbmdDYWxsYmFjayB7CiAgICAgICAgIGJvb2xl
YW4gaGFuZGxlRXZlbnQoaW4gRE9NU3RyaW5nIGRhdGEpOwogICAgIH07Ci19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuaWRsCmluZGV4IDQ3MzZlMjJmZWIwYTc3ZmFmZmEwZDNmNTM0YzZiZTU1ZGMxNTFjZWIuLmE0
YmVkODQ1ZDVjYWQ3OTc1OTdkYjNkOTg3ZGQwNTcwYWRmNTU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5pZGwK
QEAgLTIzLDEzICsyMywxMyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVs
IDEKIAotICAgICAgICBUZXh0IHNwbGl0VGV4dChpbiBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQorICAgICAgICBUZXh0IHNwbGl0VGV4
dChbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgd2hvbGVUZXh0OwotICAgICAgICBUZXh0ICAgICAgICAgICAgICAgcmVw
bGFjZVdob2xlVGV4dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcg
Y29udGVudCkKKyAgICAgICAgVGV4dCAgICAgICAgICAgICAgIHJlcGxhY2VXaG9sZVRleHQoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNvbnRlbnQpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dEV2
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuaWRsCmluZGV4IDM2ZjUwN2Mw
NjYzMWNmZjE3OTFlNGE1NmIxYjRjODUxYTU1NzA0ODIuLjE4ZmIzODVjODkwN2Q5NTFhZThlYTZm
MWQ5MWU2ZjU0YTY5YzE0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuaWRsCkBAIC0zMCwxMiAr
MzAsMTIgQEAgbW9kdWxlIGV2ZW50cyB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBkYXRhOwogCi0gICAgICAgIHZvaWQgaW5pdFRleHRFdmVudChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdHlwZUFyZywgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1
YmJsZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBib29sZWFuIGNhbmNlbGFibGVBcmcsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NV2luZG93IHZpZXdB
cmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIGRhdGFBcmcpOworICAgICAgICB2b2lkIGluaXRUZXh0RXZlbnQo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHR5cGVBcmcsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
Ym9vbGVhbiBjYW5CdWJibGVBcmcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVdpbmRvdyB2aWV3QXJnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBkYXRhQXJnKTsKIAogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaWRsIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoLmlkbAppbmRleCBkMjkzN2IzNGUwNmJkODk3ZTU5NmYwZGM5ODNlODc1
M2RkMjBlYzgwLi5hZmE2MjhiNjBiMzE1MjA5NjRmM2Y2MDBiZjMzNGFlZjYyMWEyNjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2guaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIGV2ZW50cyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTCi0g
ICAgXSBUb3VjaCB7CisgICAgXSBpbnRlcmZhY2UgVG91Y2ggewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjbGllbnRYOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgICBjbGllbnRZOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyAgICAgICAgICAgICBzY3JlZW5YOwpAQCAtNDEsNCArNDEsNCBAQCBtb2R1bGUgZXZl
bnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0ICAgICAgICAgICAgd2Via2l0
Um90YXRpb25BbmdsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0ICAgICAgICAg
ICAgd2Via2l0Rm9yY2U7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVG91Y2hFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5pZGwK
aW5kZXggNGI3OTc1N2Y1YTU4MDhkMjM4NmE3MGQzYWMyNGE3MWUyNWE1ZDIwMy4uZTEzZTMwMGJh
NDQwMmM2MGIzNTFkNDNiNmY5YzQ4NGYwMzBlMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RvdWNoRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50
LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMKLSAgICBdIFRvdWNo
RXZlbnQgOiBVSUV2ZW50IHsKKyAgICBdIGludGVyZmFjZSBUb3VjaEV2ZW50IDogVUlFdmVudCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUb3VjaExpc3QgdG91Y2hlczsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFRvdWNoTGlzdCB0YXJnZXRUb3VjaGVzOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVG91Y2hMaXN0IGNoYW5nZWRUb3VjaGVzOwpAQCAtMzYsMTggKzM2LDE4
IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBh
bHRLZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG1ldGFLZXk7CiAKLSAg
ICAgICAgdm9pZCBpbml0VG91Y2hFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBUb3VjaExpc3QgdG91Y2hlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBUb3VjaExpc3QgdGFyZ2V0VG91Y2hlcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBU
b3VjaExpc3QgY2hhbmdlZFRvdWNoZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5cGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NV2lu
ZG93IHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gbG9uZyBzY3JlZW5YLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHNjcmVlblksIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxv
bmcgY2xpZW50WCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBjbGllbnRZLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY3RybEtleSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBib29sZWFuIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHNoaWZ0S2V5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gbWV0
YUtleSk7CisgICAgICAgIHZvaWQgaW5pdFRvdWNoRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gVG91Y2hMaXN0IHRvdWNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gVG91Y2hMaXN0IHRhcmdldFRvdWNo
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gVG91Y2hMaXN0IGNoYW5nZWRUb3VjaGVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVdpbmRvdyB2aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc2NyZWVuWCwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzY3JlZW5Z
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBsb25nIGNsaWVudFgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgY2xpZW50WSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGN0
cmxLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gYm9vbGVhbiBhbHRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBzaGlmdEtleSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBi
b29sZWFuIG1ldGFLZXkpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1RvdWNoTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmlkbApp
bmRleCA1NDIzMjVjNzgwNmRkODk5ZTJkYTIwZjBkYmNkYmZlMmM5ZGU2OGYxLi5iODljNGY4Yjkz
MTYwMmJjNTFmZGJlOTEwYjdmNDA2ZDBkMzJlMDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vVG91Y2hMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0Lmlk
bApAQCAtMjUsMTIgKzI1LDEyIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywKICAgICAgICAgSW5k
ZXhlZEdldHRlcgotICAgIF0gVG91Y2hMaXN0IHsKKyAgICBdIGludGVyZmFjZSBUb3VjaExpc3Qg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAKICAg
ICAgICAgVG91Y2ggaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB9OwotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbAppbmRleCBkOWVkMzZlYWJkOGU4MTY2YjA0ZDYyMjM1
OTE4YWFkMTI0ODg2MThjLi45NzY5NmVlMjMxYjRlMmM4ZDQ5YTFiMTA3MWIwZTFlNzRmZGE2ZjQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCkBAIC0yMSwxNSArMjEsMTUgQEAKIG1vZHVs
ZSB0cmF2ZXJzYWwgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24KLSAgICBdIFRy
ZWVXYWxrZXIgeworICAgIF0gaW50ZXJmYWNlIFRyZWVXYWxrZXIgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZSByb290OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB3aGF0VG9TaG93OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRl
ciBmaWx0ZXI7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0
eVJlZmVyZW5jZXM7ICAgICAgICAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIE5vZGUgY3Vy
cmVudE5vZGUKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBwYXJlbnROb2RlKCk7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gTm9kZSBmaXJzdENoaWxkKCk7CkBAIC00MCw0ICs0MCw0IEBA
IG1vZHVsZSB0cmF2ZXJzYWwgewogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUg
bmV4dE5vZGUoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1VJRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaWRsCmluZGV4IDM5
YTJjYWY4M2VmYzllYTM2NmY3NmI1NjM3OTkxMjU5YzQyNzNkNjUuLmYwNGI2OGE1YjgyZTA2NjNl
NDE4NGM4ZDUzNGFkYTU1MzI2NTZlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5pZGwKQEAgLTI0LDEx
ICsyNCwxMSBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVdpbmRvdyAgICAgICAgICAgIHZpZXc7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
ICAgICAgICAgICAgICAgICBkZXRhaWw7CiAgICAgICAgIAotICAgICAgICBbT2JqQ0xlZ2FjeVVu
bmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGluaXRVSUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGNhbkJ1
YmJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBET01XaW5kb3cgdmlldywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBkZXRhaWwpOworICAg
ICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSB2b2lkIGluaXRVSUV2ZW50KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYW5jZWxh
YmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgdmlldywgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
bG9uZyBkZXRhaWwpOwogCiAgICAgICAgIC8vIGV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgICAgIGtleUNvZGU7CkBAIC00MCw0ICs0MCw0IEBA
IG1vZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgICAgICAgd2hpY2g7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaWRsCmluZGV4IDVlNTIyNTBjM2E2NTRhYzdmMGNmZjM5MmVjMGVj
NDE1YjYxZDY4ODcuLmRmYTNlY2Y3YjgzNGUxZWQyZjFlYzRlNjMyYWYyYjhkMTlhYTg4MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbApAQCAtMjUsMTEg
KzI1LDExIEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQKLSAgICBdIFdlYktpdEFuaW1hdGlvbkV2
ZW50IDogRXZlbnQgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgYW5pbWF0aW9uTmFtZTsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gZG91YmxlIGVsYXBz
ZWRUaW1lOworICAgIF0gaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlvbkV2ZW50IDogRXZlbnQgewor
ICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgYW5pbWF0aW9uTmFtZTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENv
bnN0cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGVsYXBzZWRUaW1lOwogfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRNdXRhdGlvbk9ic2VydmVyLmlkbApp
bmRleCBjMzM4YmUyOGRlMTk0ODIyY2QxYmJmOGI1NDQxNGVlZDE3MWVkZWZkLi5mOGE2NGJiOTkw
NGIxY2QwZjhmMmYzMzhhZjc3Mjk1MmZjNmUyOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViS2l0TXV0YXRpb25PYnNlcnZlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaWRsCkBAIC0yOSwxNCArMjksMTQgQEAKICAqLwogCiBt
b2R1bGUgY29yZSB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PU1VVEFUSU9OX09CU0VSVkVSUywKICAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAg
IENvbnN0cnVjdG9yUGFyYW1ldGVycz0xCi0gICAgXSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHsK
KyAgICBdIGludGVyZmFjZSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIHsKICAgICAgICAgdm9pZCBv
YnNlcnZlKGluIE5vZGUgdGFyZ2V0LCBpbiBEaWN0aW9uYXJ5IG9wdGlvbnMpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgc2VxdWVuY2U8TXV0YXRpb25SZWNvcmQ+
IHRha2VSZWNvcmRzKCk7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdCgpOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbAppbmRleCBhODY0MWNhODU2ZjEw
OTJlMDgzOTIyZWRkZGFkOGYzNDhmNDZhNzBmLi45YmJlYTRjYjRlNDJjYmYzMzdjYTA5ZGQzZTk1
MmFmOGI2ZTA2OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbApAQCAt
MjgsMTMgKzI4LDEzIEBACiAgKi8KIAogbW9kdWxlIGNvcmUgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gV2ViS2l0TmFtZWRGbG93
IHsKKyAgICBdIGludGVyZmFjZSBXZWJLaXROYW1lZEZsb3cgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIG92ZXJzZXQ7CiAgICAgICAgIE5vZGVMaXN0IGdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGlu
IE5vZGUgY29udGVudE5vZGUpOwogICAgICAgICBOb2RlTGlzdCBnZXRDb250ZW50KCk7CiAgICAg
fTsKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5p
ZGwKaW5kZXggMzk5MDNiZGYyNmUyNDc0YjE0MTMwYzc1YzhjMzcyMWJhMTAyOGU3NC4uN2FiZjE4
YTJjZThkYzVhY2M4MmY5NzM2OWE0ZGIyNTdkNzQ2ZWU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1
bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3Rv
clRlbXBsYXRlPUV2ZW50Ci0gICAgXSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3Jd
IERPTVN0cmluZyBwcm9wZXJ0eU5hbWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIGRvdWJsZSBlbGFwc2VkVGltZTsKKyAgICBdIGlu
dGVyZmFjZSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgICAgIFtJbml0aWFs
aXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9w
ZXJ0eU5hbWU7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1doZWVsRXZlbnQuaWRsCmluZGV4IGI1N2ZkMGU5YjAyMDA0NTk1Mjc1ZTQ2YTY1ZTQzODYw
Mzc3ZmU4MDkuLjllYjkwZjUwOTMxZDM5MGQyMTZhMTA5MjQ1Y2NiYWU5MDVjNzkzYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2hlZWxFdmVudC5pZGwKQEAgLTM1LDMxICszNSwzMSBAQCBtb2R1bGUgZXZlbnRz
IHsKICNlbmRpZiAvKiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAqLwogCiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAg
ICAgdm9pZCBpbml0V2hlZWxFdmVudChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBs
b25nIHdoZWVsRGVsdGFYLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgd2hlZWxEZWx0YVksIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVdpbmRvdyB2
aWV3LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIHNjcmVlblgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzY3JlZW5ZLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgY2xp
ZW50WCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIGNsaWVudFksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjdHJsS2V5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xl
YW4gYWx0S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2hpZnRLZXksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBtZXRhS2V5KTsK
KyAgICAgICAgdm9pZCBpbml0V2hlZWxFdmVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBsb25nIHdoZWVsRGVsdGFYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgd2hlZWxEZWx0YVksIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVdp
bmRvdyB2aWV3LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBsb25nIHNjcmVlblgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzY3JlZW5ZLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxv
bmcgY2xpZW50WCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBsb25nIGNsaWVudFksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjdHJsS2V5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGJvb2xlYW4gYWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gc2hpZnRLZXksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBtZXRh
S2V5KTsKICNlbmRpZiAvKiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAqLwogCiAjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAg
ICAgIHZvaWQgaW5pdFdlYktpdFdoZWVsRXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gbG9uZyB3aGVlbERlbHRhWCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHdoZWVsRGVsdGFZLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01XaW5kb3cgdmlldywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzY3JlZW5YLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGxvbmcgc2NyZWVuWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGNsaWVudFgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9u
ZyBjbGllbnRZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY3RybEtleSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFu
IGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHNoaWZ0S2V5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
bWV0YUtleSk7CisgICAgICAgIHZvaWQgaW5pdFdlYktpdFdoZWVsRXZlbnQoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB3aGVlbERlbHRhWCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHdo
ZWVsRGVsdGFZLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01XaW5kb3cgdmlldywgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBz
Y3JlZW5YLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc2NyZWVuWSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGNsaWVudFgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gbG9uZyBjbGllbnRZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gY3RybEtleSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBib29sZWFuIGFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHNoaWZ0S2V5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGJvb2xlYW4gbWV0YUtleSk7CiAjZW5kaWYgLyogZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSAqLwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9VbmRvTWFuYWdlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9NYW5hZ2Vy
LmlkbAppbmRleCA1ZWU3YmVhMTg5ZTZlNWQ4ZjNkMDhjYzZmZjg1YTdkNWUzYTAzMjI2Li42NjIw
MjA3ZjNkZjI5YmU0OTczNDRlM2RmNmNlZTJkZGE0NTA3MzU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1VuZG9NYW5hZ2VyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1VuZG9NYW5hZ2VyLmlkbApAQCAtMzAsOSArMzAsOSBAQAogCiBtb2R1bGUgY29yZSB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9VU5ET19NQU5BR0VS
Ci0gICAgXSBVbmRvTWFuYWdlciB7CisgICAgXSBpbnRlcmZhY2UgVW5kb01hbmFnZXIgewogICAg
ICAgICB2b2lkIHVuZG8oKTsKICAgICAgICAgdm9pZCByZWRvKCk7CiAKQEAgLTQwLDQgKzQwLDQg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIGNsZWFyUmVkbygpOwogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iLmlkbAppbmRleCBiNDRlYjQzNzU1MjQ5OTU0ZjU3YjM1OTRl
MTkwNDRkZTQzZTRmZjIxLi4wMTk5NzM0YmM0MzQ4OTVjMGE2NTBkNGY0NjJhOThhYjhkZjE4NmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5pZGwKQEAgLTMwLDI1ICszMCwyNSBAQAogCiBtb2R1bGUg
aHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVh
Y2hhYmxlPUltcGwsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEpTTm9TdGF0
aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3Rv
clBhcmFtZXRlcnM9MgotICAgIF0gQmxvYiB7CisgICAgXSBpbnRlcmZhY2UgQmxvYiB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCiAjaWYgIWRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpCiAjaWYgZGVmaW5lZChFTkFCTEVfQkxPQikgJiYgRU5BQkxFX0JMT0IK
LSAgICAgICAgQmxvYiBzbGljZShpbiBbT3B0aW9uYWxdIGxvbmcgbG9uZyBzdGFydCwgaW4gW09w
dGlvbmFsXSBsb25nIGxvbmcgZW5kLCBpbiBbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxTdHJp
bmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsK
KyAgICAgICAgQmxvYiBzbGljZShbT3B0aW9uYWxdIGluIGxvbmcgbG9uZyBzdGFydCwgW09wdGlv
bmFsXSBpbiBsb25nIGxvbmcgZW5kLCBbT3B0aW9uYWwsIFRyZWF0TnVsbEFzPU51bGxTdHJpbmcs
IFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGNvbnRlbnRUeXBlKTsK
ICNpZiAhZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSB8fCAhTEFOR1VBR0VfR09CSkVDVAogICAg
ICAgICAvLyBQcmVmaXhlZCB2ZXJzaW9uIGlzIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQuCi0gICAg
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBCbG9iIHdlYmtpdFNsaWNlKGlu
IFtPcHRpb25hbF0gbG9uZyBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgbG9uZyBlbmQs
IGluIFtPcHRpb25hbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1O
dWxsU3RyaW5nXSBET01TdHJpbmcgY29udGVudFR5cGUpOworICAgICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gQmxvYiB3ZWJraXRTbGljZShbT3B0aW9uYWxdIGluIGxvbmcg
bG9uZyBzdGFydCwgW09wdGlvbmFsXSBpbiBsb25nIGxvbmcgZW5kLCBbT3B0aW9uYWwsIFRyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3Ry
aW5nIGNvbnRlbnRUeXBlKTsKICNlbmRpZgogI2VuZGlmCiAjZW5kaWYKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKaW5kZXggN2MwZGU0MzA5ZGZkYTVhNjBlZDE0M2NhYTU0
OGIzNTk5NDEyOGQ1ZS4uN2IwMzQyZTgxYzMwMmE0OWYxM2Q2ODViZDgzZGI0MWE0ODk1YjU1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIGh0
bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2
ZU9iamVjdCwKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAgICAgIEpTTm9TdGF0
aWNUYWJsZXMKLSAgICBdIEZpbGUgOiBCbG9iIHsKKyAgICBdIGludGVyZmFjZSBGaWxlIDogQmxv
YiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKICNpZiAhZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKSB8fCAhTEFOR1VBR0VfR09CSkVDVAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRGF0ZSBsYXN0TW9kaWZpZWREYXRlOwpAQCAtMzksNCArMzksNCBAQCBt
b2R1bGUgaHRtbCB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlRXJyb3IuaWRsCmluZGV4IDE1OGQ3ODQ4ODRiNTgyNjUxZWJiMjFjOGEyYTNmNWQ3YjY0ZWUz
MzMuLmQzNTRhMjNlYWZlMDAyNmNlZTMyM2RmZmRhMjNhNDExNGZmYzNjNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUVycm9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0ZpbGVFcnJvci5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9QkxP
QnxGSUxFX1NZU1RFTSwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZUVycm9y
IHsKKyAgICBdIGludGVyZmFjZSBGaWxlRXJyb3IgewogI2lmICFkZWZpbmVkKExBTkdVQUdFX09C
SkVDVElWRV9DKQogICAgICAgICAvLyBGSVhNRTogU29tZSBvZiBjb25zdGFudCBuYW1lcyBhcmUg
YWxyZWFkeSBkZWZpbmVkIGluIERPTUV4Y2VwdGlvbi5oIGZvciBPYmplY3RpdmUtQyBiaW5kaW5n
IGFuZCB3ZSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBuYW1lcyBoZXJlICh0aGV5IGFyZSB0cmFuc2xh
dGVkIGludG8gYSBlbnVtIGluIHRoZSBzYW1lIG5hbWVzcGFjZSkuCiAgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5PVF9GT1VORF9FUlIgPSAxOwpAQCAtNTAsNCArNTAsNCBAQCBtb2R1bGUg
aHRtbCB7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
IGNvZGU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlRXhjZXB0aW9u
LmlkbAppbmRleCAzMzI0NGY5ZmMyYmQ1NmFjZjcyOWY3NzIzNTU5YmJjM2RlYWE5MGJiLi5kMTA4
NDIxNzk2ZmVkMDE1NjAyZGY0YzU0ODdjNWZjYmZmODZlMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwKQEAgLTI5LDExICsyOSwxMSBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBleGNlcHRpb24gWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9QkxP
QnxGSUxFX1NZU1RFTSwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKICAgICAgICAgSlNO
b1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZUV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRpb24gRmls
ZUV4Y2VwdGlvbiB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0
ICAgY29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFt
ZTsKQEAgLTU4LDQgKzU4LDQgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBUWVBFX01JU01BVENIX0VSUiA9IDExOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBQQVRIX0VYSVNUU19FUlIgPSAxMjsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlTGlzdC5pZGwKaW5kZXggMTQxMzlhNzYzNWQzMzBkMDYwOWU1YzJjYzJlMWY5MTlmN2E0
YzczMC4uN2Y2M2U2MTM1Y2I3ODVlYzFhMzUwMWNhYjk0NTA1MDI2YjA4MTBjNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlTGlzdC5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgaHRt
bCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAg
ICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRmlsZUxpc3QgeworICAgIF0gaW50ZXJmYWNl
IEZpbGVMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwogICAgICAgICBGaWxlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaWRsCmluZGV4IDUxZmU3MTI4
YjM3NDZkM2IxOTZmOTc3Y2Q2NTU1MWQxM2NhNTQwNjIuLjJhM2E3ZmE2YmE1OWZhMzU4NmJmNjJh
YmFiYTVmNzcyOGM2OTJjOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVJlYWRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmlkbApA
QCAtMzAsMTQgKzMwLDE0IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1CTE9CLAogICAgICAgICBBY3RpdmVET01PYmpl
Y3QsCiAgICAgICAgIENvbnN0cnVjdG9yLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxl
cwotICAgIF0gRmlsZVJlYWRlciB7CisgICAgXSBpbnRlcmZhY2UgRmlsZVJlYWRlciB7CiAgICAg
ICAgIC8vIHJlYWR5IHN0YXRlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTVBUWSA9
IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IExPQURJTkcgPSAxOwpAQCAtNDksNyAr
NDksNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgdm9pZCByZWFkQXNCaW5hcnlTdHJpbmcoaW4gQmxvYiBibG9iKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgcmVhZEFzVGV4dChpbiBCbG9i
IGJsb2IsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGVuY29kaW5nKQorICAgICAgICB2b2lkIHJl
YWRBc1RleHQoaW4gQmxvYiBibG9iLCBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBlbmNvZGluZykK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRBc0Rh
dGFVUkwoaW4gQmxvYiBibG9iKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBA
IC01NywxNyArNTcsMTcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkIGFib3J0KCk7CiAK
ICAgICAgICAgLy8gZmlsZSBkYXRhCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9t
XSBET01PYmplY3QgcmVzdWx0OworICAgICAgICBbQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NT2JqZWN0IHJlc3VsdDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRmlsZUVycm9y
IGVycm9yOwogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lk
IGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwog
ICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVz
ZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBp
biBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4g
RXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKIApAQCAtNzgs
NCArNzgsNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uZXJyb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZGVuZDsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
clN5bmMuaWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5pZGwKaW5k
ZXggOTIwZjM2ODQwOGY0YzBkZWNmZDhmMTcxNDUxMTEyZjJlMmE4NDA2ZC4uNjA3MWZmMWY1Nzg3
ZmM5MjljNzFhYmY4MDNkMThhYzg3NTk0OTY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyU3luYy5pZGwKQEAgLTI5LDE4ICsyOSwxOCBAQAogICovCiAKIG1vZHVsZSBodG1s
IHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9QkxPQiwKICAg
ICAgICAgQ29uc3RydWN0b3IsCiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIEZpbGVS
ZWFkZXJTeW5jIHsKKyAgICBdIGludGVyZmFjZSBGaWxlUmVhZGVyU3luYyB7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBBcnJheUJ1ZmZlciByZWFkQXNBcnJheUJ1
ZmZlcihpbiBCbG9iIGJsb2IpCiAgICAgICAgICAgICByYWlzZXMoRmlsZUV4Y2VwdGlvbik7CiAg
ICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBET01TdHJpbmcgcmVhZEFz
QmluYXJ5U3RyaW5nKGluIEJsb2IgYmxvYikKICAgICAgICAgICAgIHJhaXNlcyhGaWxlRXhjZXB0
aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIERPTVN0cmlu
ZyByZWFkQXNUZXh0KGluIEJsb2IgYmxvYiwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZW5jb2Rp
bmcpCisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBET01TdHJpbmcg
cmVhZEFzVGV4dChpbiBCbG9iIGJsb2IsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIGVuY29kaW5n
KQogICAgICAgICAgICAgcmFpc2VzKEZpbGVFeGNlcHRpb24pOwogICAgICAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gRE9NU3RyaW5nIHJlYWRBc0RhdGFVUkwoaW4gQmxvYiBi
bG9iKQogICAgICAgICAgICAgcmFpc2VzKEZpbGVFeGNlcHRpb24pOwogICAgIH07Ci19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktpdEJsb2JCdWlsZGVyLmlkbAppbmRleCA4ZWMx
MjgwMmEwMjU1ODY0OTczMWM2MzZhNTEwYjhlMTQ4YWYzY2Q0Li42YjVjOGU2ZjdlOWM0NjA2ODMz
NTIwYmQ2Y2I1MzZhODhmZGNkOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1dlYktpdEJsb2JCdWlsZGVyLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1dlYktp
dEJsb2JCdWlsZGVyLmlkbApAQCAtMjksMjMgKzI5LDIzIEBACiAgKi8KIAogbW9kdWxlIGh0bWwg
ewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1MRUdBQ1lfV0VC
S0lUX0JMT0JfQlVJTERFUiwKICAgICAgICAgQ29uc3RydWN0b3IsCiAgICAgICAgIEpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dAotICAgIF0gV2ViS2l0QmxvYkJ1aWxkZXIgewor
ICAgIF0gaW50ZXJmYWNlIFdlYktpdEJsb2JCdWlsZGVyIHsKICNpZiAhZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykKLSAgICAgICAgQmxvYiBnZXRCbG9iKGluIFtPcHRpb25hbCwgVHJlYXRO
dWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcg
Y29udGVudFR5cGUpOworICAgICAgICBCbG9iIGdldEJsb2IoW09wdGlvbmFsLCBUcmVhdE51bGxB
cz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBj
b250ZW50VHlwZSk7CiAjZW5kaWYKICAgICAgICAgdm9pZCBhcHBlbmQoaW4gQmxvYj8gYmxvYik7
CiAjaWYgZGVmaW5lZChFTkFCTEVfQkxPQikgJiYgRU5BQkxFX0JMT0IKICAgICAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgYXBwZW5kKGluIEFycmF5QnVmZmVyPyBh
cnJheUJ1ZmZlcik7CiAgICAgICAgIHZvaWQgYXBwZW5kKGluIEFycmF5QnVmZmVyVmlldz8gYXJy
YXlCdWZmZXJWaWV3KTsKICNlbmRpZgotICAgICAgICB2b2lkIGFwcGVuZChpbiBET01TdHJpbmcg
dmFsdWUsIGluIFtPcHRpb25hbCwgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZW5kaW5ncykgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICB2b2lkIGFwcGVuZChpbiBET01TdHJpbmcgdmFsdWUsIFtPcHRpb25hbCwgVHJl
YXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01T
dHJpbmcgZW5kaW5ncykgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwKaW5kZXggNzNlYWE2NjE4NDJjOThjNTIwYjll
NmRmMTRiMjU3NDk1NDNiZjJjMy4uOGVhZGQzNDU4ODNlNjA3ODNjYTE0NGRlN2U4OGMwNjc5NjVi
ZjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwKQEAgLTMwLDE4ICszMCwxOCBA
QAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3Vz
dG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAogICAgICAg
ICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAogICAgICAgICBJbnRlcmZhY2VOYW1lPUZvcm1EYXRhCi0gICAgXSBET01Gb3JtRGF0YSB7Cisg
ICAgXSBpbnRlcmZhY2UgRE9NRm9ybURhdGEgewogICAgICAgICAvLyB2b2lkIGFwcGVuZChET01T
dHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKICAgICAgICAgLy8gdm9pZCBhcHBlbmQoRE9N
U3RyaW5nIG5hbWUsIEJsb2IgdmFsdWUsIG9wdGlvbmFsIERPTVN0cmluZyBmaWxlbmFtZSk7Ci0g
ICAgICAgIFtDdXN0b21dIHZvaWQgYXBwZW5kKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIERPTVN0cmluZyBuYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHZhbHVlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgZmlsZW5hbWUpOworICAgICAgICBbQ3VzdG9tXSB2b2lkIGFwcGVuZChbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB2YWx1
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIGZpbGVuYW1lKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbAppbmRleCA5M2JmNjdmNjkwMWE5
YTZjYzk2NGRkOTE1MDM3ODY2MDA2NTU0ZGM1Li4zMjk1NWVmYWE4OTU3OWRiYWI2OTU1ZWQyMWNm
ZjAzMThhYjNlYmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0LmlkbApAQCAtMjQsMTEgKzI0LDExIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBKU0dlbmVyYXRl
VG9KU09iamVjdAotICAgIF0gRE9NU2V0dGFibGVUb2tlbkxpc3QgOiBET01Ub2tlbkxpc3Qgewor
ICAgIF0gaW50ZXJmYWNlIERPTVNldHRhYmxlVG9rZW5MaXN0IDogRE9NVG9rZW5MaXN0IHsKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRsCmluZGV4IGNmNTdlMWFlZWY5NmUyOTY3NTAwZWUxN2U1
MGY0MmZkMDg5YzY3MmIuLmUyMzFkOTBjMzk2MDkyMGE4OTQ3Yzg4ZDZiYmNkMDNmYTViYmIzYWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwKQEAgLTI0LDEwICsyNCwxMCBAQAog
CiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgR2VuZXJh
dGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVudFJvb3QsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIKLSAg
ICBdIERPTVRva2VuTGlzdCB7CisgICAgXSBpbnRlcmZhY2UgRE9NVG9rZW5MaXN0IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgaXRlbShpbiB1bnNpZ25lZCBs
b25nIGluZGV4KTsKICAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbiBET01TdHJpbmcgdG9rZW4p
IHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtNDAsNCArNDAsNCBAQCBtb2R1bGUgY29yZSB7CiAj
ZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
T01VUkwuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuaWRsCmluZGV4IGVkMDRjMjNk
NWM2N2IzMWMzYjkzNzM2MjA3ZmI0MGFlOTZhMTZhYWEuLjJmNDNkNzdlN2E1NTkwZmEwZDJmODMz
MWQ4MzMyN2YyMDdjZGYxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJM
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5pZGwKQEAgLTI1LDE4ICsyNSwx
OCBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9QkxPQiwKICAgICAgICAgQ29uc3RydWN0b3IsCiAgICAgICAgIEpTR2Vu
ZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCiAgICAg
ICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEludGVyZmFjZU5hbWU9VVJMCi0gICAgXSBE
T01VUkwgeworICAgIF0gaW50ZXJmYWNlIERPTVVSTCB7CiAjaWYgZGVmaW5lZChFTkFCTEVfTUVE
SUFfU1RSRUFNKSAmJiBFTkFCTEVfTUVESUFfU1RSRUFNCiAgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gc3RhdGlj
IERPTVN0cmluZyBjcmVhdGVPYmplY3RVUkwoaW4gTWVkaWFTdHJlYW0/IHN0cmVhbSk7CiAjZW5k
aWYKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBzdGF0aWMgRE9NU3RyaW5nIGNyZWF0ZU9iamVjdFVSTChpbiBC
bG9iPyBibG9iKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0
YXRpYyB2b2lkIHJldm9rZU9iamVjdFVSTChpbiBET01TdHJpbmcgdXJsKTsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwKaW5kZXggNTBlMTg5
YzY1NTZkMTU1MTNmNWUwNGFiNTZiNDg5ZDcwMjQ4N2E0NS4uMDQzNjEzNGExYTVhOGU1ZGNmMWE1
YTYwZmMwZTAwMjc0MjZmZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QWxsQ29sbGVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVj
dGlvbi5pZGwKQEAgLTI1LDIwICsyNSwyMCBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgTmFtZWRHZXR0
ZXIsCiAgICAgICAgIEN1c3RvbUNhbGwsCiAgICAgICAgIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQs
CiAgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEJhc2VSb290LAogICAgICAgICBWOERl
cGVuZGVudExpZmV0aW1lCi0gICAgXSBIVE1MQWxsQ29sbGVjdGlvbiB7CisgICAgXSBpbnRlcmZh
Y2UgSFRNTEFsbENvbGxlY3Rpb24gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIFtDdXN0b21dIE5vZGUgaXRlbShpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgW0N1c3Rv
bV0gTm9kZSBpdGVtKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICAgICAgICBbQ3VzdG9tXSBOb2RlIG5hbWVkSXRlbShpbiBET01TdHJpbmcg
bmFtZSk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhbiBIVE1MQWxs
Q29sbGVjdGlvbi4KICAgICAgICAgTm9kZUxpc3QgdGFncyhpbiBET01TdHJpbmcgbmFtZSk7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwK
aW5kZXggN2JkMTc0YzYzZTY4ZDQxMTFiOGZlNjM2MjdiNDViZGJmMDg4YzBlZS4uMzdiOWI0MmY4
OTc4OGVlYmY4ODNjMDJkZjliY2ZiZWYyYWM5ZjA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5pZGwKQEAgLTIxLDIxICsyMSwyMSBAQAogbW9kdWxlIGh0bWwgewog
CiAgICAgaW50ZXJmYWNlIEhUTUxBbmNob3JFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb29yZHM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9RE9XTkxPQURfQVRUUklCVVRFLCBSZWZsZWN0XSBET01TdHJpbmcgZG93bmxvYWQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaHJlZjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaHJlZmxhbmc7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHBpbmc7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJl
bDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcmV2OwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzaGFwZTsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFy
c2V0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjb29yZHM7CisgICAg
ICAgIFtDb25kaXRpb25hbD1ET1dOTE9BRF9BVFRSSUJVVEUsIFJlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgZG93bmxvYWQ7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01T
dHJpbmcgaHJlZjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJlZmxh
bmc7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBpbmc7CisgICAgICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHJlbDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgcmV2OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzaGFwZTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0OworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0Vf
T0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCkBAIC00NywxNSArNDcsMTUgQEAg
bW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb3Rv
Y29sOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICNlbHNl
Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGhh
c2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5n
IGhvc3Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGhvc3RuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IERPTVN0cmluZyBwYXRobmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBET01TdHJpbmcgcG9ydDsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1O
dWxsU3RyaW5nXSBET01TdHJpbmcgcHJvdG9jb2w7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlYXJjaDsKKyAgICAgICAgW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgaGFzaDsKKyAgICAgICAgW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgaG9zdDsKKyAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgaG9zdG5hbWU7CisgICAgICAg
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBhdGhuYW1lOwor
ICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBwb3J0
OworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBw
cm90b2NvbDsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgc2VhcmNoOwogCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIG9yaWdpbjsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgb3JpZ2luOwogI2VuZGlmCiAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwpAQCAtNzAsNCArNzAsNCBA
QCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAppbmRleCA4ZjE2YTQwMGZjZjdmNTk2NmM5MDY3OTFh
MjY3NmNjMDE2ZWIwODE0Li43MDdiMTg1Yjk3NDQxYzg1MGY3MTEyYTlmNTZhZWJiNjA5ZDgwZTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbApAQCAtMjAsMzAg
KzIwLDMwIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDdXN0b21OYW1lZFNldHRlciwKICAgICAgICAgSlNDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3RBbmREZXNjcmlwdG9yLAogICAgICAgICBDdXN0b21DYWxsCi0gICAgXSBIVE1MQXBwbGV0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsdDsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXJjaGl2ZTsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29kZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgY29kZUJhc2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGhlaWdodDsKKyAgICBdIGludGVyZmFjZSBIVE1MQXBwbGV0RWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsdDsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXJjaGl2ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgY29kZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgY29kZUJhc2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhlaWdo
dDsKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJ
UFQKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaHNwYWNlOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaHNwYWNlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIGxvbmcgaHNwYWNlOwogI2VuZGlmCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG9iamVj
dDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgb2JqZWN0OwogI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyB2c3BhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9u
ZyB2c3BhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyB2c3BhY2U7CiAjZW5k
aWYKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5pZGwKaW5kZXggZGZiOWM5YjVkOGJiMjg1
Mzc3NWZjZjQ5ZmY2NTFkMjFkN2FmNjYwNi4uMWMyZTE0NWFmNGJjMTkwOTNlMzQ5NmU3ZjNjOGYx
OTc0Zjg1YmE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbApAQCAt
MjEsMTYgKzIxLDE2IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEFyZWFF
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBhbHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvb3JkczsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBocmVmOwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9IcmVmOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBwaW5nOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBzaGFwZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGFy
Z2V0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbHQ7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvb3JkczsKKyAgICAgICAgW1JlZmxlY3Qs
IFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBocmVmOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIGJvb2xlYW4gbm9IcmVmOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyBwaW5nOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzaGFwZTsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdGFyZ2V0OwogCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAjZW5kaWYKICAgICAgICAgLy8gSUUg
RXh0ZW5zaW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhhc2g7CkBA
IC00Nyw0ICs0Nyw0IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbAppbmRleCAxYWRmMDFjNDYxNjY5
ZjIzN2QxYzZiYTJkY2MyZWUwNGU3ODhmODIyLi5iODBmMmQ2ZGVlNDZhNzVmMDQ0Y2ViYWEyN2Yz
YzliNzc1ZThmZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0Vs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwK
QEAgLTI0LDEwICsyNCwxMCBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBDb25kaXRpb25hbD1W
SURFTywKLSAgICAgICAgTmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhpbiBbT3B0aW9uYWw9RGVmYXVs
dElzTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYykKLSAgICBdIEhUTUxBdWRpb0VsZW1lbnQgOiBI
VE1MTWVkaWFFbGVtZW50IHsKKyAgICAgICAgTmFtZWRDb25zdHJ1Y3Rvcj1BdWRpbyhbT3B0aW9u
YWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHNyYykKKyAgICBdIGludGVyZmFj
ZSBIVE1MQXVkaW9FbGVtZW50IDogSFRNTE1lZGlhRWxlbWVudCB7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmlkbAppbmRleCBhNmQyMTVkNTM0MTBhZmE4NzQw
NTIzNmI4YmFmYjI5ZTg4ZDFmYWJhLi5iNTA0YTEwYWQ3MjE0YmUzNjRjZjM3OWJiZmFiZTIwYThh
ZGMzNWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5pZGwKQEAgLTIwLDcgKzIw
LDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQlJFbGVtZW50IDogSFRN
TEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjbGVhcjsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2xlYXI7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmlkbAppbmRleCAyNzUwYzll
ZThjNDRiOGJkNWNmNTg3MjYyODBhMjdlMzAzZTQyNTcyLi44OWZjNjRmMjE2MDEwYWI2YmQ1NDlj
MmQyODRiNjAwMGY0NTFmYzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQu
aWRsCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRN
TEJhc2VFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Qs
IFVSTF0gRE9NU3RyaW5nIGhyZWY7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHRhcmdldDsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBo
cmVmOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXQ7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRm9udEVsZW1lbnQuaWRs
CmluZGV4IDk1YmM5MmMzNzAwMzRlNzNiN2QxZjViMDFjMzRkMDg4ZWMwNjZlZDUuLjhiODIzYjNm
ODY4NjNmZTZjZWU0MTk5MzYzOTZjNTQxZGE2NTBiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQmFzZUZvbnRFbGVtZW50LmlkbApAQCAtMjAsMTIgKzIwLDEyIEBACiBtb2R1bGUgaHRt
bCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEJhc2VGb250RWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY29sb3I7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGNvbG9yOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBmYWNlOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdF
X09CSkVDVElWRV9DCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNpemU7
IC8vIHRoaXMgY2hhbmdlZCB0byBhIGxvbmcsIGJ1dCBvdXIgZXhpc3RpbmcgQVBJIGlzIGEgc3Ry
aW5nCisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpemU7IC8vIHRoaXMg
Y2hhbmdlZCB0byBhIGxvbmcsIGJ1dCBvdXIgZXhpc3RpbmcgQVBJIGlzIGEgc3RyaW5nCiAjZWxz
ZQotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgc2l6ZTsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBsb25nIHNpemU7CiAjZW5kaWYKICAgICB9OwotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbAppbmRleCBhNmI3ZjU2N2Q5NWUyYmY3ZGI1NTZi
OWFkNTk5Y2FjZmNiOTQxN2ViLi5iMDVhMzliMzRlMzMzMTc3YjYwYTU3MGY4ZTEzZGJhMTA4MGEw
MzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCkBAIC0yMSwzOSAr
MjEsMzkgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MQm9keUVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFM
aW5rOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiYWNrZ3JvdW5kOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBiZ0NvbG9yOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBsaW5rOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyB0ZXh0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyB2TGluazsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYUxpbms7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJhY2tncm91bmQ7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxpbms7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHRleHQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHZMaW5rOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFH
RV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBFdmVudCBoYW5kbGVyIGF0dHJpYnV0ZXMKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50
TGlzdGVuZXIgb25iZWZvcmV1bmxvYWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9uaGFzaGNoYW5nZTsKLSAg
ICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2
ZW50TGlzdGVuZXIgb25tZXNzYWdlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUs
IEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbm9mZmxpbmU7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExp
c3RlbmVyIG9ub25saW5lOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2lu
ZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnBvcHN0YXRlOwotICAgICAgICBhdHRy
aWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5l
ciBvbnJlc2l6ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25zdG9yYWdlOwotICAgICAgICBhdHRyaWJ1dGUg
W05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnVu
bG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmV1bmxvYWQ7CisgICAgICAgIFtOb3RFbnVtZXJh
YmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uaGFz
aGNoYW5nZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0g
YXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tZXNzYWdlOworICAgICAgICBbTm90RW51bWVyYWJs
ZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm9mZmxp
bmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9ub25saW5lOworICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNX
aW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnBvcHN0YXRlOwor
ICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbnJlc2l6ZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93
RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zdG9yYWdlOworICAgICAg
ICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnVubG9hZDsKIAotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU9SSUVO
VEFUSU9OX0VWRU5UUywgTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVu
dExpc3RlbmVyIG9ub3JpZW50YXRpb25jaGFuZ2U7CisgICAgICAgIFtDb25kaXRpb25hbD1PUklF
TlRBVElPTl9FVkVOVFMsIE5vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5nZTsKIAogICAgICAgICAvLyBP
dmVycmlkZXMgb2YgRWxlbWVudCBhdHRyaWJ1dGVzICh3aXRoIGRpZmZlcmVudCBpbXBsZW1lbnRh
dGlvbiBpbiBiaW5kaW5ncykuCi0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNX
aW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9uYmx1cjsKLSAgICAgICAgYXR0cmli
dXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIg
b25lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50
TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RF
bnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25sb2FkOwor
ICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmJsdXI7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CisgICAgICAgIFtO
b3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uZm9jdXM7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVu
ZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZDsKIAogICAgICAgICAvLyBOb3QgaW1w
bGVtZW50ZWQgeWV0LgotICAgICAgICAvLyBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2lu
ZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmFmdGVycHJpbnQ7Ci0gICAgICAgIC8v
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExp
c3RlbmVyIG9uYmVmb3JlcHJpbnQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ucmVkbzsKLSAgICAgICAg
Ly8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50
TGlzdGVuZXIgb251bmRvOworICAgICAgICAvLyBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVu
dExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFmdGVycHJpbnQ7CisgICAgICAg
IC8vIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uYmVmb3JlcHJpbnQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlLCBKU1dp
bmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVkbzsKKyAgICAg
ICAgLy8gW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb251bmRvOwogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggMDJlOTFhYmVmMDNhNWRlYTgzMDQz
MzVkOTc3MzcyYjc1NTU3Mzg3NC4uZWRhMWE1NTQ4ZTc1ZWUwYWI2NTEzY2U4Zjg1YzZjZWIwYmQz
ZWM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKQEAgLTIx
LDMyICsyMSwzMiBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxCdXR0b25F
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xl
YW4gYXV0b2ZvY3VzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJs
ZWQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOwotICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtTWV0aG9kOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1UYXJnZXQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGZvcm1BY3Rpb247CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGZvcm1FbmN0eXBlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBmb3JtTWV0aG9kOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7CisgICAgICAgIFtSZWZsZWN0XSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGZvcm1UYXJnZXQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHZhbHVlOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxp
ZGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7
CiAgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOwotICAgICAgICB2b2lkIHNldEN1c3Rv
bVZhbGlkaXR5KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CisgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRp
dHkoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10g
aW4gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxp
c3QgbGFiZWxzOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNj
ZXNzS2V5OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7
CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdF
X09CSkVDVElWRV9DCiAgICAgICAgIHZvaWQgY2xpY2soKTsKICNlbmRpZgogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAppbmRleCAyYmU5NmE1
NTYyN2RkMmRhODgyZTNmY2YzZDAzYjE5NTkzNWI0YWU2Li4zODRiZGNmMTBkZGUyZTE0ZGMwNDM4
ZmEwYjliZThjNWUzZWRiYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVt
ZW50LmlkbApAQCAtMjYsMjMgKzI2LDIzIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEhU
TUxDYW52YXNFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIEhUTUxDYW52
YXNFbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHdpZHRo
OwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CiAKLSAgICAgICAgW0N1c3RvbV0gRE9N
U3RyaW5nIHRvRGF0YVVSTChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmlu
ZWRBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHR5
cGUpCisgICAgICAgIFtDdXN0b21dIERPTVN0cmluZyB0b0RhdGFVUkwoW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9D
CiAgICAgICAgIC8vIFRoZSBjdXN0b20gYmluZGluZyBpcyBuZWVkZWQgdG8gaGFuZGxlIGNvbnRl
eHQgY3JlYXRpb24gYXR0cmlidXRlcy4KLSAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGdldENv
bnRleHQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbnRleHRJ
ZCk7CisgICAgICAgIFtDdXN0b21dIERPTU9iamVjdCBnZXRDb250ZXh0KFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBjb250ZXh0SWQpOwogI2VuZGlmCiAjZW5kaWYK
IAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
b2xsZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCmlu
ZGV4IGVmZDkxYzcyYzI2MWI0MjY5MDFkZTFjMzdmNTIzY2YzMTg0MjMxN2EuLjU3Y2JjMTFlY2Uw
MTE5MmQ3OGFhZWY2MTJjNjJhMmIxMzA0Y2Y4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uaWRsCkBAIC0yMCwyMSArMjAsMjEgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIE5hbWVk
R2V0dGVyLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBHZW5lcmF0ZUlzUmVh
Y2hhYmxlPUltcGxCYXNlUm9vdCwKICAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZSwKICAgICAg
ICAgT2JqQ1BvbHltb3JwaGljCi0gICAgXSBIVE1MQ29sbGVjdGlvbiB7CisgICAgXSBpbnRlcmZh
Y2UgSFRNTENvbGxlY3Rpb24gewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7Ci0gICAgICAgIE5vZGUgaXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICAgICAgW0N1c3RvbV0gTm9kZSBuYW1l
ZEl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOwor
ICAgICAgICBOb2RlIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgICAgIFtDdXN0b21dIE5vZGUgbmFtZWRJdGVtKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBuYW1lKTsKIAogI2lmIGRlZmluZWQo
TEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgIE5v
ZGVMaXN0IHRhZ3MoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5h
bWUpOworICAgICAgICBOb2RlTGlzdCB0YWdzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIERPTVN0cmluZyBuYW1lKTsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmlkbAppbmRleCAxYTkzMjZmYmYxMDA2NjlhZWZhOGIx
ODMyMDFiNTEyMWRiMjhiODIyLi5hMTIyYTc5ZWRlZDdmOGQ0MTdkZWVhNDBkMDlkYzQyM2U4NmQ3
YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxETGlzdEVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5pZGwKQEAgLTIwLDcg
KzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MRExpc3RFbGVtZW50
IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29t
cGFjdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGNvbXBhY3Q7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaWRs
CmluZGV4IDFmMzgxMDVmODFiYzExOTc1ODE3M2Y2MWVhMDY2Y2JjNWQwNjllYjMuLmFhMDdiMzg2
MjNkYTc4MjJjOGQ2OGIyNGI3ZGJlYTkwZjQxNDk4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGF0YUxpc3RFbGVtZW50LmlkbApAQCAtMjksOSArMjksOSBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1EQVRBTElTVCwK
LSAgICBdIEhUTUxEYXRhTGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgWworICAgICAg
ICBDb25kaXRpb25hbD1EQVRBTElTVAorICAgIF0gaW50ZXJmYWNlIEhUTUxEYXRhTGlzdEVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVj
dGlvbiBvcHRpb25zOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuaWRsCmluZGV4IDVhZDk1MDhjOTk1YWI1YjU2ZjY2ZjQ3YzQwMTQ3MmI5OGM0
MzE0MjguLjBkNDY4YWEyNjRjZTc0MjVhYWY3Y2JjZTBmOGNjMGRjYjRkMDVhODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAK
IG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MRGV0YWlsc0VsZW1lbnQgOiBIVE1M
RWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBvcGVuOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gb3BlbjsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXJlY3RvcnlFbGVtZW50LmlkbAppbmRleCBiMDk2
OTc0NmFmNDA0OGIyNzI2YmI1M2Q4NzJjYjJlYTg0NmIyZTU5Li5jYzE0ZmY4YTdmNmFhZjk5YzI5
MzgwYmE1ZjZjMDJjOTBmYTE0ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEaXJlY3RvcnlFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXJl
Y3RvcnlFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxEaXJlY3RvcnlFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gY29tcGFjdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBib29sZWFuIGNvbXBhY3Q7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGl2RWxlbWVudC5pZGwKaW5kZXggOTBmYjg0ZjhmNWRlYjljOGQyZDZjZmIyNDlhNDQ3
MDY2Yjk3ODRjYS4uMTRiODU0NWMxNWFlM2ZkMTQ5NGE5OTBlMDQ3MWM2ZTY0ZjI4MTI3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAKIG1v
ZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MRGl2RWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWduOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwKaW5kZXggZGU5YjUxZDg0ZjdjZWQwZGNjYzBi
MzI0ODhmNjZmMjhkY2M3NTM3Ny4uYzI2MGIxY2JkNWI4NmI1ZjIyOTNmNzg2NTU1NmI4ZjExZTU3
NDBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbApAQCAtMjAsMTQgKzIwLDE0
IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
dXN0b21OYW1lZEdldHRlciwKICAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0Ci0gICAgXSBIVE1M
RG9jdW1lbnQgOiBEb2N1bWVudCB7CisgICAgXSBpbnRlcmZhY2UgSFRNTERvY3VtZW50IDogRG9j
dW1lbnQgewogICAgICAgICBbSlNDdXN0b20sIFY4Q3VzdG9tXSB2b2lkIG9wZW4oKTsKICAgICAg
ICAgdm9pZCBjbG9zZSgpOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHdyaXRlKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0ZXh0KTsKLSAgICAgICAgW0N1c3RvbV0g
dm9pZCB3cml0ZWxuKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0
ZXh0KTsKKyAgICAgICAgW0N1c3RvbV0gdm9pZCB3cml0ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBET01TdHJpbmcgdGV4dCk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgd3JpdGVs
bihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdGV4dCk7CiAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGVtYmVkczsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIHBsdWdpbnM7CkBAIC0zNyw3ICszNyw3
IEBAIG1vZHVsZSBodG1sIHsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYg
TEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgZXZlbnR1
YWxseSBiZSBhdmFpbGFibGUgKGlmIHRoZXkgYXJlIHdhbnRlZCkgZm9yIGFsbCBsYW5ndWFnZXMu
Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tLCBEZWxldGFibGVdIEhUTUxBbGxD
b2xsZWN0aW9uIGFsbDsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbSwgRGVsZXRhYmxlXSBhdHRy
aWJ1dGUgSFRNTEFsbENvbGxlY3Rpb24gYWxsOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBjbGVh
cigpOwpAQCAtNDcsMTkgKzQ3LDE5IEBAIG1vZHVsZSBodG1sIHsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
aGVpZ2h0OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIERPTVN0cmluZyBkaXI7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlc2lnbk1vZGU7CisgICAgICAgICAgICAgICAgIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpcjsKKyAgICAgICAg
ICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZGVz
aWduTW9kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjb21wYXRNb2Rl
OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1lbnQ7CiAg
ICAgICAgIGJvb2xlYW4gaGFzRm9jdXMoKTsKIAogICAgICAgICAvLyBEZXByZWNhdGVkIGF0dHJp
YnV0ZXMKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZmdDb2xvcjsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpbmtDb2xvcjsKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgbGlua0NvbG9yOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyB2bGlua0NvbG9yOworICAgICAgICAgICAgICAgICBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBiZ0NvbG9yOworICAgICAgICAg
ICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBmZ0Nv
bG9yOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gYXR0cmlidXRl
IERPTVN0cmluZyBhbGlua0NvbG9yOworICAgICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBsaW5rQ29sb3I7CisgICAgICAgICAgICAgICAg
IFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZsaW5rQ29sb3I7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwKaW5kZXggNGY1
ZjIzNmY2NzVkM2FiOGQ2NTNhZWE5NGMzZjY1Mjg3MTE1ZmI1NS4uMWYyOGI1ZWRhYmIyZGEwMjlh
ZTc0NjRlZDdlNzE5NGZjOGY3ZWEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5pZGwK
QEAgLTIwLDcyICsyMCw3MiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBKU0N1c3Rv
bVB1c2hFdmVudEhhbmRsZXJTY29wZSwKICAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0Ci0gICAg
XSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIEhUTUxFbGVtZW50IDog
RWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIC8vIGlodC5jb20gcmVsaWVzIG9uIGlkIHJldHVy
bmluZyB0aGUgZW1wdHkgc3RyaW5nIHdoZW4gbm8gaWQgaXMgcHJlc2VudC4gCiAgICAgICAgICAg
ICAgICAgIC8vIE90aGVyIGJyb3dzZXJzIGRvIHRoaXMgYXMgd2VsbC4gU28gd2UgZG9uJ3QgY29u
dmVydCBudWxsIHRvIEpTIG51bGwuCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGlkOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB0aXRsZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgbGFuZzsKKyAgICAgICAgICAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgaWQ7CisgICAgICAgICAgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRp
dGxlOworICAgICAgICAgICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBsYW5n
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICB0cmFuc2xh
dGU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGRpcjsK
LSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNsYXNzXSBET01TdHJpbmcgY2xh
c3NOYW1lOworICAgICAgICAgICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBk
aXI7CisgICAgICAgICAgICAgICAgIFtSZWZsZWN0PWNsYXNzXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNsYXNzTmFtZTsKICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRva2Vu
TGlzdCBjbGFzc0xpc3Q7CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAg
ICAgICAgIHRhYkluZGV4OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgICAgZHJhZ2dhYmxlOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB3ZWJraXRkcm9wem9uZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBib29sZWFuIGhpZGRlbjsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICAgICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyB3ZWJraXRkcm9wem9uZTsKKyAgICAgICAgICAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBib29sZWFuIGhpZGRlbjsKKyAgICAgICAgICAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgYWNjZXNzS2V5OwogCiAgICAgICAgIC8vIEV4dGVuc2lvbnMKLSAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJp
bmcgaW5uZXJIVE1MCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGlubmVyVGV4dAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmddIERPTVN0cmluZyBvdXRlckhUTUwKLSAgICAgICAgICAgICAgICAgICAgIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgb3V0ZXJUZXh0Ci0gICAgICAgICAgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAgICAgIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVySFRNTAorICAg
ICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVyVGV4
dAorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
ICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG91
dGVySFRNTAorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIG91dGVyVGV4dAorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgRWxlbWVudCBpbnNlcnRBZGphY2VudEVsZW1lbnQoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHdoZXJlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBFbGVt
ZW50IGVsZW1lbnQpCisgICAgICAgIEVsZW1lbnQgaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB3aGVyZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gRWxlbWVudCBlbGVtZW50KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHZvaWQgaW5zZXJ0QWRqYWNlbnRIVE1MKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyB3aGVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGh0bWwpCisgICAgICAg
IHZvaWQgaW5zZXJ0QWRqYWNlbnRIVE1MKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IERPTVN0cmluZyB3aGVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGh0bWwpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBpbnNlcnRBZGphY2VudFRleHQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIHdoZXJlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgdGV4dCkKKyAgICAgICAgdm9pZCBpbnNlcnRBZGphY2VudFRleHQoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHdoZXJlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgdGV4dCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBjaGlsZHJlbjsKIAotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBjb250ZW50
RWRpdGFibGUKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBE
T01TdHJpbmcgY29udGVudEVkaXRhYmxlCisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb250
ZW50RWRpdGFibGU7CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc3BlbGxj
aGVjazsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0Vf
T0JKRUNUSVZFX0MgLy8gTm8gT2JqZWN0aXZlLUMgYmluZGluZ3MgeWV0LgotICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0gYm9vbGVhbiBp
dGVtU2NvcGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9E
QVRBXSBET01TZXR0YWJsZVRva2VuTGlzdCBpdGVtVHlwZTsKLSAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIFJlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGl0
ZW1JZDsKKyAgICAgICAgICAgICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gaXRlbVNjb3BlOworICAgICAgICBbQ29uZGl0aW9uYWw9TUlDUk9E
QVRBXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tlbkxpc3QgaXRlbVR5cGU7Cisg
ICAgICAgICAgICAgICAgIFtDb25kaXRpb25hbD1NSUNST0RBVEEsIFJlZmxlY3QsIFVSTF0gYXR0
cmlidXRlIERPTVN0cmluZyBpdGVtSWQ7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1NSUNST0RBVEFdIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7Ci0gICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBET01TZXR0YWJs
ZVRva2VuTGlzdCBpdGVtUHJvcDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0IGl0ZW1SZWY7CisgICAgICAgIFtD
b25kaXRpb25hbD1NSUNST0RBVEFdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZXR0YWJsZVRva2Vu
TGlzdCBpdGVtUHJvcDsKIAogI2lmIGRlZmluZWQoRU5BQkxFX01JQ1JPREFUQSkgJiYgRU5BQkxF
X01JQ1JPREFUQQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JP
REFUQV0gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIHByb3BlcnRpZXM7CisgICAgICAgIFtDb25k
aXRpb25hbD1NSUNST0RBVEFdIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24gcHJvcGVydGllczsKICNlbmRpZgogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFH
RV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVf
QykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9TUlDUk9EQVRBLCBDdXN0b21dIERPTU9iamVjdCBpdGVtVmFsdWUKLSAgICAg
ICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
ICAgICAgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQSwgQ3VzdG9tXSBhdHRyaWJ1dGUgRE9NT2JqZWN0
IGl0ZW1WYWx1ZQorICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAjZW5kaWYKICNlbmRpZgogCkBAIC05Niw0ICs5Niw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgdm9pZCBjbGljaygpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmlkbAppbmRleCBiNmUzYzE2NmE2MTdiODBiNzlmZTJkZDk1OTZiOTBlOGVl
NzE2ZDM0Li43ODE4ZDU2MDMxMjg0MGUyNmUwNjY4ZWY2YmJjMDlkMDIyYTA1YzVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwKQEAgLTIwLDI0ICsyMCwyNCBAQAog
CiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9t
TmFtZWRTZXR0ZXIsCiAgICAgICAgIEpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3Jp
cHRvciwKICAgICAgICAgQ3VzdG9tQ2FsbAotICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxF
bGVtZW50IHsKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAgICBd
IGludGVyZmFjZSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsaWduOwogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAotICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGhlaWdodDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBoZWlnaHQ7
CiAjZWxzZQotICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyBoZWlnaHQ7CisgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKICNlbmRpZgotICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIG5hbWU7Ci0gICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmlu
ZyBzcmM7Ci0gICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKKyAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJp
YnV0ZSBET01TdHJpbmcgc3JjOworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5
cGU7CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NS
SVBUCi0gICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgd2lkdGg7CisgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2lkdGg7CiAjZWxzZQotICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gbG9uZyB3aWR0aDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGxvbmcgd2lkdGg7CiAj
ZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX1NWRykgJiYgRU5BQkxFX1NWRwpAQCAtNDcsNCAr
NDcsNCBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5kZXggZDY3YjNmNjQ3MmM2MTJh
MTZkZTY5MzI5NzYyMTZjY2ZkZGI2N2QyMC4uNzQ0ZWJmNzAwNGUxOTQ1Yjc4OTA0MzdkMGIyYWNh
MTBmYTEwMGI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQu
aWRsCkBAIC0yMCw5ICsyMCw5IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRN
TEZpZWxkU2V0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xl
YW4gZGlzYWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQg
Zm9ybTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAKQEAgLTMyLDYgKzMyLDYgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25N
ZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQg
ICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVu
ZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CisgICAgICAgIHZvaWQgICAg
IHNldEN1c3RvbVZhbGlkaXR5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5l
ZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBlcnJvcik7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5pZGwKaW5kZXggMTQxODE2ZDFkMmNhMGExMzll
MzhkZWY2OWRhODNkMjg4MTU0NzQ2MS4uMWYyMWM5N2E1Yzc5OGM0ZjVlYmZjNDRjNTdjNjdkMjg2
NjM4ZDcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmlkbApAQCAtMjAs
OSArMjAsOSBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxGb250RWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
Y29sb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZhY2U7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNpemU7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbG9yOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBmYWNlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBz
aXplOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5p
ZGwKaW5kZXggYjZhNTM2YzA4OTZmYmYyYWJjM2ExZDQ3OWZhMjRlYTMxYmZjZTExOS4uMjU4YTRi
Y2MxNGUyY2JkYjI2YjM1N2Q2MjI4NWEwOGZiZTUwNWE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmlkbApAQCAtMjAsMTkgKzIwLDE5IEBACiAKIG1vZHVsZSBodG1sIHsK
IAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAg
ICBDdXN0b21OYW1lZEdldHRlcgotICAgIF0gSFRNTEZvcm1FbGVtZW50IDogSFRNTEVsZW1lbnQg
ewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9YWNjZXB0X2NoYXJzZXRdIERPTVN0cmluZyBh
Y2NlcHRDaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5n
IGFjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXV0b2NvbXBs
ZXRlOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBlbmN0eXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyBlbmNvZGluZzsKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbWV0aG9kOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9WYWxpZGF0
ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdGFyZ2V0OworICAgIF0g
aW50ZXJmYWNlIEhUTUxGb3JtRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgW1JlZmxl
Y3Q9YWNjZXB0X2NoYXJzZXRdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWNjZXB0Q2hhcnNldDsKKyAg
ICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBhY3Rpb247CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZW5jdHlwZTsKKyAgICAg
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZW5jb2Rpbmc7
CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1l
dGhvZDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIG5vVmFsaWRhdGU7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhcmdldDsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgSFRNTENvbGxlY3Rpb24gZWxlbWVudHM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIGxlbmd0aDsKQEAgLTQ1LDQgKzQ1LDQgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2
b2lkIHJlc2V0KCk7CiAgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0eSgpOwogICAgIH07Ci19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5pZGwKaW5kZXggZjQwZjdi
MWM1M2I4NWVkODYzYzRlMjVjN2I5MTI4YWRiODEyNmEyNS4uYTE3NzAyZTA4ODFkMDUyYzAyMTRj
NzUxYzI4NzY5MTA2OTVjNzI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuaWRsCkBAIC0yMiwxNyArMjIsMTcgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNl
IEhUTUxGcmFtZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgZnJhbWVCb3JkZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGxvbmdEZXNjOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBtYXJnaW5IZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IG1hcmdpbldpZHRoOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1l
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gbm9SZXNpemU7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHNjcm9sbGluZzsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGZyYW1lQm9yZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBsb25nRGVzYzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgbWFyZ2luSGVpZ2h0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBt
YXJnaW5XaWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIG5vUmVzaXplOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzY3JvbGxpbmc7CisgICAgICAgIFtSZWZsZWN0
LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3JjOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0
eUZvck5vZGVdIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKKyAgICAgICAgW0NoZWNrU2VjdXJp
dHlGb3JOb2RlXSByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgY29udGVudERvY3VtZW50Owog
CiAgICAgICAgIC8vIEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVdp
bmRvdyBjb250ZW50V2luZG93OwpAQCAtNDQsMTEgKzQ0LDExIEBAIG1vZHVsZSBodG1sIHsKICNl
bmRpZgogI2VuZGlmCiAKLSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
LCBDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBsb2NhdGlvbjsKKyAgICAgICAgW1RyZWF0TnVsbEFz
PU51bGxTdHJpbmcsIEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVN0cmluZyBsb2NhdGlvbjsK
IAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OwogCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCmluZGV4IGEzZDRiM2VjNDJjZTU2Njc1
YWM1YWM5NDg4NTAwMTU5N2ZlOThlNjguLmY2MDJjMGExNTE4ZGFhYjgxMDRhMmU2NTFhZjRiOGZl
MDdjOTI1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmlk
bApAQCAtMjAsMzggKzIwLDM4IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDdXN0b21OYW1lZEdldHRlcgotICAgIF0gSFRNTEZyYW1lU2V0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgY29sczsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgcm93czsKKyAg
ICBdIGludGVyZmFjZSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjb2xzOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyByb3dzOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNU
SVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICAvLyBFdmVudCBoYW5kbGVy
IGF0dHJpYnV0ZXMKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25iZWZvcmV1bmxvYWQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVy
IG9uaGFzaGNoYW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRv
d0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25tZXNzYWdlOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBv
bm9mZmxpbmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVu
dExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ub25saW5lOwotICAgICAgICBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnBvcHN0
YXRlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0
ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbnJlc2l6ZTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25zdG9yYWdlOwot
ICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0g
RXZlbnRMaXN0ZW5lciBvbnVubG9hZDsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2luZG93
RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZvcmV1bmxvYWQ7Cisg
ICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uaGFzaGNoYW5nZTsKKyAgICAgICAgW05vdEVudW1lcmFibGUsIEpTV2lu
ZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tZXNzYWdlOworICAg
ICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbm9mZmxpbmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ub25saW5lOworICAgICAgICBb
Tm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbnBvcHN0YXRlOworICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExp
c3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlc2l6ZTsKKyAgICAgICAgW05vdEVu
dW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25zdG9yYWdlOworICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVy
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnVubG9hZDsKIAotICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU9SSUVOVEFUSU9OX0VWRU5UUywgTm90RW51bWVyYWJsZSwgSlNXaW5kb3dF
dmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9ub3JpZW50YXRpb25jaGFuZ2U7CisgICAgICAg
IFtDb25kaXRpb25hbD1PUklFTlRBVElPTl9FVkVOVFMsIE5vdEVudW1lcmFibGUsIEpTV2luZG93
RXZlbnRMaXN0ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5n
ZTsKIAogICAgICAgICAvLyBPdmVycmlkZXMgb2YgRWxlbWVudCBhdHRyaWJ1dGVzICh3aXRoIGRp
ZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBpbiBiaW5kaW5ncykuCi0gICAgICAgIGF0dHJpYnV0ZSBb
Tm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9uYmx1
cjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVu
ZXJdIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJh
YmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb25mb2N1czsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIEV2ZW50
TGlzdGVuZXIgb25sb2FkOworICAgICAgICBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExp
c3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmJsdXI7CisgICAgICAgIFtOb3RFbnVt
ZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
ZXJyb3I7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlLCBK
U1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubG9hZDsKIAog
ICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgeWV0LgotICAgICAgICAvLyBhdHRyaWJ1dGUgW05v
dEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0ZW5lcl0gRXZlbnRMaXN0ZW5lciBvbmFmdGVy
cHJpbnQ7Ci0gICAgICAgIC8vIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVu
dExpc3RlbmVyXSBFdmVudExpc3RlbmVyIG9uYmVmb3JlcHJpbnQ7Ci0gICAgICAgIC8vIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBFdmVudExpc3RlbmVy
IG9ucmVkbzsKLSAgICAgICAgLy8gYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2
ZW50TGlzdGVuZXJdIEV2ZW50TGlzdGVuZXIgb251bmRvOworICAgICAgICAvLyBbTm90RW51bWVy
YWJsZSwgSlNXaW5kb3dFdmVudExpc3RlbmVyXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmFm
dGVycHJpbnQ7CisgICAgICAgIC8vIFtOb3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVu
ZXJdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uYmVmb3JlcHJpbnQ7CisgICAgICAgIC8vIFtO
b3RFbnVtZXJhYmxlLCBKU1dpbmRvd0V2ZW50TGlzdGVuZXJdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9ucmVkbzsKKyAgICAgICAgLy8gW05vdEVudW1lcmFibGUsIEpTV2luZG93RXZlbnRMaXN0
ZW5lcl0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb251bmRvOwogI2VuZGlmCiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaWRsCmluZGV4IDIzYTU3ZGExMGQx
YmU0YjA2Y2I4NzcwNTE3YWFkMDE4YzA3NjY4ZWQuLjBlZTkzMGI0MzM5ODgwMWQ3YWE0NjA4ZGQ1
NzNjOGE1NjliNjhhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmlkbApAQCAt
MjAsMTAgKzIwLDEwIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEhSRWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBub1NoYWRlOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzaXplOwotICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVh
biBub1NoYWRlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBzaXplOwor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaWRsCmluZGV4IDU5YmRiZjBl
N2ViOTZlNGRmMzEyOGQxZjAyNGVmNzhlOTdlZjU3ZWEuLjcyYTkzNjAyMzQ2Y2JhZDhjMWU1ZmE1
ZmZkNWM2YjdlMmE0YzVkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhl
YWRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5p
ZGwKQEAgLTIwLDcgKzIwLDcgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1M
SGVhZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHByb2ZpbGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHByb2ZpbGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEhlYWRpbmdFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRp
bmdFbGVtZW50LmlkbAppbmRleCBlNDE5YzFjN2RhYTAyOTY4NDViZDcwZTllNzc4NWQzNGE5Y2Zh
MTk4Li4xN2YwYjhkZDE3YWZjNmFiMjY2MGI3NDYzZWEzZTVlZjBjMWY3MTMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkaW5nRWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSGVhZGluZ0VsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBt
b2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEhlYWRpbmdFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmlkbAppbmRleCAwM2M2NjFjYzgy
YzM5NjY2ZWMzMjBmYzA0NzBmZjVmNDQ5ODkxMDI3Li44MmQ3Yjc1ZmE5ZDIzZTk2ZjM2ZmMzMzIw
ZTJlYjFhZmNhY2Y3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1s
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaWRs
CkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTEh0
bWxFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB2ZXJzaW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3Ry
aW5nIG1hbmlmZXN0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB2ZXJz
aW9uOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1hbmlmZXN0
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
aWRsCmluZGV4IDJkYmYzOGRiZWQzMTc2MDg5MGYxNzk1YTFiZGQxNmNmNWU5OWZiOWQuLmFkM2M2
NzI0OWI0YTg3NzNkY2E2NWIwYjhkZjA3YzgwYjQ5Zjg4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsCkBAIC0yMSwyMiArMjEsMjIgQEAKIG1vZHVsZSBodG1s
IHsKIAogICAgIGludGVyZmFjZSBIVE1MSUZyYW1lRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZyYW1lQm9yZGVyOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGxvbmdEZXNjOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBtYXJnaW5IZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1h
cmdpbldpZHRoOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzYW5kYm94OwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3QsIENvbmRpdGlvbmFsPUlGUkFNRV9TRUFNTEVTU10gYm9vbGVhbiBz
ZWFtbGVzczsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2Nyb2xsaW5n
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc3JjZG9jOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGZyYW1lQm9yZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBoZWln
aHQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxvbmdEZXNjOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBtYXJnaW5IZWlnaHQ7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1hcmdpbldpZHRoOworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBzYW5kYm94OworICAgICAgICBbUmVmbGVjdCwgQ29uZGl0aW9uYWw9SUZS
QU1FX1NFQU1MRVNTXSBhdHRyaWJ1dGUgYm9vbGVhbiBzZWFtbGVzczsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2Nyb2xsaW5nOworICAgICAgICBbUmVmbGVjdCwgVVJM
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgc3JjZG9jOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB3
aWR0aDsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBEb2N1bWVudCBjb250ZW50
RG9jdW1lbnQ7CisgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gcmVhZG9ubHkgYXR0cmli
dXRlIERvY3VtZW50IGNvbnRlbnREb2N1bWVudDsKIAogICAgICAgICAvLyBFeHRlbnNpb25zCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgY29udGVudFdpbmRvdzsKQEAgLTQ5
LDQgKzQ5LDQgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCmluZGV4IGQ4OTNiNmMwYzkxMTk3OTNm
ZmJjMTYwZDIzMWU0Y2MxNDlkZTFiNTguLjc4Mzc1MTg4ODU1NWE1ZWFkZTFhM2JjYjBlMGI2NDBk
ODFiM2Y0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmlkbApAQCAt
MjAsMjYgKzIwLDI2IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEhUTUxJbWFnZUVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IG5hbWU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbHQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJvcmRlcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgY3Jvc3NPcmlnaW47CisgICAgXSBpbnRlcmZhY2UgSFRNTEltYWdlRWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
bmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFsdDsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgYm9yZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRl
IERPTVN0cmluZyBjcm9zc09yaWdpbjsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgaGVpZ2h0Owot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGxvbmcgaHNwYWNlOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gaXNNYXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwg
VVJMXSBET01TdHJpbmcgbG9uZ0Rlc2M7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJM
XSBET01TdHJpbmcgc3JjOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1
c2VNYXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gbG9uZyB2c3BhY2U7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyBoc3BhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgYm9vbGVhbiBpc01hcDsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERP
TVN0cmluZyBsb25nRGVzYzsKKyAgICAgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0
cmluZyBzcmM7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVzZU1hcDsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBsb25nIHZzcGFjZTsKICAgICAgICAgYXR0cmli
dXRlIGxvbmcgd2lkdGg7CiAgICAgICAgIAogICAgICAgICAvLyBFeHRlbnNpb25zCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBsZXRlOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3QsVVJMXSBET01TdHJpbmcgbG93c3JjOworICAgICAgICBbUmVmbGVjdCxVUkxdIGF0
dHJpYnV0ZSBET01TdHJpbmcgbG93c3JjOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBuYXR1cmFsSGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBuYXR1cmFs
V2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHg7CkBAIC01Miw0ICs1Miw0
IEBAIG1vZHVsZSBodG1sIHsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBlMzI2Y2U3YmUyNjFlMDgwMTMzNzkzYmEy
YTY1MDg2NTkxYjA1YzVmLi44MWU0MTJhZTkxZDE2MDM0YWYxOTQ4MjcwNmYyNDkwNmRhZTQ4Y2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTIyLDgzICsy
Miw4MyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxJbnB1dEVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFj
Y2VwdDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWx0OwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhdXRvY29tcGxldGU7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdD1jaGVja2VkXSBib29sZWFuIGRlZmF1bHRDaGVja2VkOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBhY2NlcHQ7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFsdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YXV0b2NvbXBsZXRlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2Zv
Y3VzOworICAgICAgICBbUmVmbGVjdD1jaGVja2VkXSBhdHRyaWJ1dGUgYm9vbGVhbiBkZWZhdWx0
Q2hlY2tlZDsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gY2hlY2tlZDsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZGlyTmFtZTsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBkaXJOYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gZGlz
YWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsK
ICAgICAgICAgYXR0cmlidXRlIEZpbGVMaXN0IGZpbGVzOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGZvcm1BY3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1FbmN0eXBlOwotICAgICAgICBhdHRy
aWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBmb3JtTWV0aG9kOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5vVmFsaWRhdGU7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1UYXJnZXQ7CisgICAgICAgIFtSZWZs
ZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybUFjdGlvbjsKKyAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybUVuY3R5cGU7CisgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZvcm1NZXRo
b2Q7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZm9ybVRhcmdldDsKICAgICAg
ICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBpbmRldGVybWluYXRlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlv
bmFsPURBVEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBtYXg7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBzZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIG1pbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIG11bHRpcGxl
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBuYW1lOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBwYXR0ZXJuOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBwbGFjZWhvbGRlcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBib29sZWFuIHJlYWRPbmx5OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xl
YW4gcmVxdWlyZWQ7CisgICAgICAgIFtDb25kaXRpb25hbD1EQVRBTElTVF0gcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxFbGVtZW50IGxpc3Q7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG1heDsKKyAgICAgICAgYXR0cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNldHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBtaW47
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgcGF0dGVybjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgcGxhY2Vob2xkZXI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVh
biByZWFkT25seTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHJlcXVpcmVk
OwogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElW
RV9DCi0gICAgICAgIGF0dHJpYnV0ZSBbT2JqQ0ltcGxlbWVudGVkQXNVbnNpZ25lZExvbmddIERP
TVN0cmluZyBzaXplOyAvLyBET00gbGV2ZWwgMiBjaGFuZ2VkIHRoaXMgdG8gYSBsb25nLCBidXQg
T2JqQyBBUEkgaXMgYSBzdHJpbmcKKyAgICAgICAgW09iakNJbXBsZW1lbnRlZEFzVW5zaWduZWRM
b25nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNpemU7IC8vIERPTSBsZXZlbCAyIGNoYW5nZWQgdGhp
cyB0byBhIGxvbmcsIGJ1dCBPYmpDIEFQSSBpcyBhIHN0cmluZwogI2Vsc2UKICAgICAgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgc2l6ZTsgLy8gQ2hhbmdlZCBzdHJpbmcgLT4gbG9uZyAtPiB1
bnNpZ25lZCBsb25nCiAjZW5kaWYKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERP
TVN0cmluZyBzcmM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHN0ZXA7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5
cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgotICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBkZWZhdWx0VmFsdWU7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZh
bHVlOworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAg
ICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3RlcDsKKyAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkg
ZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAjaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCi0gICAgICAgIGF0dHJpYnV0ZSBEYXRl
IHZhbHVlQXNEYXRlIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmli
dXRlIERhdGUgdmFsdWVBc0RhdGUgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKLSAg
ICAgICAgYXR0cmlidXRlIGRvdWJsZSB2YWx1ZUFzTnVtYmVyIHNldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIGRvdWJsZSB2YWx1ZUFzTnVtYmVyIHNldHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9u
ZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzdGVwRG93bihpbiBbT3B0
aW9uYWxdIGxvbmcgbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc3RlcFVw
KFtPcHRpb25hbF0gaW4gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9p
ZCBzdGVwRG93bihbT3B0aW9uYWxdIGluIGxvbmcgbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
ICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2lkdGg7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gY2hlY2tWYWxpZGl0
eSgpOwotICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7Cisg
ICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRy
ZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxzOwogCiAgICAgICAgIHZvaWQgc2Vs
ZWN0KCk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25nIHNlbGVjdGlvblN0YXJ0Owot
ICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gbG9uZyBzZWxlY3Rpb25FbmQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tXSBET01TdHJpbmcgc2VsZWN0aW9uRGlyZWN0aW9uOworICAgICAgICBb
Q3VzdG9tXSBhdHRyaWJ1dGUgbG9uZyBzZWxlY3Rpb25TdGFydDsKKyAgICAgICAgW0N1c3RvbV0g
YXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uRW5kOworICAgICAgICBbQ3VzdG9tXSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHNlbGVjdGlvbkRpcmVjdGlvbjsKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVD
VElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNl
dFNlbGVjdGlvblJhbmdlKGluIGxvbmcgc3RhcnQsIGluIGxvbmcgZW5kKTsKICNlbHNlCi0gICAg
ICAgIFtDdXN0b21dIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBlbmQsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gRE9NU3Ry
aW5nIGRpcmVjdGlvbik7CisgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2Uo
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gbG9uZyBlbmQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIGRpcmVjdGlvbik7CiAjZW5kaWYKIAogICAgICAgICAv
LyBOb24tc3RhbmRhcmQgYXR0cmlidXRlcwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1ESVJFQ1RPUllf
VVBMT0FELCBSZWZsZWN0XSBib29sZWFuIHdlYmtpdGRpcmVjdG9yeTsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdXNlTWFwOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGJvb2xlYW4gaW5jcmVtZW50YWw7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9
SU5QVVRfU1BFRUNILCBSZWZsZWN0LCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gd2Via2l0
U3BlZWNoOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSCwgUmVm
bGVjdCwgVjhFbmFibGVkQXRSdW50aW1lXSBib29sZWFuIHdlYmtpdEdyYW1tYXI7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9SU5QVVRfU1BFRUNILCBOb3RFbnVtZXJhYmxlXSBFdmVu
dExpc3RlbmVyIG9ud2Via2l0c3BlZWNoY2hhbmdlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURJUkVDVE9SWV9VUExP
QUQsIFJlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdGRpcmVjdG9yeTsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlTWFwOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gaW5jcmVtZW50YWw7CisgICAgICAgIFtDb25kaXRpb25hbD1JTlBV
VF9TUEVFQ0gsIFJlZmxlY3QsIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIGJvb2xlYW4g
d2Via2l0U3BlZWNoOworICAgICAgICBbQ29uZGl0aW9uYWw9SU5QVVRfU1BFRUNILCBSZWZsZWN0
LCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdEdyYW1tYXI7Cisg
ICAgICAgIFtDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gsIE5vdEVudW1lcmFibGVdIGF0dHJpYnV0
ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0c3BlZWNoY2hhbmdlOwogCiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VB
R0VfT0JKRUNUSVZFX0MpICYmIExBTkdVQUdFX09CSkVDVElWRV9DCkBAIC0xMDYsNyArMTA2LDcg
QEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAotICAgICAgICB2b2lkIHNldFZhbHVlRm9yVXNl
cihpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKKyAgICAgICAg
dm9pZCBzZXRWYWx1ZUZvclVzZXIoW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGluIERPTVN0cmlu
ZyB2YWx1ZSk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpICYm
IExBTkdVQUdFX09CSkVDVElWRV9DCkBAIC0xMTYsNiArMTE2LDYgQEAgbW9kdWxlIGh0bWwgewog
I2VuZGlmCiAKICAgICAgICAgLy8gU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtbWVkaWEt
Y2FwdHVyZS8KLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NRURJQV9DQVBUVVJFXSBE
T01TdHJpbmcgY2FwdHVyZTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPU1FRElBX0NBUFRVUkVdIGF0
dHJpYnV0ZSBET01TdHJpbmcgY2FwdHVyZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEludGVudEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW50ZW50RWxlbWVudC5pZGwKaW5kZXggNjA4YzVhY2RkODM4ZGY1ODRmMmI3NzRi
ZDI1OGM5Mjc2YmM4MjAyZi4uMTY3YjNiY2RkNTAwNDFkMWIzNTdjM2VkN2JmNDE3Nzg3MmI5ZDM5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW50ZW50RWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW50ZW50RWxlbWVudC5pZGwKQEAgLTI1LDE0
ICsyNSwxNCBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9V0VCX0lOVEVOVFNfVEFHCi0gICAgXSBIVE1MSW50ZW50RWxlbWVu
dCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
YWN0aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwotICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIGhyZWY7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRpdGxlOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBkaXNwb3NpdGlvbjsKKyAgICBdIGludGVyZmFjZSBIVE1MSW50ZW50
RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgYWN0aW9uOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0eXBl
OworICAgICAgICBbUmVmbGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIERPTVN0cmluZyBkaXNwb3NpdGlvbjsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmlkbAppbmRleCBmYzZmMjVjODE0MTM0
NjM1NTU4ZTM0NDA5NjhkNGZiZWNlNTAyOTU2Li41NmVmN2QzMTA0M2U3MDcyYWI0ZWY1YjBjMmFj
MTkwMzNiZWE5M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50Lmlk
bApAQCAtMzEsMTIgKzMxLDEyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRN
TEtleWdlbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gYm9vbGVhbiBhdXRvZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGNoYWxsZW5nZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2Fi
bGVkOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFsbGVuZ2U7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBrZXl0eXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBrZXl0eXBlOwor
ICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIApAQCAtNDQsOSArNDQsOSBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlk
aXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlOwogICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKLSAgICAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRB
cz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAgICB2b2lkIHNldEN1c3RvbVZh
bGlkaXR5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJp
bmddIGluIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGVMaXN0IGxhYmVsczsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxl
bWVudC5pZGwKaW5kZXggMmRjNTQxYjE4YjM0MmM0ODFjZDU3ODIwODQ1NzNhYzNmYjY2OGJjYi4u
MzIxZDI5OWVjNzZlNmRhMzFiZTVkMDZmOTdiMmNkMmNmMGY3NzAzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMSUVsZW1lbnQuaWRsCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgSFRNTExJRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBsb25nIHZhbHVlOyAgICAKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgdHlwZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBsb25nIHZhbHVlOyAgICAKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwKaW5k
ZXggYmY3OTY4MGY4ZjBkYTEwMjdkZmU2NzkyZDc3NTk0N2NmMTM3ZWYwYS4uM2E5Njc3MDAzODc2
MTNmY2E0MTk0OTk3YTViMTExNzQ3ZTZiZTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaWRsCkBAIC0yMiwxMSArMjIsMTEgQEAgbW9kdWxlIGh0bWwgewogCiAgICAg
aW50ZXJmYWNlIEhUTUxMYWJlbEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgIFtSZWZsZWN0PWZvcl0gYXR0
cmlidXRlIERPTVN0cmluZyBodG1sRm9yOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TEVsZW1lbnQgY29udHJvbDsKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBM
QU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBhY2Nlc3NLZXk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFjY2Vz
c0tleTsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExl
Z2VuZEVsZW1lbnQuaWRsCmluZGV4IGJmNzU1YTViYjg5OTM4ZWJlNDU4MTU0M2M2YTEzNWUwMDhm
MmRmYzMuLmEzZTA1NjdlYTU0Y2FmZDA0YmRmYTQ5ZjEwYzFjYjZkMDBlNTZmODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsCkBAIC0yMiwxMCArMjIsMTAgQEAg
bW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxMZWdlbmRFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKICNpZiBkZWZpbmVkKExBTkdVQUdF
X09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFjY2Vzc0tleTsKICNlbmRpZgogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwKaW5kZXggOGQxNmYyNWU4ODUxNGRmNjdhZTI4
NzgxOGFlODQ2MjMzYmExMjQ5Ni4uZDNlNjEwMTg5NGFmMjEyOTU1ZWU3NDc4MDY5NDg0ZGY1Yzhj
ZmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbApAQCAtMjIsMTgg
KzIyLDE4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTExpbmtFbGVtZW50
IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlz
YWJsZWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNoYXJzZXQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgaHJlZjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaHJlZmxhbmc7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1lZGlhOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyByZWw7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHJl
djsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OworICAgICAgICBbUmVmbGVj
dCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhyZWY7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGhyZWZsYW5nOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBtZWRpYTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcmVs
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyByZXY7CiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tXSBET01TZXR0YWJsZVRva2VuTGlzdCBzaXplczsKKyAgICAgICAgW0N1
c3RvbV0gYXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0IHNpemVzOwogI2VuZGlmCi0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHRhcmdldDsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgdGFyZ2V0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTdHlsZVNoZWV0IHNoZWV0OwpAQCAtNDQsNCArNDQsNCBAQCBtb2R1bGUgaHRt
bCB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVt
ZW50LmlkbAppbmRleCA3ODExYzlhOWZkZjQzOGNiOTIwOWEyNjM3M2U2N2I4ODA2N2E1YjZlLi5l
NTc2NGNiOTUwNjA3ZmFlMjA5NzFhZTRiNzg2OWFhOTVmNmJhMmMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNYXBFbGVtZW50LmlkbApAQCAtMjIsNyArMjIsNyBAQCBtb2R1bGUgaHRtbCB7CiAK
ICAgICBpbnRlcmZhY2UgSFRNTE1hcEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MQ29sbGVjdGlvbiBhcmVhczsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbmFtZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFycXVlZUVsZW1lbnQuaWRsCmluZGV4IDMxNzRmYWNiYzNjNWM2Y2FiMWRjYTE1MTJmMTNjYmNh
OGIwMzJlYjcuLmNiMTEyZmM2ZTJkM2E1NmU0OGI1Y2I5YjE2MDhkZjhmOTQyNTQ4NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5pZGwKQEAgLTIzLDE3ICsyMywx
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgc3RhcnQoKTsKICAgICAgICAgdm9pZCBz
dG9wKCk7CiAgICAgICAgIAotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBi
ZWhhdmlvcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYmdDb2xvcjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZGlyZWN0aW9uOwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBoZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyBoc3BhY2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25n
IGxvb3Agc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBhdHRyaWJ1dGUgbG9u
ZyBzY3JvbGxBbW91bnQgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBhdHRy
aWJ1dGUgbG9uZyBzY3JvbGxEZWxheSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiB0cnVlU3BlZWQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gdW5zaWduZWQgbG9uZyB2c3BhY2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRoOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyBiZWhhdmlvcjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
YmdDb2xvcjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGlyZWN0aW9u
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBoZWlnaHQ7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoc3BhY2U7CisgICAgICAgIGF0dHJp
YnV0ZSBsb25nIGxvb3Agc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGF0dHJpYnV0
ZSBsb25nIHNjcm9sbEFtb3VudCBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0
cmlidXRlIGxvbmcgc2Nyb2xsRGVsYXkgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiB0cnVlU3BlZWQ7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB2c3BhY2U7CisgICAgICAgIFtSZWZsZWN0XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogCiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhl
IGZvbGxvd2luZyBldmVudCBoYW5kbGVyIGF0dHJpYnV0ZXMKICAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5Nzg4CkBAIC00MSw0ICs0MSw0IEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgLy8gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25maW5pc2g7
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc3RhcnQ7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmlkbAppbmRleCBhYzBmYTQ2
N2I0MDQ5ZTE2M2U5MGNiNmI2M2ZhMzM3YWNiYzJlMjY0Li4wZjAzMDVkYmM2NTlhYjhjODA1NTk3
N2I5ZWNiMDMwZDBmNWNmMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGwKQEAgLTI0LDE3ICsyNCwxNyBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9VklERU8sCiAgICAgICAgIEpTR2Vu
ZXJhdGVUb05hdGl2ZU9iamVjdAotICAgIF0gSFRNTE1lZGlhRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKKyAgICBdIGludGVyZmFjZSBIVE1MTWVkaWFFbGVtZW50IDogSFRNTEVsZW1lbnQgewogCiAg
ICAgLy8gZXJyb3Igc3RhdGUKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVkaWFFcnJvciBlcnJv
cjsKIAogICAgIC8vIG5ldHdvcmsgc3RhdGUKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0g
RE9NU3RyaW5nIHNyYzsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgW1VSTF0gRE9NU3RyaW5nIGN1
cnJlbnRTcmM7CisgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmM7Cisg
ICAgW1VSTF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjdXJyZW50U3JjOwogICAgIAog
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5FVFdPUktfRU1QVFkgPSAwOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IE5FVFdPUktfSURMRSA9IDE7CkBAIC00Nyw5ICs0Nyw5IEBAIG1vZHVsZSBo
dG1sIHsKICAgICB2b2lkIGxvYWQoKSAKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwog
I2lmIGRlZmluZWQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJiYgRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQQotICAgIERPTVN0cmluZyBjYW5QbGF5VHlwZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgdHlwZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmcs
IFRyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9N
U3RyaW5nIGtleVN5c3RlbSk7CisgICAgRE9NU3RyaW5nIGNhblBsYXlUeXBlKFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB0eXBlLCBbT3B0aW9uYWw9RGVmYXVsdElz
TnVsbFN0cmluZywgVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxs
U3RyaW5nXSBpbiBET01TdHJpbmcga2V5U3lzdGVtKTsKICNlbHNlCi0gICAgRE9NU3RyaW5nIGNh
blBsYXlUeXBlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBl
KTsKKyAgICBET01TdHJpbmcgY2FuUGxheVR5cGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIHR5cGUpOwogI2VuZGlmCiAKICAgICAvLyByZWFkeSBzdGF0ZQpAQCAt
NjMsNyArNjMsNyBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICAvLyBwbGF5YmFjayBzdGF0ZQogICAg
IGF0dHJpYnV0ZSBmbG9hdCBjdXJyZW50VGltZQotICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01F
eGNlcHRpb24pOworICAgICAgICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZSBpbml0aWFsVGltZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgc3RhcnRUaW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsK
QEAgLTczLDE3ICs3MywxNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFRpbWVSYW5nZXMgcGxheWVkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUaW1lUmFuZ2VzIHNl
ZWthYmxlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOwotICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvcGxheTsKLSAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IGJvb2xlYW4gbG9vcDsKKyAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gYXV0b3BsYXk7
CisgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGxvb3A7CiAgICAgdm9pZCBwbGF5KCk7
CiAgICAgdm9pZCBwYXVzZSgpOwogCiAgICAgLy8gY29udHJvbHMKICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBjb250cm9sczsKICAgICBhdHRyaWJ1dGUgZmxvYXQgdm9sdW1lIAotICAgICAgICBzZXR0
ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAgICAgYXR0cmlidXRlIGJvb2xlYW4gbXV0ZWQ7Ci0gICAgYXR0cmlidXRlIFtSZWZsZWN0
PW11dGVkXSBib29sZWFuIGRlZmF1bHRNdXRlZDsKKyAgICBbUmVmbGVjdD1tdXRlZF0gYXR0cmli
dXRlIGJvb2xlYW4gZGVmYXVsdE11dGVkOwogCiAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRQcmVzZXJ2ZXNQaXRjaDsKQEAgLTkyLDEyICs5Miwx
MiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0Q2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlOwogCiAgICAgLy8gVGhlIG51bWJlciBvZiBieXRlcyBjb25zdW1lZCBieSB0
aGUgbWVkaWEgZGVjb2Rlci4KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1F
RElBX1NUQVRJU1RJQ1NdIHVuc2lnbmVkIGxvbmcgd2Via2l0QXVkaW9EZWNvZGVkQnl0ZUNvdW50
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUVESUFfU1RBVElTVElDU10g
dW5zaWduZWQgbG9uZyB3ZWJraXRWaWRlb0RlY29kZWRCeXRlQ291bnQ7CisgICAgW0NvbmRpdGlv
bmFsPU1FRElBX1NUQVRJU1RJQ1NdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdl
YmtpdEF1ZGlvRGVjb2RlZEJ5dGVDb3VudDsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RBVElT
VElDU10gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2Via2l0VmlkZW9EZWNvZGVk
Qnl0ZUNvdW50OwogCiAjaWYgZGVmaW5lZChFTkFCTEVfTUVESUFfU09VUkNFKSAmJiBFTkFCTEVf
TUVESUFfU09VUkNFCiAgICAgLy8gVVJMIHBhc3NlZCB0byBzcmMgYXR0cmlidXRlIHRvIGVuYWJs
ZSB0aGUgbWVkaWEgc291cmNlIGxvZ2ljLgotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFi
bGVkQXRSdW50aW1lPW1lZGlhU291cmNlLCBVUkxdIERPTVN0cmluZyB3ZWJraXRNZWRpYVNvdXJj
ZVVSTDsKKyAgICBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlLCBVUkxdIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgd2Via2l0TWVkaWFTb3VyY2VVUkw7CiAKICAgICAvLyBNYW5h
Z2VzIElEcyBmb3IgYXBwZW5kaW5nIG1lZGlhIHRvIHRoZSBzb3VyY2UuCiAgICAgW1Y4RW5hYmxl
ZEF0UnVudGltZT1tZWRpYVNvdXJjZV0gdm9pZCB3ZWJraXRTb3VyY2VBZGRJZChpbiBET01TdHJp
bmcgaWQsIGluIERPTVN0cmluZyB0eXBlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CkBAIC0xMjIs
MzQgKzEyMiwzNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRp
YVNvdXJjZV0gY29uc3QgdW5zaWduZWQgc2hvcnQgU09VUkNFX0NMT1NFRCA9IDA7CiAgICAgW1Y4
RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJjZV0gY29uc3QgdW5zaWduZWQgc2hvcnQgU09VUkNF
X09QRU4gPSAxOwogICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3VyY2VdIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNPVVJDRV9FTkRFRCA9IDI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFtW
OEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3VyY2VdIHVuc2lnbmVkIHNob3J0IHdlYmtpdFNvdXJj
ZVN0YXRlOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9bWVkaWFTb3VyY2VdIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCB3ZWJraXRTb3VyY2VTdGF0ZTsKIAotICAgIGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSBFdmVudExpc3RlbmVyIG9ud2Via2l0
c291cmNlb3BlbjsKLSAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJj
ZV0gRXZlbnRMaXN0ZW5lciBvbndlYmtpdHNvdXJjZWVuZGVkOwotICAgIGF0dHJpYnV0ZSBbVjhF
bmFibGVkQXRSdW50aW1lPW1lZGlhU291cmNlXSBFdmVudExpc3RlbmVyIG9ud2Via2l0c291cmNl
Y2xvc2U7CisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJjZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb253ZWJraXRzb3VyY2VvcGVuOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9
bWVkaWFTb3VyY2VdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0c291cmNlZW5kZWQ7
CisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1tZWRpYVNvdXJjZV0gYXR0cmlidXRlIEV2ZW50TGlz
dGVuZXIgb253ZWJraXRzb3VyY2VjbG9zZTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAmJiBFTkFCTEVfRU5DUllQVEVEX01FRElBCi0gICAgW1Y4RW5hYmxl
ZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gdm9pZCB3ZWJraXRHZW5lcmF0ZUtleVJlcXVlc3Qo
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIGtleVN5c3RlbSwgaW4gW09wdGlvbmFsXSBVaW50OEFycmF5IGluaXREYXRhKQor
ICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIHZvaWQgd2Via2l0R2VuZXJh
dGVLZXlSZXF1ZXN0KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmddIGluIERPTVN0cmluZyBrZXlTeXN0ZW0sIFtPcHRpb25hbF0gaW4gVWludDhBcnJh
eSBpbml0RGF0YSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtWOEVuYWJs
ZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIHZvaWQgd2Via2l0QWRkS2V5KGluIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBr
ZXlTeXN0ZW0sIGluIFVpbnQ4QXJyYXkga2V5LCBpbiBbT3B0aW9uYWxdIFVpbnQ4QXJyYXkgaW5p
dERhdGEsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgc2Vzc2lv
bklkKQorICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIHZvaWQgd2Via2l0
QWRkS2V5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJp
bmddIGluIERPTVN0cmluZyBrZXlTeXN0ZW0sIGluIFVpbnQ4QXJyYXkga2V5LCBbT3B0aW9uYWxd
IGluIFVpbnQ4QXJyYXkgaW5pdERhdGEsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBp
biBET01TdHJpbmcgc2Vzc2lvbklkKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0g
ICAgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gdm9pZCB3ZWJraXRDYW5jZWxL
ZXlSZXF1ZXN0KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmddIERPTVN0cmluZyBrZXlTeXN0ZW0sIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxs
U3RyaW5nXSBET01TdHJpbmcgc2Vzc2lvbklkKQorICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5j
cnlwdGVkTWVkaWFdIHZvaWQgd2Via2l0Q2FuY2VsS2V5UmVxdWVzdChbVHJlYXROdWxsQXM9TnVs
bFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcga2V5U3lz
dGVtLCBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHNlc3Npb25J
ZCkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgYXR0cmlidXRlIFtWOEVu
YWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIEV2ZW50TGlzdGVuZXIgb253ZWJraXRrZXlh
ZGRlZDsKLSAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0g
RXZlbnRMaXN0ZW5lciBvbndlYmtpdGtleWVycm9yOwotICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBFdmVudExpc3RlbmVyIG9ud2Via2l0a2V5bWVzc2Fn
ZTsKLSAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gRXZl
bnRMaXN0ZW5lciBvbndlYmtpdG5lZWRrZXk7CisgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1lbmNy
eXB0ZWRNZWRpYV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRrZXlhZGRlZDsKKyAg
ICBbVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBhdHRyaWJ1dGUgRXZlbnRMaXN0
ZW5lciBvbndlYmtpdGtleWVycm9yOworICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVk
TWVkaWFdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0a2V5bWVzc2FnZTsKKyAgICBb
VjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbndlYmtpdG5lZWRrZXk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAmJiBFTkFCTEVfVklERU9fVFJBQ0sKLSAgICBbVjhFbmFibGVkQXRSdW50aW1lPXdlYmtp
dFZpZGVvVHJhY2tdIFRleHRUcmFjayBhZGRUZXh0VHJhY2soaW4gRE9NU3RyaW5nIGtpbmQsIGlu
IFtPcHRpb25hbF0gRE9NU3RyaW5nIGxhYmVsLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBsYW5n
dWFnZSkKKyAgICBbVjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIFRleHRUcmFj
ayBhZGRUZXh0VHJhY2soaW4gRE9NU3RyaW5nIGtpbmQsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5n
IGxhYmVsLCBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBsYW5ndWFnZSkKICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50
aW1lPXdlYmtpdFZpZGVvVHJhY2tdIFRleHRUcmFja0xpc3QgdGV4dFRyYWNrczsKKyAgICBbVjhF
bmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIHJlYWRvbmx5IGF0dHJpYnV0ZSBUZXh0
VHJhY2tMaXN0IHRleHRUcmFja3M7CiAjZW5kaWYKIAotICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwg
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIG1lZGlhR3JvdXA7Ci0gICAgYXR0cmli
dXRlIFtDdXN0b21TZXR0ZXJdIE1lZGlhQ29udHJvbGxlciBjb250cm9sbGVyOworICAgIFtSZWZs
ZWN0LCBUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhR3Jv
dXA7CisgICAgW0N1c3RvbVNldHRlcl0gYXR0cmlidXRlIE1lZGlhQ29udHJvbGxlciBjb250cm9s
bGVyOworfTsKIH07Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKaW5k
ZXggZmYxNDc1NGMwMWUyNTM3OWU3ZmJmY2U5ZjE2OWU2NDY5NTdiMDMyMS4uMjUyNmE5M2FlMmVh
NGVmNTE3YzAzNTY2NGMyOGJlNDBhNGZlYTdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVudUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
bnVFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50
ZXJmYWNlIEhUTUxNZW51RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBib29sZWFuIGNvbXBhY3Q7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
Ym9vbGVhbiBjb21wYWN0OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRhRWxlbWVudC5pZGwKaW5kZXggZjRmZmIyZDQyY2IyNjZmZmEwYjQ1NDMwMDg1YjNkYmM5MWM0
YWRkNS4uZGQzN2YxNDdlOTNiYTBlZDRlMjIyMzYwYmZhYjZiYTNmYTZlNTZhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmlkbApAQCAtMjAsMTAgKzIwLDEwIEBACiBtb2R1
bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTE1ldGFFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb250ZW50OwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3Q9aHR0cF9lcXVpdl0gRE9NU3RyaW5nIGh0dHBFcXVpdjsKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgc2NoZW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyBjb250ZW50OworICAgICAgICBbUmVmbGVjdD1odHRwX2VxdWl2XSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGh0dHBFcXVpdjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2No
ZW1lOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZXRlckVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmlkbAppbmRleCA3YzExZmU0Y2U2YTIwYTgzMTY2MTY5MWJkNGQ0MWU2YjczMjc4ZmNkLi4yOGEy
YWM2MzFiMWE5Njg4NzFkNGIzY2E1YTJmZGM2NDRiMDk4NzY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5pZGwKQEAgLTE4LDIyICsxOCwyMiBAQAogICovCiAKIG1vZHVs
ZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9TUVU
RVJfVEFHCi0gICAgXSBIVE1MTWV0ZXJFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgIF0gaW50
ZXJmYWNlIEhUTUxNZXRlckVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBkb3VibGUgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIG1pbgotICAgICAgICAg
ICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAg
ICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBkb3VibGUgbWF4Ci0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBsb3cKLSAgICAgICAgICAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGhp
Z2gKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgZG91YmxlIG9wdGltdW0KLSAgICAgICAgICAgICAgICAgICAgIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgbGFiZWxz
OwogICAgIH07Ci19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
b2RFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaWRsCmlu
ZGV4IGFkODI4MWM0NTAyODM5NmYwODI4MWY3N2ZlZTNhYWFjNWQxYjdiYjcuLjVmZWVlYjJkNmRj
YWM0Yzk2MmQ4N2Y1YmFlMGNiYWEyZDI3N2MzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1vZEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1v
ZEVsZW1lbnQuaWRsCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRl
cmZhY2UgSFRNTE1vZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdCwgVVJMXSBET01TdHJpbmcgY2l0ZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgZGF0ZVRpbWU7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgY2l0ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGF0
ZVRpbWU7CiAgICAgfTsKICAgICAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RF
bGVtZW50LmlkbAppbmRleCA4ZDFkM2E0NmY2ZmU0N2Y4NzI1NGIyNzhmMTI2YWU2OTE0NjkyZGRk
Li41Y2ZmZjAzMjU4NzE5NjlhNGM4YmVlNGJhZWMwN2E1N2Q4NThlZTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5pZGwKQEAgLTIwLDEwICsyMCwxMCBAQAogbW9kdWxl
IGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxPTGlzdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBjb21wYWN0OworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4gY29tcGFjdDsKICAgICAgICAgYXR0cmlidXRlIGxv
bmcgc3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZXZlcnNlZDsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHJldmVyc2VkOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIERPTVN0cmluZyB0eXBlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCmluZGV4IGYxMDU1ZmRiODkzZmJmZDVjMjk2M2JiOTll
YjRmYmFlY2ZjODkwMGQuLjc0MWJlNmJkZDNhZGUzNTUyNTRmNjQyNTY5NzRiOTc0OWIyYTE5ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCkBAIC0yMCwzNiAr
MjAsMzYgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIEN1c3RvbU5hbWVkU2V0dGVyLAogICAgICAgICBKU0N1c3RvbUdldE93blByb3BlcnR5U2xv
dEFuZERlc2NyaXB0b3IsCiAgICAgICAgIEN1c3RvbUNhbGwKLSAgICBdIEhUTUxPYmplY3RFbGVt
ZW50IDogSFRNTEVsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIEhUTUxPYmplY3RFbGVtZW50IDog
SFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50
IGZvcm07Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNvZGU7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhcmNoaXZlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyBib3JkZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGNvZGVCYXNlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjb2Rl
VHlwZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBkYXRhOwot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVjbGFyZTsKLSAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIGxvbmcgaHNwYWNlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzdGFuZGJ5Owot
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwotICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gbG9uZyB2c3BhY2U7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5n
IHdpZHRoOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjb2RlOworICAg
ICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYXJjaGl2ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgYm9yZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBjb2RlQmFzZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY29k
ZVR5cGU7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJpYnV0ZSBET01TdHJpbmcgZGF0YTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRlY2xhcmU7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhlaWdodDsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBsb25nIGhzcGFjZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhbmRieTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlTWFwOworICAgICAgICBbUmVmbGVjdF0gYXR0
cmlidXRlIGxvbmcgdnNwYWNlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRl
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAg
ICAgICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFs
aWRpdHkoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0
cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShb
VHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBE
T01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIERvY3Vt
ZW50IGNvbnRlbnREb2N1bWVudDsKKyAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSByZWFk
b25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgY29udGVudERvY3VtZW50OwogCiAjaWYgZGVmaW5lZChF
TkFCTEVfU1ZHKSAmJiBFTkFCTEVfU1ZHCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZF
X0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQyB8fCBkZWZpbmVkKEVOQUJMRV9TVkdfRE9NX09C
SkNfQklORElOR1MpICYmIEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MKQEAgLTYzLDQgKzYz
LDQgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCmluZGV4IDc1Y2VhZDBmYmY5YjA1ZGM1
NDRlNjEwYzJlZDJhMWFhOTA2ZTk0ODcuLjljZDUyY2Y5MDBiZjI3OWVhZGUwOGY1MDczZjYwZDE5
YThmNzU0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bApAQCAtMjAsOCArMjAsOCBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxP
cHRHcm91cEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gYm9vbGVhbiBkaXNhYmxlZDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgbGFiZWw7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKaW5kZXggYjdi
MzQ4OWVhYmUwOGRmOTIxYzFlMjc3NThlNWFmOWVjMDdmYzY0Ny4uNzFkZGM1YjUwNjI2ZmEyZGUx
N2U2YjE0Mjk1ZjVlNTc1MmVlN2IwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5pZGwKQEAgLTIwLDIzICsyMCwyMyBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAotICAg
ICAgICBOYW1lZENvbnN0cnVjdG9yPU9wdGlvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGRhdGEsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBE
T01TdHJpbmcgdmFsdWUsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4g
ZGVmYXVsdFNlbGVjdGVkLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFu
IHNlbGVjdGVkKSwKKyAgICAgICAgTmFtZWRDb25zdHJ1Y3Rvcj1PcHRpb24oW09wdGlvbmFsPURl
ZmF1bHRJc051bGxTdHJpbmddIGluIERPTVN0cmluZyBkYXRhLCBbT3B0aW9uYWw9RGVmYXVsdElz
TnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIHZhbHVlLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBib29sZWFuIGRlZmF1bHRTZWxlY3RlZCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gYm9vbGVhbiBzZWxlY3RlZCksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhj
ZXB0aW9uCi0gICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOworICAgIF0gaW50ZXJmYWNlIEhU
TUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9y
bUVsZW1lbnQgZm9ybTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0PXNlbGVjdGVkXSBib29sZWFuIGRlZmF1bHRTZWxlY3RlZDsK
KyAgICAgICAgW1JlZmxlY3Q9c2VsZWN0ZWRdIGF0dHJpYnV0ZSBib29sZWFuIGRlZmF1bHRTZWxl
Y3RlZDsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gc2VsZWN0ZWQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBET01TdHJpbmcgdmFsdWU7CiAKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
ICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0cmlu
ZyB0ZXh0IHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIGluZGV4OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaWRsCmluZGV4IDA0NzZlNjVmYzc5NGQ1MzM4ODIzYTdhNTIx
YjNlNDVmOTdiNWVmZjYuLjM2YTVmMzAzZjFiMGRlYmQyYzNiODZhZjA5YjgzYTZlMmU5MjI2ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5pZGwKQEAg
LTIwLDE4ICsyMCwxOCBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBDdXN0b21JbmRl
eGVkU2V0dGVyCi0gICAgXSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24gOiBIVE1MQ29sbGVjdGlvbiB7
CisgICAgXSBpbnRlcmZhY2UgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIDogSFRNTENvbGxlY3Rpb24g
ewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzZWxlY3RlZEluZGV4OwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gdW5zaWduZWQgbG9uZyBsZW5ndGgKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
ICAgICAgICAgIFtDdXN0b21dIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aAorICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogCi0gICAgICAgIFtD
dXN0b21dIHZvaWQgYWRkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEhUTUxPcHRp
b25FbGVtZW50IG9wdGlvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gdW5zaWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGQoW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gSFRNTE9wdGlvbkVsZW1lbnQgb3B0aW9uLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIGluZGV4
KQogICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW0N1c3RvbV0g
dm9pZCByZW1vdmUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CisgICAgICAgIFtDdXN0b21dIHZvaWQgcmVtb3ZlKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAjaWYgZGVmaW5lZChMQU5H
VUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgTm9kZSBp
dGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOyAKQEAgLTM5LDQgKzM5LDQgQEAgbW9kdWxlIGh0
bWwgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5pZGwKaW5kZXggMzU3NjFjMzM1Y2Q4NmU0ZTEzNTBiOGQyNTUyY2IzYmY0MzFm
MmFmNy4uMjNmNDVlMzRmNWY3NDI0Y2U1NjVlNjZhNmVhZWMwNzk4OGY2OTY0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5pZGwKQEAgLTI0LDIwICsyNCwyMCBAQAog
CiBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIEhUTUxPdXRwdXRFbGVtZW50IDogSFRNTEVs
ZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gRE9NU2V0dGFibGVUb2tlbkxpc3Qg
aHRtbEZvcjsKKyAgICAgICAgW0N1c3RvbV0gYXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0
IGh0bWxGb3I7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKIAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKLSAgICAgICAgYXR0cmlidXRlIFtU
cmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CisgICAgICAgIFtUcmVhdE51
bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlZmF1bHRWYWx1ZTsKKyAgICAg
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9v
bGVhbiBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4g
W1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gRE9N
U3RyaW5nIGVycm9yKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShbVHJlYXROdWxs
QXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01TdHJpbmcg
ZXJyb3IpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJlbHM7CiAg
ICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3Jh
cGhFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQu
aWRsCmluZGV4IDI0NmU5ZTk5ZWQwNTAwOGRkZmZmZTE4YjYxNGVkYjhmMTk5Zjk3MjEuLjE1MGU5
MWU5MDBmNTRhMTk0NzNiNTNhMDBlMTJlYWQ2MjUzODEwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaWRsCkBAIC0yMCw3ICsyMCw3IEBACiBtb2R1bGUg
aHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFBhcmFncmFwaEVsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5pZGwKaW5kZXggMWYwYzBkZWQ2NGY0
NzlmNmNiZDQ3ZDBhMjI1NzY2NGNkNTNhODhiZS4uMjU1NTNjNDM0MzkyOTk2ZjVhZTlmMmEzZjc4
YWEyMTU5NjNkN2E1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1F
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaWRs
CkBAIC0yMCwxMCArMjAsMTAgQEAKIG1vZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1M
UGFyYW1FbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0
eXBlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB2YWx1ZTsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdmFsdWVUeXBlOworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyB0eXBlOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmlu
ZyB2YWx1ZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVUeXBl
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cmVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsCmlu
ZGV4IGFlMTM3ZjAyNGY2MDdmOGJiMzhiNjdlN2JhMTg5YzlhMmY2MmFjZGUuLmVlYjlkYTliNjc2
OTA1YjhmMGY0OGNhOTUzMzNjMzU2YjVhZGEzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
ZUVsZW1lbnQuaWRsCkBAIC0yMywxMCArMjMsMTAgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVy
ZmFjZSBIVE1MUHJlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgLy8gRklYTUU6IERP
TSBzcGVjIHNheXMgdGhhdCB3aWR0aCBzaG91bGQgYmUgb2YgdHlwZSBET01TdHJpbmcKICAgICAg
ICAgLy8gc2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTIKLSAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBsb25nIHdpZHRoOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGxvbmcgd2lkdGg7CiAgICAgICAgIAogICAgICAgICAvLyBFeHRlbnNpb25zCi0g
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiB3cmFwOworICAgICAgICBbUmVmbGVj
dF0gYXR0cmlidXRlIGJvb2xlYW4gd3JhcDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5pZGwKaW5kZXggYWNlNGRlZjgzNmZjNmRjNDUy
MzBkZGZjNDZjYTZmMzIxZjU1NGE0Ny4uMmEwMDdlNWVmNzcwMGE1ZThhZTlkY2E5NGIyYzZiNGE5
Yzk0ZmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaWRs
CkBAIC0xOCwxNSArMTgsMTUgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVBST0dSRVNTX1RBRwotICAgIF0gSFRNTFBy
b2dyZXNzRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBIVE1MUHJvZ3Jl
c3NFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGRv
dWJsZSAgICAgICAgICAgICAgICB2YWx1ZQotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAg
ICAgIG1heAotICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICAgICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSAgZG91YmxlICAgICAgICAgICAgICAgIHBvc2l0aW9uOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgIE5vZGVMaXN0ICAgICAgICAgICAgICBsYWJlbHM7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmlkbAppbmRleCBkMmM4ZTMxMjc1ZWM5ZjNmNjU2ZGNlMWNlYzg2MGY4ZTJmNjQy
MjY1Li40MmRiMjUzOGI0ZDY3ZjJiYTZhN2RlZGRmMDFhMjE3YTU1ZTc5ZGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCkBAIC0zMCwx
MiArMzAsMTIgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmpl
Y3QsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIE5hbWVkR2V0dGVyCi0gICAgXSBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBIVE1MQ29sbGVjdGlvbiB7CisgICAgXSBpbnRlcmZh
Y2UgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIDogSFRNTENvbGxlY3Rpb24gewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIE5vZGUgaXRl
bShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIApAQCAtNDQsNCArNDQsNCBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlzIHNob3VsZCBy
ZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KICAgICAgICAgTm9kZUxpc3QgbmFtZWRJdGVtKGluIERP
TVN0cmluZyBuYW1lKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90
ZUVsZW1lbnQuaWRsCmluZGV4IGZhMWJjZGI1NzQyMzU3YmUyYjg4ZTNjOTM4MmZjMDdjMWFjNjJl
MjMuLjEwNzJkMmYzYjc1YzFmNzU0OGQwOTUyM2U4NDBlN2QzM2I0NGVhNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmlkbApAQCAtMjAsNiArMjAsNiBAQAogbW9kdWxl
IGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxRdW90ZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgY2l0ZTsKKyAgICAg
ICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBjaXRlOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAppbmRleCBiYTE2ZTg1
MWMxODYyYWVjNDFmZmEzNzliMmQwNDJlMjYzNmRmNDIyLi44N2E4N2ViM2JlMmFkODA0YzJkZmNl
N2EzY2JhMjBmYWEwZTc1NTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmlkbApAQCAtMjAsMTUgKzIwLDE1IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZh
Y2UgSFRNTFNjcmlwdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHRleHQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdD1mb3JdIERPTVN0cmluZyBodG1sRm9yOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBldmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01T
dHJpbmcgY2hhcnNldDsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0
ZSBET01TdHJpbmcgdGV4dDsKKyAgICAgICAgW1JlZmxlY3Q9Zm9yXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGh0bWxGb3I7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGV2ZW50
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjaGFyc2V0OwogICAgICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBhc3luYzsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBi
b29sZWFuIGRlZmVyOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5n
IHNyYzsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY3Jvc3NPcmlnaW47Ci0gICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdCwgQ29uZGl0aW9uYWw9Q1NQX05FWFRdIERPTVN0cmluZyBub25jZTsK
KyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRlZmVyOworICAgICAgICBbUmVm
bGVjdCwgVVJMXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYzsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgY3Jvc3NPcmlnaW47CisgICAgICAgIFtSZWZsZWN0LCBDb25kaXRpb25hbD1DU1BfTkVY
VF0gYXR0cmlidXRlIERPTVN0cmluZyBub25jZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggNmExYWUwM2QxNGJlYjUxZGMwMTA0
MTk3ZTg3NWVhNzc2NmI0YmIxOS4uOTZlNjU3YTNkMmQ5ZGU3YWFiNDg0NzNjY2EzNDMwN2EyYzgy
OWQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTIw
LDE2ICsyMCwxNiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgQ3VzdG9tSW5kZXhlZFNldHRlcgotICAg
IF0gSFRNTFNlbGVjdEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
Ym9vbGVhbiBkaXNhYmxlZDsKKyAgICBdIGludGVyZmFjZSBIVE1MU2VsZWN0RWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGF1dG9mb2N1
czsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRpc2FibGVkOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07CiAgICAgICAgIGF0dHJp
YnV0ZSBib29sZWFuIG11bHRpcGxlOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVxdWlyZWQ7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiByZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRlIGxv
bmcgc2l6ZTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CkBA
IC00MCwxMiArNDAsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvLyBmb3IgY29tcGF0aWJp
bGl0eSB3ZSBrZWVwIERPTSBMZXZlbCAxIGRlZmluaXRpb24uCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nIGxlbmd0aDsKICNlbHNlCi0gICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aCBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyBsZW5ndGggc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlm
Ci0gICAgICAgIE5vZGUgaXRlbShpbiBbSXNJbmRleCxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgICAgICBOb2RlIG5hbWVkSXRlbShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIFtPYmpD
TGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgYWRkKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIEhUTUxFbGVtZW50IGVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIEhUTUxFbGVtZW50IGJlZm9y
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgaXRlbShbSXNJbmRleCxPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAg
ICBOb2RlIG5hbWVkSXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgbmFtZSk7CisgICAgICAgIFtPYmpDTGVnYWN5VW5uYW1lZFBhcmFtZXRlcnNdIHZvaWQgYWRk
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIEhUTUxFbGVtZW50IGVsZW1lbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIEhUTUxFbGVtZW50IGJlZm9yZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAg
IC8vIEluIEphdmFTY3JpcHQsIHdlIHN1cHBvcnQgYm90aCBvcHRpb24gaW5kZXggYW5kIG9wdGlv
biBvYmplY3QgcGFyYW1ldGVycy4KICAgICAgICAgLy8gQXMgb2YgdGhpcyB3cml0aW5nIHRoaXMg
Y2Fubm90IGJlIGF1dG8tZ2VuZXJhdGVkLgpAQCAtNTUsMTQgKzU1LDE0IEBAIG1vZHVsZSBodG1s
IHsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24gc2Vs
ZWN0ZWRPcHRpb25zOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzZWxlY3RlZEluZGV4OwotICAg
ICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsK
KyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFs
dWU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAg
ICAgYm9vbGVhbiBjaGVja1ZhbGlkaXR5KCk7Ci0gICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGVycm9yKTsKKyAgICAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShbVHJl
YXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBpbiBET01T
dHJpbmcgZXJyb3IpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBsYWJl
bHM7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aWRsCmluZGV4IGRjNzA3MTQwYTYyOGYzNzE4YjFiNmNlOTlhNDU4MjQwNThkZDk3MzUuLmNkNjdj
YjQ3NGY1OTFlYWI2YmFkMTliZDU1MDgwNTk3ZjllNzE3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuaWRsCkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiBtb2R1
bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9VklERU8sCi0g
ICAgXSBIVE1MU291cmNlRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPVZJ
REVPCisgICAgXSBpbnRlcmZhY2UgSFRNTFNvdXJjZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Cisg
ICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmM7CiAgICAgYXR0cmlidXRl
IERPTVN0cmluZyB0eXBlOwogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbWVkaWE7CiB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNwYW5FbGVtZW50LmlkbAppbmRleCBkNmQ0ZTU5ZWJl
NTE2ZWJjZGRkYWYxYjA5ZGRiODk4ODdjZDNjZDlmLi5hYjI4Y2IwZDM1ZDliZTgxNzRlN2U5NmNh
OTYyNDlhOTg5ZjAwMzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTcGFu
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3BhbkVsZW1lbnQuaWRs
CkBAIC0yOSw0ICsyOSw0IEBAIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgSFRNTFNwYW5F
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3R5bGVFbGVtZW50LmlkbAppbmRleCAxYjlhYmQ0N2E1YzJiMjVkZmNjOTg0NzAyMDI5
MWY2OTBlZjE4ZTY0Li4wMzlkYTcwYTE3NWM4ODdlMGFkOTMxYjYwZDY0YWQ0MDJhZGM1NzdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5pZGwKQEAgLTIyLDEyICsyMiwx
MiBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgSFRNTFN0eWxlRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gZGlzYWJsZWQ7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9U1RZTEVfU0NPUEVELCBWOEVuYWJsZWRBdFJ1bnRpbWU9
c3R5bGVTY29wZWRdIGJvb2xlYW4gc2NvcGVkOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IERPTVN0cmluZyBtZWRpYTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcg
dHlwZTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVNUWUxFX1NDT1BFRCwgVjhFbmFibGVkQXRSdW50
aW1lPXN0eWxlU2NvcGVkXSBhdHRyaWJ1dGUgYm9vbGVhbiBzY29wZWQ7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lZGlhOworICAgICAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyB0eXBlOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdHlsZVNoZWV0IHNoZWV0OwogICAgIH07CiAKLX0KK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsCmlu
ZGV4IDA3NTk1Mzk3ODNkNDQzZmM5Njc1NzFiMjc5MzMxODNjYTNmOWNkMTIuLmMxODZjM2I5NjVl
Njk3NDIzOGMyYmMxYTRmMTY3ZWY5OGFiOWNkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaWRsCkBAIC0yMCwxMCArMjAsMTAgQEAKIAogbW9k
dWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVU
b05hdGl2ZU9iamVjdAotICAgIF0gSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGFsaWduOworICAgIF0g
aW50ZXJmYWNlIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmlkbAppbmRleCBhZTI4
NmY0ZDYwMjcxNjViMmI0OTU2ZDFhNzZjMzY3YjY3ZDFhMWUwLi43MWQ4YjQzOWJjNWIwMWJhMzMz
YTNjNzQ2MTdiNWM1ZDE4MTc4OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNlbGxFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNlbGxFbGVtZW50LmlkbApAQCAtMjIsMjAgKzIyLDIwIEBAIG1vZHVsZSBodG1sIHsKIAogICAg
IGludGVyZmFjZSBIVE1MVGFibGVDZWxsRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY2VsbEluZGV4OwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBhYmJyOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXhpczsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0PWNoYXJdIERPTVN0cmluZyBjaDsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0PWNoYXJvZmZdIERPTVN0cmluZyBjaE9mZjsKKyAgICAgICAgW1JlZmxlY3RdIGF0
dHJpYnV0ZSBET01TdHJpbmcgYWJicjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgYWxpZ247CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGF4aXM7
CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJnQ29sb3I7CisgICAgICAg
IFtSZWZsZWN0PWNoYXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2g7CisgICAgICAgIFtSZWZsZWN0
PWNoYXJvZmZdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2hPZmY7CiAgICAgICAgIGF0dHJpYnV0ZSBs
b25nIGNvbFNwYW47Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhlYWRl
cnM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGhlaWdodDsKLSAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIG5vV3JhcDsKKyAgICAgICAgW1JlZmxlY3Rd
IGF0dHJpYnV0ZSBET01TdHJpbmcgaGVhZGVyczsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgaGVpZ2h0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIGJvb2xlYW4g
bm9XcmFwOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyByb3dTcGFuOwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyBzY29wZTsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgdkFsaWduOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyB3aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2NvcGU7Cisg
ICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZBbGlnbjsKKyAgICAgICAgW1Jl
ZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2lkdGg7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaWRsCmluZGV4IGE2ZTY2NTQwMTJi
NDVjY2QzMzFlNjNhYjY0OTZkY2U5NjVlOTA4MjMuLjBjYmRlODIwZjU1ZWZkMjExOWNmOWU4Mjhi
NTQ0NTE5NjQ5ZWUyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVt
ZW50LmlkbApAQCAtMjEsMTIgKzIxLDEyIEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZh
Y2UgSFRNTFRhYmxlQ29sRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1j
aGFyXSBET01TdHJpbmcgY2g7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1jaGFyb2ZmXSBE
T01TdHJpbmcgY2hPZmY7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFs
aWduOworICAgICAgICBbUmVmbGVjdD1jaGFyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoOworICAg
ICAgICBbUmVmbGVjdD1jaGFyb2ZmXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoT2ZmOwogICAgICAg
ICBhdHRyaWJ1dGUgbG9uZyBzcGFuOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyB2QWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHdpZHRo
OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB2QWxpZ247CisgICAgICAg
IFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmlkbAppbmRleCAxOTA4NjFhN2ZlNDky
NzU5NTYyMGMwMjg0YWQxY2I4MmQxMzUwZjE2Li40NzJlNDdlYzYyYmFiNjYwZWI4ZjZhY2I1ZmMw
N2FmZDg1MzY0MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5pZGwK
QEAgLTIxLDIzICsyMSwyMyBAQAogbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxU
YWJsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVD
YXB0aW9uRWxlbWVudCBjYXB0aW9uIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IHRIZWFkIHNldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
IHRGb290IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50IGNhcHRpb24gc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7Cisg
ICAgICAgIGF0dHJpYnV0ZSBIVE1MVGFibGVTZWN0aW9uRWxlbWVudCB0SGVhZCBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYXR0cmlidXRlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
IHRGb290IHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBIVE1MQ29sbGVjdGlvbiByb3dzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRN
TENvbGxlY3Rpb24gdEJvZGllczsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgYWxpZ247Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJnQ29sb3I7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGJvcmRlcjsKLSAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY2VsbFBhZGRpbmc7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNlbGxTcGFjaW5nOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBE
T01TdHJpbmcgYmdDb2xvcjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcg
Ym9yZGVyOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBjZWxsUGFkZGlu
ZzsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgY2VsbFNwYWNpbmc7CiAK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZnJhbWU7CisgICAgICAgIFtS
ZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZyYW1lOwogCi0gICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIHJ1bGVzOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBzdW1tYXJ5OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB3
aWR0aDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcnVsZXM7CisgICAg
ICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1bW1hcnk7CisgICAgICAgIFtSZWZs
ZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwogCiAgICAgICAgIEhUTUxFbGVtZW50IGNy
ZWF0ZVRIZWFkKCk7CiAgICAgICAgIHZvaWQgZGVsZXRlVEhlYWQoKTsKQEAgLTQ3LDggKzQ3LDgg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBIVE1MRWxlbWVudCBjcmVhdGVDYXB0aW9uKCk7CiAg
ICAgICAgIHZvaWQgZGVsZXRlQ2FwdGlvbigpOwogCi0gICAgICAgIEhUTUxFbGVtZW50IGluc2Vy
dFJvdyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBkZWxldGVSb3coaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IEhUTUxFbGVtZW50IGluc2VydFJvdyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBs
b25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBkZWxldGVSb3co
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZVJvd0VsZW1lbnQuaWRsCmluZGV4IGIxNmQ3NTRhZmU1NDMxNTg4OGQ3OGM1N2U0NmRmYjkyNmVl
OWJiMzEuLjgwYzQ1MTc4ZWQzMWJkZGUyYjc5MzVlMTQyYThiNmNhMDM3NzgzMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50LmlkbApAQCAtMjQsMTMgKzI0LDEz
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcm93SW5k
ZXg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlY3Rpb25Sb3dJbmRleDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDb2xsZWN0aW9uIGNlbGxzOwotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgYmdDb2xvcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNo
YXJdIERPTVN0cmluZyBjaDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJvZmZdIERP
TVN0cmluZyBjaE9mZjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdkFs
aWduOwotICAgICAgICBIVE1MRWxlbWVudCBpbnNlcnRDZWxsKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2
b2lkIGRlbGV0ZUNlbGwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBpbmRl
eCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGFsaWduOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBiZ0Nv
bG9yOworICAgICAgICBbUmVmbGVjdD1jaGFyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoOworICAg
ICAgICBbUmVmbGVjdD1jaGFyb2ZmXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNoT2ZmOworICAgICAg
ICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB2QWxpZ247CisgICAgICAgIEhUTUxFbGVt
ZW50IGluc2VydENlbGwoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBpbmRl
eCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgZGVsZXRlQ2VsbChbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmlkbAppbmRleCA4OGY1MzM2OWJkY2JiMDNmNmU1OWY3YjRiNjI3NTA3ZGZi
ZGFlNGJhLi5kZTk5OGU0NzE0NjNhY2VmODlkNjdkOWM3MjU2ZGI4NTE5Y2QwYzUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmlkbApAQCAtMjAs
MTYgKzIwLDE2IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0
cmluZyBhbGlnbjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJdIERPTVN0cmluZyBj
aDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWNoYXJvZmZdIERPTVN0cmluZyBjaE9mZjsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdkFsaWduOworICAgIF0gaW50
ZXJmYWNlIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBb
UmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbjsKKyAgICAgICAgW1JlZmxlY3Q9Y2hh
cl0gYXR0cmlidXRlIERPTVN0cmluZyBjaDsKKyAgICAgICAgW1JlZmxlY3Q9Y2hhcm9mZl0gYXR0
cmlidXRlIERPTVN0cmluZyBjaE9mZjsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgdkFsaWduOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rpb24g
cm93czsKLSAgICAgICAgSFRNTEVsZW1lbnQgaW5zZXJ0Um93KGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB2
b2lkIGRlbGV0ZVJvdyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGluZGV4
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgSFRNTEVsZW1lbnQgaW5zZXJ0Um93KFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICB2b2lkIGRlbGV0ZVJvdyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKaW5kZXggNzI5
ZTZkYWU2YmMwYzE5OWUxZWExN2VlZWM2YTdjNjJmMWM5YTk4Mi4uY2U5OGNlNjEwNDgyMmE0ZjE1
YjI0ZDU3MDg3ODAyN2Q0OTZhMmViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaWRsCkBAIC0yMiwyOSArMjIsMjkgQEAKIG1vZHVsZSBodG1sIHsKIAogICAg
IGludGVyZmFjZSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRNTEVsZW1lbnQgewotICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOworICAgICAgICBbUmVmbGVjdF0g
YXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBjb2xz
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBkaXJOYW1lOwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CisgICAgICAgIFtSZWZsZWN0
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRpck5hbWU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1
dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3Jt
RWxlbWVudCBmb3JtOwotICAgICAgICBhdHRyaWJ1dGUgbG9uZyBtYXhMZW5ndGggc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBuYW1lOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBwbGFjZWhvbGRl
cjsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlYWRPbmx5OwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVxdWlyZWQ7CisgICAgICAgIGF0dHJpYnV0
ZSBsb25nIG1heExlbmd0aCBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0
ZSBET01TdHJpbmcgcGxhY2Vob2xkZXI7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9v
bGVhbiByZWFkT25seTsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIHJlcXVp
cmVkOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyByb3dzOwotICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyB3cmFwOworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyB3cmFwOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsK
LSAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZGVm
YXVsdFZhbHVlOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyB2YWx1ZTsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0
ZSBET01TdHJpbmcgZGVmYXVsdFZhbHVlOworICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gYXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgdGV4dExlbmd0aDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiB3aWxsVmFsaWRhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0
eVN0YXRlIHZhbGlkaXR5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuIGNoZWNrVmFsaWRpdHkoKTsKLSAgICAg
ICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJl
YXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOworICAgICAgICB2b2lk
IHNldEN1c3RvbVZhbGlkaXR5KFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5l
ZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGVMaXN0IGxhYmVsczsKIApAQCAtNTUsMTMgKzU1LDEzIEBAIG1vZHVsZSBo
dG1sIHsKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpF
Q1RJVkVfQwogICAgICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGluIGxvbmcgc3RhcnQsIGlu
IGxvbmcgZW5kKTsKICNlbHNlCi0gICAgICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGVuZCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBk
aXJlY3Rpb24pOworICAgICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBlbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgZGlyZWN0aW9u
KTsKICNlbmRpZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgJiYgTEFOR1VB
R0VfT0JKRUNUSVZFX0MKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYWNj
ZXNzS2V5OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBhY2Nlc3NLZXk7
CiAjZW5kaWYKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRpdGxlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1l
bnQuaWRsCmluZGV4IGU2OTFmN2IxMzFjOTM4NGU0MzcxNzZkNTc0YmQ0YjNhYmI2NGUyYzQuLjg0
YjAwNmEwOGUzZDkxYmNmNGJlYzVhZjMwNGU3Nzc5ZGU1OWQwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbApAQCAtMjAsNyArMjAsNyBAQAogbW9kdWxlIGh0bWwg
ewogCiAgICAgaW50ZXJmYWNlIEhUTUxUaXRsZUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAg
ICAgIGF0dHJpYnV0ZSAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAg
ICAgIHRleHQ7CisgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICAgICAgdGV4dDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKaW5kZXggMDEwN2RmNWEzZDRhNjdiMDJiMjczNDJhZDkw
NjgzNTNhNDRiMmFkZi4uOThlYzI4NzdjZWI4YWEyNTdkMWIyMWFmZjlmY2IxMmIyOGVkMTZjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCkBAIC0yNCwxNSArMjQs
MTUgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9
d2Via2l0VmlkZW9UcmFjawotICAgIF0gSFRNTFRyYWNrRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CisgICAgXSBp
bnRlcmZhY2UgSFRNTFRyYWNrRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgW1JlZmxl
Y3QsIFVSTF0gYXR0cmlidXRlIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmcga2luZDsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBzcmNsYW5nOwogICAgICAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Rd
IGJvb2xlYW4gZGVmYXVsdDsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBib29sZWFuIGRl
ZmF1bHQ7CiAKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9ORSA9IDA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IExPQURJTkcgPSAxOwpAQCAtNDMsNCArNDMsNCBAQCBtb2R1
bGUgaHRtbCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRleHRUcmFjayB0cmFjazsK
IH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwKaW5kZXgg
MjIxZGNjYTU4MTQ0M2Q3ZTU5OWY1ODJiMDNiMThjZDU2Yzc5ZTkzMy4uYzhlMDNjY2MyMDljNWNm
NGJmZTEzOWZhYjdkMDQ1YzI4YzEwNDI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVUxpc3RFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlz
dEVsZW1lbnQuaWRsCkBAIC0yMCw4ICsyMCw4IEBACiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRl
cmZhY2UgSFRNTFVMaXN0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBib29sZWFuIGNvbXBhY3Q7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHR5cGU7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21w
YWN0OworICAgICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVbmtub3duRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwKaW5k
ZXggOWU0ZjkwYWZhOWE3OWNhYjBkMWMyZDRhYmI2YTU4N2E5YTFhM2IxOS4uZTZlNDIwNTVmMzAx
ODI5ODI3MzQxM2M0Y2IzMWMzMGUxZDgyNDBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFVua25vd25FbGVtZW50LmlkbApAQCAtMzIsNCArMzIsNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
aW50ZXJmYWNlIEhUTUxVbmtub3duRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGwKaW5kZXggOTdhMTc3
OTZlOTA2M2Q1YzFmMDRkMTg3ZTRkNmZlM2QwY2JiNWJhNC4uYTU5NWZmYTdlZTljOWZmN2QwMTg5
OThlNTljMDIzZTRhNDY5YzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuaWRsCkBAIC0yNCwxNSArMjQsMTUgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgICAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QKLSAgICBdIEhUTUxWaWRlb0VsZW1lbnQgOiBIVE1MTWVkaWFF
bGVtZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSB1bnNpZ25lZCBsb25nIHdpZHRo
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OworICAg
IF0gaW50ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQgOiBIVE1MTWVkaWFFbGVtZW50IHsKKyAgICAg
ICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHdpZHRoOworICAgICAgICBbUmVm
bGVjdF0gYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB2aWRlb1dpZHRoOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyB2aWRlb0hlaWdodDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0LCBVUkxdIERPTVN0cmluZyBwb3N0ZXI7CisgICAgICAgIFtSZWZsZWN0LCBVUkxdIGF0dHJp
YnV0ZSBET01TdHJpbmcgcG9zdGVyOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIHdlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gd2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW47CkBAIC00NiwxMCArNDYsMTAgQEAg
bW9kdWxlIGh0bWwgewogCiAgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgZnJhbWVzIHRoYXQgaGF2
ZSBiZWVuIGRlY29kZWQgYW5kIG1hZGUgYXZhaWxhYmxlIGZvcgogICAgICAgICAvLyBwbGF5YmFj
ay4KLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NRURJQV9TVEFUSVNU
SUNTXSB1bnNpZ25lZCBsb25nIHdlYmtpdERlY29kZWRGcmFtZUNvdW50OworICAgICAgICBbQ29u
ZGl0aW9uYWw9TUVESUFfU1RBVElTVElDU10gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgd2Via2l0RGVjb2RlZEZyYW1lQ291bnQ7CiAKICAgICAgICAgLy8gVGhlIG51bWJlciBvZiBk
ZWNvZGVkIGZyYW1lcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGJ5IHRoZSBwbGF5ZXIKICAgICAg
ICAgLy8gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgZHVyaW5nIHBsYXliYWNrLgotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1FRElBX1NUQVRJU1RJQ1NdIHVuc2lnbmVk
IGxvbmcgd2Via2l0RHJvcHBlZEZyYW1lQ291bnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1NRURJ
QV9TVEFUSVNUSUNTXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3ZWJraXREcm9w
cGVkRnJhbWVDb3VudDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VEYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEYXRhLmlkbApp
bmRleCBmMmVhMGNhNmI3MzZjMjlhOTMyN2JjZGVjODRlNWNhNzJiOTAxYmFjLi44YzI3ZjdjNzk4
MzUyMTlkMmYzNDExMmYxMjBmNWZjNmY5NDk0YTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlRGF0YS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURhdGEu
aWRsCkBAIC0yOCw5ICsyOCw5IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0Ci0gICAgXSBJbWFnZURhdGEgeworICAg
IF0gaW50ZXJmYWNlIEltYWdlRGF0YSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdVQUdFX0pBVkFTQ1JJUFQKQEAgLTM4
LDQgKzM4LDQgQEAgbW9kdWxlIGh0bWwgewogI2VuZGlmCiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbAppbmRleCBkM2YzMzQ4NWI5YzllODFmNDA5
N2QyZTA2MGJiNjUyMzEyM2FhZmNmLi40N2Y0YzYyYjI1MmFlZTg0ZjdiNjVhYmM4N2U1OTcxODcx
NzExMGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhQ29udHJvbGxlci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsCkBAIC0yNCwx
OSArMjQsMTkgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPLAogICAgICAgICBDb25zdHJ1Y3RvciwKICAgICAg
ICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICAgICAgSlNHZW5lcmF0ZVRv
SlNPYmplY3QsCiAgICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAgXSBNZWRpYUNvbnRyb2xsZXIgewor
ICAgIF0gaW50ZXJmYWNlIE1lZGlhQ29udHJvbGxlciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBUaW1lUmFuZ2VzIGJ1ZmZlcmVkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVGlt
ZVJhbmdlcyBzZWVrYWJsZTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGR1
cmF0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgZG91YmxlIGN1cnJlbnRUaW1lCi0gICAgICAgICAg
ICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzIChE
T01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBhdXNl
ZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRpbWVSYW5nZXMgcGxheWVkOwpAQCAtNDcs
MTcgKzQ3LDE3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSBwbGF5
YmFja1JhdGU7CiAKICAgICAgICAgYXR0cmlidXRlIGRvdWJsZSB2b2x1bWUKLSAgICAgICAgICAg
IHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIG11dGVkOwogCiAgICAgICAg
IC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIo
aW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZl
bnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VD
YXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAg
ICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUVycm9yLmlkbAppbmRleCA4ZWI5ZDU0MDI5NDY1MDM0ZGQ0M2RmODE5ZmRkY2Qx
MTUxNjcyNzUyLi5hNzBiYmE2NDA1NjcwN2I0MDRjYmY3MzJhNzFmMDY1ZDU0YmY5ZjQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5pZGwKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiBtb2R1
bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVZJ
REVPCi0gICAgXSBNZWRpYUVycm9yIHsKKyAgICBdIGludGVyZmFjZSBNZWRpYUVycm9yIHsKICAg
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9FUlJfQUJPUlRFRCA9IDE7CiAgICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUVESUFfRVJSX05FVFdPUksgPSAyOwogICAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE1FRElBX0VSUl9ERUNPREUgPSAzOwpAQCAtMzYsNCAr
MzYsNCBAQCBtb2R1bGUgaHRtbCB7CiAjZW5kaWYKICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgc2hvcnQgY29kZTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhS2V5RXJyb3IuaWRsCmluZGV4IDU1YjliMDRkMGY3ZjU3M2UzOTQwNmUyYTExMWI0NzZhYWQ5
MmI4OTMuLjg0N2JjZmVkNjYwYTIzMjU0YWNjNzgwMmMzMzU0NDcyYTRmNWMxN2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUtleUVycm9yLmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAog
bW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1FTkNSWVBURURfTUVESUEsCi0gICAgICAgIFY4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRN
ZWRpYSwgCi0gICAgXSBNZWRpYUtleUVycm9yIHsKKyAgICAgICAgVjhFbmFibGVkQXRSdW50aW1l
PWVuY3J5cHRlZE1lZGlhCisgICAgXSBpbnRlcmZhY2UgTWVkaWFLZXlFcnJvciB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IE1FRElBX0tFWUVSUl9VTktOT1dOID0gMTsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgTUVESUFfS0VZRVJSX0NMSUVOVCA9IDI7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IE1FRElBX0tFWUVSUl9TRVJWSUNFID0gMzsKQEAgLTM2LDQgKzM2
LDQgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNRURJQV9L
RVlFUlJfRE9NQUlOID0gNjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNo
b3J0IGNvZGU7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhS2V5RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUtleUV2ZW50Lmlk
bAppbmRleCBiMTM4N2RjZmM0NzAwN2FkNzVlODJmZGZjODNhOWQ3YmViZTczNjU3Li4xYjJjZTk1
MjgwZjYwNjI3YTNkZTJlMmQ3MjYxYjc3MWU2NWNmYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhS2V5RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFLZXlFdmVudC5pZGwKQEAgLTI1LDE4ICsyNSwxOCBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElB
LAogICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWEsCiAgICAgICAgIENv
bnN0cnVjdG9yVGVtcGxhdGU9RXZlbnQgCi0gICAgXSBNZWRpYUtleUV2ZW50IDogRXZlbnQgewot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9y
XSBET01TdHJpbmcga2V5U3lzdGVtOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRp
YWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01TdHJpbmcgc2Vzc2lvbklkOwotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBVaW50OEFy
cmF5IGluaXREYXRhOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlF
dmVudENvbnN0cnVjdG9yXSBVaW50OEFycmF5IG1lc3NhZ2U7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBkZWZhdWx0
VVJMOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0
cnVjdG9yXSBNZWRpYUtleUVycm9yIGVycm9yQ29kZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gdW5zaWduZWQgc2hvcnQgc3lzdGVt
Q29kZTsKKyAgICBdIGludGVyZmFjZSBNZWRpYUtleUV2ZW50IDogRXZlbnQgeworICAgICAgICBb
SW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcga2V5U3lzdGVtOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2Vzc2lvbklkOworICAgICAgICBbSW5pdGlhbGl6
ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVaW50OEFycmF5IGluaXRE
YXRhOworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBVaW50OEFycmF5IG1lc3NhZ2U7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkZWZhdWx0VVJMOworICAg
ICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBN
ZWRpYUtleUVycm9yIGVycm9yQ29kZTsKKyAgICAgICAgW0luaXRpYWxpemVkQnlFdmVudENvbnN0
cnVjdG9yXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgc3lzdGVtQ29kZTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb05vZGVM
aXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwKaW5kZXggOGVk
NTdiYWNkYzE3ZTg3MDkyNjk3MTI5ZDE2YzM5NzMwODA0MWJmNi4uZjY3OWU0ODRkYWE1Y2RlNWI0
MjYwN2U0MDk4YzE4Zjk5ODQ0MWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9S
YWRpb05vZGVMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3Qu
aWRsCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAotICAgICAgICBJbmRleGVk
R2V0dGVyLAotICAgIF0gUmFkaW9Ob2RlTGlzdCA6IE5vZGVMaXN0IHsKKyAgICAgICAgSW5kZXhl
ZEdldHRlcgorICAgIF0gaW50ZXJmYWNlIFJhZGlvTm9kZUxpc3QgOiBOb2RlTGlzdCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CiAgICAgfTsKLX0KK307CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJpY3MuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0TWV0cmljcy5pZGwKaW5kZXggMWEzMTViYWMyMWUyMTY2NDQ5Yjg1OTBiYTYyNjE5
OWM0ZmE3ZjhjYy4uNThmZTI1YjNlYzM3ZTMwYzhlNTg0MjVkZWE0ODBhMjJjZjQxNDFlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0TWV0cmljcy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0TWV0cmljcy5pZGwKQEAgLTI5LDQgKzI5LDQgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgd2lkdGg7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuaWRsCmluZGV4IGMzN2MzNjBkYmNhNDExODM0
N2U5MzIzYjQxYmUyMmE1NGM5ODVmNTYuLjk2NjkxMDA5OWU5ZWZhYTVkY2E4Y2ZjODAzMjFiZjhj
YjI4MzIzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmlkbApAQCAtMjUsOSArMjUsOSBA
QAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9VklERU8KLSAgICBdIFRpbWVSYW5nZXMgeworICAgIF0gaW50ZXJmYWNlIFRpbWVS
YW5nZXMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
CiAgICAgICAgIGZsb2F0IHN0YXJ0KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCiAgICAgICAgICAg
ICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwKaW5kZXggNjAxYmZhZmVkYzViOTE1NGQ1ODdl
NjdjYTcyYzVlN2Y5MmVjNThjNy4uYmE2MjQzZDRlYjNiMDA3ZGFiNmU4ZjQyYmYxNjBiZDY1NWRl
NTc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaWRsCkBAIC0yMiw5ICsyMiw5
IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBP
bWl0Q29uc3RydWN0b3IKLSAgICBdIFZhbGlkaXR5U3RhdGUgeworICAgIF0gaW50ZXJmYWNlIFZh
bGlkaXR5U3RhdGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHZhbHVlTWlzc2luZzsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAg
ICB0eXBlTWlzbWF0Y2g7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgcGF0dGVybk1pc21hdGNoOwpAQCAtMzUsNCArMzUsNCBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgY3VzdG9tRXJyb3I7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgdmFsaWQ7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZvaWRDYWxsYmFjay5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZvaWRDYWxsYmFjay5pZGwKaW5kZXggZDBmMTU5YjgzODdmMDMw
NjRlYTRiZjlhNWJjMWRlZjViZWZlMjQwNy4uNDIyNzkzMDIxODg4MTdmOTc4MGQ2YjhlZjJmNDk2
NTAxZTBhZDFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJhY2su
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVm9pZENhbGxiYWNrLmlkbApAQCAtMjQsMTAg
KzI0LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBKU0N1c3RvbVRvTmF0aXZlT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IK
LSAgICBdIFZvaWRDYWxsYmFjayB7CisgICAgXSBpbnRlcmZhY2UgVm9pZENhbGxiYWNrIHsKICAg
ICAgICAgdm9pZCBoYW5kbGVFdmVudCgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQXJyYXlCdWZmZXIuaWRsCmluZGV4IDI2ZGQzNDFiYmQ0NjdmNTkxNjAzMGEy
Y2NjZGJhYzIxZjU0NGNlODYuLjdlNTFiZDJjYWQ4NzI5OTdjM2FkYTk3MWQwOTJmODkyOWJjZTRh
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BcnJheUJ1ZmZlci5pZGwKQEAgLTI1
LDE0ICsyNSwxNCBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwsCiAgICAgICAgIEN1c3RvbUNvbnN0
cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MSwKICAgICAgICAgSlNOb1N0
YXRpY1RhYmxlcwotICAgIF0gQXJyYXlCdWZmZXIgeworICAgIF0gaW50ZXJmYWNlIEFycmF5QnVm
ZmVyIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBieXRlTGVuZ3RoOwotICAgICAg
ICBBcnJheUJ1ZmZlciBzbGljZShpbiBsb25nIGJlZ2luLCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5k
KTsKKyAgICAgICAgQXJyYXlCdWZmZXIgc2xpY2UoaW4gbG9uZyBiZWdpbiwgW09wdGlvbmFsXSBp
biBsb25nIGVuZCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9BcnJheUJ1ZmZlclZpZXcuaWRsCmluZGV4IDBlOTM0ZTZjYjQ4MWI1NjZhMjY1MWY2OTYy
ZGQ1NDg1MTMyYzYyZjYuLjExOTQ0ZDg1ZWE2NGUzMzllZDc2MmQ4MDFlYjEwZGQ5ODk2N2Q3ODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyVmlldy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQXJyYXlCdWZmZXJWaWV3LmlkbApA
QCAtMjQsMTMgKzI0LDEzIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBKU05vU3RhdGljVGFi
bGVzLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIEFycmF5QnVmZmVyVmlldyB7Cisg
ICAgXSBpbnRlcmZhY2UgQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEFycmF5QnVmZmVyIGJ1ZmZlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgYnl0ZU9mZnNldDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgYnl0ZUxlbmd0aDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc0dyYWRpZW50LmlkbAppbmRleCA0OTZkNGMxYjE0OTMwOWIyMDFhOTIxODZj
NTBmNzVmOWM2NThkZGIyLi41MDcxMTk2NDhmNGI5NWEwNjRjM2E3ZmFjODQ2YmQ4MDUzZDExNjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaWRsCkBA
IC0yNywxMSArMjcsMTEgQEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIENhbnZhc0dy
YWRpZW50IHsKIAotICAgICAgICB2b2lkIGFkZENvbG9yU3RvcChpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgY29sb3IpCisgICAgICAg
IHZvaWQgYWRkQ29sb3JTdG9wKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIERPTVN0cmluZyBjb2xvcikKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKIAogICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUGF0dGVybi5pZGwKaW5kZXggZTVhYTAzNjBiOTkwYzZkMDVjZTk2MjNlNzk0Nzlj
ZDE1Mzg2MGFmMS4uYmU2OGI1NDY1YTFlMTYyNTc2N2I1M2M0NDQ1MjllYzQ4OWE1MDNkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5pZGwKQEAgLTI4LDUg
KzI4LDUgQEAgbW9kdWxlIGh0bWwgewogICAgIGludGVyZmFjZSBDYW52YXNQYXR0ZXJuIHsKICAg
ICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQuaWRsCmluZGV4IGI5MzczOTMxZjZmNjVmNjNmMjM0N2I3MTI3
Mjg0OWJlMTFkNDhlOTMuLjc2NTUzYmMwOWExNDE2NDMxZGNkZmE5OWIzYzljYmMwOTFlMDllNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaWRsCkBAIC0yNSwxNCArMjUsMTQgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAg
ICBKU0dlbmVyYXRlSXNSZWFjaGFibGUsCiAgICAgICAgIEpTQ3VzdG9tVG9KU09iamVjdAotICAg
IF0gQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CisgICAgXSBpbnRlcmZhY2UgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxDYW52YXNFbGVt
ZW50IGNhbnZhczsKICAgICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAppbmRleCBjZmZhOGRh
YjlmM2U2N2YyMzI0M2FiYTFiMTA5Y2EwM2U0ZmNiOTllLi42MzEyN2QyOTc2M2RiY2ExODhlNDc4
NGZjZWU1MjY2MzFiY2IxYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTMwLDE0MyArMzAsMTQzIEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCBzYXZlKCk7CiAgICAgICAgIHZvaWQgcmVzdG9y
ZSgpOwogCi0gICAgICAgIHZvaWQgc2NhbGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gZmxvYXQgc3gsCi0gICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgc3kpOwotICAgICAgICB2b2lkIHJvdGF0ZShpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCBhbmdsZSk7Ci0gICAgICAgIHZvaWQgdHJhbnNsYXRlKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHR4LAotICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB0eSk7Ci0gICAg
ICAgIHZvaWQgdHJhbnNmb3JtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IG0xMSwKLSAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgbTEyLAotICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCBtMjEsCi0gICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IG0yMiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgZHgsCi0gICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGR5
KTsKLSAgICAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgbTExLAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBtMTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IG0yMSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgbTIy
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBmbG9hdCBkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgZHkpOworICAgICAgICB2b2lkIHNjYWxlKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN4LAorICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN5KTsKKyAgICAgICAgdm9pZCBy
b3RhdGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgYW5nbGUpOworICAg
ICAgICB2b2lkIHRyYW5zbGF0ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9h
dCB0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgdHkpOworICAgICAgICB2b2lkIHRyYW5zZm9ybShbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBpbiBmbG9hdCBtMTEsCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IG0xMiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgbTIxLAorICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBt
MjIsCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGZsb2F0IGR4LAorICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCBkeSk7CisgICAgICAgIHZvaWQgc2V0VHJhbnNmb3JtKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IG0xMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgbTEyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCBtMjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IG0yMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgZHgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGR5KTsKIAogICAg
ICAgICBhdHRyaWJ1dGUgZmxvYXQgZ2xvYmFsQWxwaGE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJl
YXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbjsK
KyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgZ2xv
YmFsQ29tcG9zaXRlT3BlcmF0aW9uOwogCi0gICAgICAgIENhbnZhc0dyYWRpZW50IGNyZWF0ZUxp
bmVhckdyYWRpZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQg
eDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkxKQorICAgICAgICBDYW52YXNHcmFkaWVu
dCBjcmVhdGVMaW5lYXJHcmFkaWVudChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB4MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeTAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGZsb2F0IHgxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MSkKICAgICAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgQ2FudmFzR3JhZGllbnQgY3JlYXRlUmFk
aWFsR3JhZGllbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDAsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBy
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZs
b2F0IHkxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCByMSkKKyAgICAgICAgQ2FudmFzR3Jh
ZGllbnQgY3JlYXRlUmFkaWFsR3JhZGllbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgeDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCByMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IHkxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCByMSkKICAg
ICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBhdHRyaWJ1dGUgZmxv
YXQgbGluZVdpZHRoOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmdd
IERPTVN0cmluZyBsaW5lQ2FwOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxT
dHJpbmddIERPTVN0cmluZyBsaW5lSm9pbjsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJp
bmddIGF0dHJpYnV0ZSBET01TdHJpbmcgbGluZUNhcDsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51
bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgbGluZUpvaW47CiAgICAgICAgIGF0dHJpYnV0
ZSBmbG9hdCBtaXRlckxpbWl0OwogCiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBzaGFkb3dPZmZz
ZXRYOwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgc2hhZG93T2Zmc2V0WTsKICAgICAgICAgYXR0
cmlidXRlIGZsb2F0IHNoYWRvd0JsdXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHNoYWRvd0NvbG9yOworICAgICAgICBbVHJlYXROdWxsQXM9
TnVsbFN0cmluZ10gYXR0cmlidXRlIERPTVN0cmluZyBzaGFkb3dDb2xvcjsKIAogICAgICAgICAv
LyBGSVhNRTogVGhlc2UgYXR0cmlidXRlcyBzaG91bGQgYWxzbyBiZSBpbXBsZW1lbnRlZCBmb3Ig
VjguCiAjaWYgIShkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcpCi0gICAgICAgIGF0
dHJpYnV0ZSBbQ3VzdG9tXSBBcnJheSB3ZWJraXRMaW5lRGFzaDsKKyAgICAgICAgW0N1c3RvbV0g
YXR0cmlidXRlIEFycmF5IHdlYmtpdExpbmVEYXNoOwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQg
d2Via2l0TGluZURhc2hPZmZzZXQ7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIGNsZWFyUmVjdChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LAotICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LAotICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB3
aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgaGVpZ2h0KTsKLSAgICAgICAgdm9pZCBmaWxsUmVjdChpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LAotICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHksCi0gICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgd2lkdGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgaGVp
Z2h0KTsKKyAgICAgICAgdm9pZCBjbGVhclJlY3QoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgd2lkdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGhlaWdodCk7CisgICAg
ICAgIHZvaWQgZmlsbFJlY3QoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQg
eCwKKyAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBmbG9hdCB5LAorICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGhlaWdodCk7CiAKICAgICAgICAgdm9pZCBiZWdp
blBhdGgoKTsKICAgICAgICAgdm9pZCBjbG9zZVBhdGgoKTsKLSAgICAgICAgdm9pZCBtb3ZlVG8o
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwKLSAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7Ci0gICAgICAg
IHZvaWQgbGluZVRvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0g
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IHkpOwotICAgICAgICB2b2lkIHF1YWRyYXRpY0N1cnZlVG8oaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgY3B4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgY3B5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGZsb2F0IHkpOwotICAgICAgICB2b2lkIGJlemllckN1cnZlVG8oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgY3AxeCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGNwMXksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCBjcDJ4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgY3AyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKLSAgICAg
ICAgdm9pZCBhcmNUbyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4MSwK
LSAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCB5MSwKLSAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB4MiwKLSAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBmbG9hdCB5MiwKLSAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCByYWRpdXMpCi0gICAgICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgcmVjdChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB4LAotICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeSwKLSAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IHdpZHRoLAotICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgaGVpZ2h0KTsKLSAgICAgICAgdm9pZCBhcmMoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwKLSAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwKLSAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgcmFkaXVzLAotICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBzdGFydEFuZ2xl
LAotICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9h
dCBlbmRBbmdsZSwKLSAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gYm9vbGVhbiBhbnRpY2xvY2t3aXNlKQorICAgICAgICB2b2lkIG1vdmVUbyhbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LAorICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKKyAgICAgICAgdm9pZCBs
aW5lVG8oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7Cisg
ICAgICAgIHZvaWQgcXVhZHJhdGljQ3VydmVUbyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBmbG9hdCBjcHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBjcHksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgeSk7CisgICAgICAgIHZvaWQgYmV6aWVyQ3VydmVUbyhbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBmbG9hdCBjcDF4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgY3AxeSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGNwMngs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBmbG9hdCBjcDJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkpOworICAgICAgICB2b2lk
IGFyY1RvKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgxLAorICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkxLAor
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHgyLAorICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGZsb2F0IHkyLAorICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IHJhZGl1cykKKyAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgdm9pZCByZWN0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHgsCisgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB5LAorICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgd2lkdGgsCisgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCBoZWlnaHQpOworICAgICAgICB2b2lkIGFyYyhbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LAorICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LAorICAgICAgICAgICAgICAgICBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCByYWRpdXMsCisgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN0YXJ0QW5nbGUsCisgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGVuZEFu
Z2xlLAorICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBi
b29sZWFuIGFudGljbG9ja3dpc2UpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgZmlsbCgpOwogICAgICAgICB2b2lkIHN0cm9rZSgpOwogICAgICAgICB2
b2lkIGNsaXAoKTsKLSAgICAgICAgYm9vbGVhbiBpc1BvaW50SW5QYXRoKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKKyAgICAgICAgYm9v
bGVhbiBpc1BvaW50SW5QYXRoKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCB5KTsKIAogICAgICAgICAvLyB0ZXh0CiAgICAgICAgIGF0dHJpYnV0
ZSBET01TdHJpbmcgZm9udDsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0QWxpZ247
CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dEJhc2VsaW5lOwogCi0gICAgICAgIFRl
eHRNZXRyaWNzIG1lYXN1cmVUZXh0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyB0ZXh0KTsKKyAgICAgICAgVGV4dE1ldHJpY3MgbWVhc3VyZVRleHQoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHRleHQpOwogCiAgICAgICAgIC8vIG90
aGVyCiAKLSAgICAgICAgdm9pZCBzZXRBbHBoYShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBmbG9hdCBhbHBoYSk7Ci0gICAgICAgIHZvaWQgc2V0Q29tcG9zaXRlT3BlcmF0aW9uKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBjb21wb3NpdGVPcGVyYXRp
b24pOworICAgICAgICB2b2lkIHNldEFscGhhKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9pZCBzZXRDb21wb3NpdGVPcGVyYXRpb24oW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGNvbXBvc2l0ZU9wZXJhdGlv
bik7CiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKLSAgICAg
ICAgdm9pZCBzZXRMaW5lV2lkdGgoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxv
YXQgd2lkdGgpOwotICAgICAgICB2b2lkIHNldExpbmVDYXAoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNhcCk7Ci0gICAgICAgIHZvaWQgc2V0TGluZUpvaW4oaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGpvaW4pOwotICAgICAgICB2
b2lkIHNldE1pdGVyTGltaXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQg
bGltaXQpOworICAgICAgICB2b2lkIHNldExpbmVXaWR0aChbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCB3aWR0aCk7CisgICAgICAgIHZvaWQgc2V0TGluZUNhcChbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgY2FwKTsKKyAgICAgICAgdm9pZCBz
ZXRMaW5lSm9pbihbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgam9p
bik7CisgICAgICAgIHZvaWQgc2V0TWl0ZXJMaW1pdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCBsaW1pdCk7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIGNsZWFyU2hhZG93
KCk7CiAKLSAgICAgICAgdm9pZCBmaWxsVGV4dChpbiBET01TdHJpbmcgdGV4dCwgaW4gZmxvYXQg
eCwgaW4gZmxvYXQgeSwgaW4gW09wdGlvbmFsXSBmbG9hdCBtYXhXaWR0aCk7Ci0gICAgICAgIHZv
aWQgc3Ryb2tlVGV4dChpbiBET01TdHJpbmcgdGV4dCwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSwg
aW4gW09wdGlvbmFsXSBmbG9hdCBtYXhXaWR0aCk7CisgICAgICAgIHZvaWQgZmlsbFRleHQoaW4g
RE9NU3RyaW5nIHRleHQsIGluIGZsb2F0IHgsIGluIGZsb2F0IHksIFtPcHRpb25hbF0gaW4gZmxv
YXQgbWF4V2lkdGgpOworICAgICAgICB2b2lkIHN0cm9rZVRleHQoaW4gRE9NU3RyaW5nIHRleHQs
IGluIGZsb2F0IHgsIGluIGZsb2F0IHksIFtPcHRpb25hbF0gaW4gZmxvYXQgbWF4V2lkdGgpOwog
Ci0gICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29sb3IoaW4gRE9NU3RyaW5nIGNvbG9yLCBpbiBbT3B0
aW9uYWxdIGZsb2F0IGFscGhhKTsKLSAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihpbiBmbG9h
dCBncmF5TGV2ZWwsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOworICAgICAgICB2b2lkIHNl
dFN0cm9rZUNvbG9yKGluIERPTVN0cmluZyBjb2xvciwgW09wdGlvbmFsXSBpbiBmbG9hdCBhbHBo
YSk7CisgICAgICAgIHZvaWQgc2V0U3Ryb2tlQ29sb3IoaW4gZmxvYXQgZ3JheUxldmVsLCBbT3B0
aW9uYWxdIGluIGZsb2F0IGFscGhhKTsKICAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihpbiBm
bG9hdCByLCBpbiBmbG9hdCBnLCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsKICAgICAgICAgdm9p
ZCBzZXRTdHJva2VDb2xvcihpbiBmbG9hdCBjLCBpbiBmbG9hdCBtLCBpbiBmbG9hdCB5LCBpbiBm
bG9hdCBrLCBpbiBmbG9hdCBhKTsKIAotICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBET01T
dHJpbmcgY29sb3IsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEpOwotICAgICAgICB2b2lkIHNl
dEZpbGxDb2xvcihpbiBmbG9hdCBncmF5TGV2ZWwsIGluIFtPcHRpb25hbF0gZmxvYXQgYWxwaGEp
OworICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBET01TdHJpbmcgY29sb3IsIFtPcHRpb25h
bF0gaW4gZmxvYXQgYWxwaGEpOworICAgICAgICB2b2lkIHNldEZpbGxDb2xvcihpbiBmbG9hdCBn
cmF5TGV2ZWwsIFtPcHRpb25hbF0gaW4gZmxvYXQgYWxwaGEpOwogICAgICAgICB2b2lkIHNldEZp
bGxDb2xvcihpbiBmbG9hdCByLCBpbiBmbG9hdCBnLCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsK
ICAgICAgICAgdm9pZCBzZXRGaWxsQ29sb3IoaW4gZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxv
YXQgeSwgaW4gZmxvYXQgaywgaW4gZmxvYXQgYSk7CiAKLSAgICAgICAgdm9pZCBzdHJva2VSZWN0
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LAotICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxv
YXQgd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBmbG9hdCBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWxdIGZsb2F0IGxpbmVXaWR0aCk7CisgICAgICAgIHZvaWQgc3Ryb2tlUmVjdChbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LAorICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHdpZHRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gZmxvYXQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBm
bG9hdCBsaW5lV2lkdGgpOwogCiAgICAgICAgIHZvaWQgZHJhd0ltYWdlKGluIEhUTUxJbWFnZUVs
ZW1lbnQ/IGltYWdlLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwpAQCAtMTkwLDEyICsxOTAsMTIgQEAgbW9kdWxlIGh0bWwgewogI2Vu
ZGlmCiAKICAgICAgICAgdm9pZCBkcmF3SW1hZ2VGcm9tUmVjdChpbiBIVE1MSW1hZ2VFbGVtZW50
IGltYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gZmxv
YXQgc3gsIGluIFtPcHRpb25hbF0gZmxvYXQgc3ksIGluIFtPcHRpb25hbF0gZmxvYXQgc3csIGlu
IFtPcHRpb25hbF0gZmxvYXQgc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsXSBmbG9hdCBkeCwgaW4gW09wdGlvbmFsXSBmbG9hdCBkeSwgaW4gW09wdGlvbmFs
XSBmbG9hdCBkdywgaW4gW09wdGlvbmFsXSBmbG9hdCBkaCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBjb21wb3NpdGVPcGVyYXRpb24pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gZmxvYXQgc3gsIFtP
cHRpb25hbF0gaW4gZmxvYXQgc3ksIFtPcHRpb25hbF0gaW4gZmxvYXQgc3csIFtPcHRpb25hbF0g
aW4gZmxvYXQgc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBp
biBmbG9hdCBkeCwgW09wdGlvbmFsXSBpbiBmbG9hdCBkeSwgW09wdGlvbmFsXSBpbiBmbG9hdCBk
dywgW09wdGlvbmFsXSBpbiBmbG9hdCBkaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBjb21wb3NpdGVPcGVyYXRpb24pOwogCi0gICAgICAg
IHZvaWQgc2V0U2hhZG93KGluIGZsb2F0IHdpZHRoLCBpbiBmbG9hdCBoZWlnaHQsIGluIGZsb2F0
IGJsdXIsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGNvbG9yLCBpbiBbT3B0aW9uYWxdIGZsb2F0
IGFscGhhKTsKLSAgICAgICAgdm9pZCBzZXRTaGFkb3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0
IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgaW4gZmxvYXQgZ3JheUxldmVsLCBpbiBbT3B0aW9uYWxd
IGZsb2F0IGFscGhhKTsKKyAgICAgICAgdm9pZCBzZXRTaGFkb3coaW4gZmxvYXQgd2lkdGgsIGlu
IGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1ciwgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgY29s
b3IsIFtPcHRpb25hbF0gaW4gZmxvYXQgYWxwaGEpOworICAgICAgICB2b2lkIHNldFNoYWRvdyhp
biBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBmbG9hdCBn
cmF5TGV2ZWwsIFtPcHRpb25hbF0gaW4gZmxvYXQgYWxwaGEpOwogICAgICAgICB2b2lkIHNldFNo
YWRvdyhpbiBmbG9hdCB3aWR0aCwgaW4gZmxvYXQgaGVpZ2h0LCBpbiBmbG9hdCBibHVyLCBpbiBm
bG9hdCByLCBpbiBmbG9hdCBnLCBpbiBmbG9hdCBiLCBpbiBmbG9hdCBhKTsKICAgICAgICAgdm9p
ZCBzZXRTaGFkb3coaW4gZmxvYXQgd2lkdGgsIGluIGZsb2F0IGhlaWdodCwgaW4gZmxvYXQgYmx1
ciwgaW4gZmxvYXQgYywgaW4gZmxvYXQgbSwgaW4gZmxvYXQgeSwgaW4gZmxvYXQgaywgaW4gZmxv
YXQgYSk7CiAKQEAgLTIwOSwyNSArMjA5LDI1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9p
ZCB3ZWJraXRQdXRJbWFnZURhdGFIRChpbiBJbWFnZURhdGE/IGltYWdlZGF0YSwgaW4gZmxvYXQg
ZHgsIGluIGZsb2F0IGR5LCBpbiBmbG9hdCBkaXJ0eVgsIGluIGZsb2F0IGRpcnR5WSwgaW4gZmxv
YXQgZGlydHlXaWR0aCwgaW4gZmxvYXQgZGlydHlIZWlnaHQpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBDYW52YXNQYXR0ZXJuIGNyZWF0ZVBhdHRlcm4oaW4g
SFRNTENhbnZhc0VsZW1lbnQ/IGNhbnZhcywgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyByZXBldGl0aW9uVHlwZSkKKyAgICAgICAgQ2FudmFzUGF0dGVybiBjcmVhdGVQYXR0
ZXJuKGluIEhUTUxDYW52YXNFbGVtZW50PyBjYW52YXMsIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5n
XSBpbiBET01TdHJpbmcgcmVwZXRpdGlvblR5cGUpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIENhbnZhc1BhdHRlcm4gY3JlYXRlUGF0dGVybihpbiBIVE1MSW1h
Z2VFbGVtZW50PyBpbWFnZSwgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBy
ZXBldGl0aW9uVHlwZSkKKyAgICAgICAgQ2FudmFzUGF0dGVybiBjcmVhdGVQYXR0ZXJuKGluIEhU
TUxJbWFnZUVsZW1lbnQ/IGltYWdlLCBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gaW4gRE9NU3Ry
aW5nIHJlcGV0aXRpb25UeXBlKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwog
ICAgICAgICBJbWFnZURhdGEgY3JlYXRlSW1hZ2VEYXRhKGluIEltYWdlRGF0YT8gaW1hZ2VkYXRh
KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBJbWFnZURhdGEg
Y3JlYXRlSW1hZ2VEYXRhKGluIGZsb2F0IHN3LCBpbiBmbG9hdCBzaCkKICAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9t
IHN0cm9rZVN0eWxlOwotICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9tIGZpbGxTdHls
ZTsKKyAgICAgICAgW0N1c3RvbV0gYXR0cmlidXRlIGN1c3RvbSBzdHJva2VTdHlsZTsKKyAgICAg
ICAgW0N1c3RvbV0gYXR0cmlidXRlIGN1c3RvbSBmaWxsU3R5bGU7CiAKICAgICAgICAgLy8gcGl4
ZWwgbWFuaXB1bGF0aW9uCi0gICAgICAgIEltYWdlRGF0YSBnZXRJbWFnZURhdGEoaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgc3gsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGZsb2F0IHN5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN3LCBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCBzaCkKKyAgICAgICAgSW1hZ2VEYXRhIGdldEltYWdlRGF0YShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzeCwgW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3csIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHNoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSAgICAgICAgSW1hZ2VEYXRhIHdlYmtpdEdldEltYWdlRGF0YUhEKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN4LCBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCBzeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN3LCBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBzaCkKKyAgICAgICAgSW1hZ2VEYXRhIHdl
YmtpdEdldEltYWdlRGF0YUhEKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHN4LCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBzeSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IHN3LCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBz
aCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBmbG9hdCB3ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvOwpAQCAtMjM1LDUg
KzIzNSw1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0
SW1hZ2VTbW9vdGhpbmdFbmFibGVkOwogICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmlkbAppbmRleCAzZjRkY2RmNGQ5NzRjNDkxODY0M2RjMzFmZGNm
N2VmMDcxOWI4ZDM0Li43ODBlNzU2MWU3MDEzYmM0ZjE1ZWU4NDIzYWQ2NjIwYWFhZDQ3OGZhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0YVZpZXcuaWRsCkBAIC0yNSwxMiArMjUsMTIg
QEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1
c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MywKICAgICAg
ICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gRGF0
YVZpZXcgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gaW50ZXJmYWNlIERhdGFWaWV3IDogQXJy
YXlCdWZmZXJWaWV3IHsKICAgICAgICAgLy8gQWxsIHRoZXNlIG1ldGhvZHMgcmFpc2UgYW4gZXhj
ZXB0aW9uIGlmIHRoZXkgd291bGQgcmVhZCBvciB3cml0ZSBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
dmlldy4KIAogICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSBjdXN0b20gY29kZSBiZWNhdXNlIG91
ciBjb2RlIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0IGludDhfdCB0eXBlLgpAQCAtNDEsMTkg
KzQxLDE5IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGdldFVp
bnQ4KCkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBzaG9ydCBnZXRJbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZz
ZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHNob3J0IGdldEludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwg
W09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWduZWQgc2hv
cnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09wdGlvbmFsXSBi
b29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWdu
ZWQgc2hvcnQgZ2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgW09wdGlvbmFs
XSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gbG9uZyBnZXRJbnQzMihpbiB1bnNp
Z25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4p
CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGxvbmcgZ2V0SW50MzIoaW4gdW5zaWduZWQg
bG9uZyBieXRlT2Zmc2V0LCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQogICAg
ICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB1bnNpZ25lZCBsb25nIGdldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQs
IGluIFtPcHRpb25hbF0gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCisgICAgICAgIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIHVuc2lnbmVkIGxvbmcgZ2V0VWludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9m
ZnNldCwgW09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBVc2UgY3VzdG9tIGNvZGUgdG8gaGFu
ZGxlIE5hTiBjYXNlIGZvciBKU0MuCi0gICAgICAgIFtKU0N1c3RvbSwgU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCBnZXRGbG9hdDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gW09w
dGlvbmFsXSBib29sZWFuIGxpdHRsZUVuZGlhbikKKyAgICAgICAgW0pTQ3VzdG9tLCBTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IGdldEZsb2F0MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0
LCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQogICAgICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgICAgICBbSlNDdXN0b20sIFN0cmljdFR5cGVDaGVja2luZ10g
ZG91YmxlIGdldEZsb2F0NjQoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbSlNDdXN0b20sIFN0cmljdFR5cGVD
aGVja2luZ10gZG91YmxlIGdldEZsb2F0NjQoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBb
T3B0aW9uYWxdIGluIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQogICAgICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIGN1c3RvbSBjb2RlIGJl
Y2F1c2Ugb3VyIGNvZGUgZ2VuZXJhdG9yIGRvZXMgbm90IHN1cHBvcnQgdWludDhfdCB0eXBlLgpA
QCAtNjQsMTggKzY0LDE4IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBz
ZXRVaW50OCgpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRJbnQxNihpbiB1bnNpZ25lZCBsb25nIGJ5dGVP
ZmZzZXQsIGluIHNob3J0IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFu
KQorICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldEludDE2KGluIHVuc2lnbmVk
IGxvbmcgYnl0ZU9mZnNldCwgaW4gc2hvcnQgdmFsdWUsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBs
aXR0bGVFbmRpYW4pCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0VWludDE2KGluIHVuc2lnbmVkIGxvbmcgYnl0
ZU9mZnNldCwgaW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBs
aXR0bGVFbmRpYW4pCisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0VWludDE2
KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gdW5zaWduZWQgc2hvcnQgdmFsdWUsIFtP
cHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAgICAgICAgICByYWlzZXMgKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0SW50MzIo
aW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiBsb25nIHZhbHVlLCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lk
IHNldEludDMyKGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4gbG9uZyB2YWx1ZSwgW09w
dGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikKICAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBzZXRVaW50MzIo
aW4gdW5zaWduZWQgbG9uZyBieXRlT2Zmc2V0LCBpbiB1bnNpZ25lZCBsb25nIHZhbHVlLCBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkIHNldFVpbnQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIHVuc2ln
bmVkIGxvbmcgdmFsdWUsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVFbmRpYW4pCiAgICAg
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIHZvaWQgc2V0RmxvYXQzMihpbiB1bnNpZ25lZCBsb25nIGJ5dGVPZmZzZXQsIGluIGZsb2F0
IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldEZsb2F0MzIoaW4gdW5zaWduZWQgbG9uZyBieXRlT2Zm
c2V0LCBpbiBmbG9hdCB2YWx1ZSwgW09wdGlvbmFsXSBpbiBib29sZWFuIGxpdHRsZUVuZGlhbikK
ICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gdm9pZCBzZXRGbG9hdDY0KGluIHVuc2lnbmVkIGxvbmcgYnl0ZU9mZnNldCwgaW4g
ZG91YmxlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gbGl0dGxlRW5kaWFuKQorICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHNldEZsb2F0NjQoaW4gdW5zaWduZWQgbG9uZyBi
eXRlT2Zmc2V0LCBpbiBkb3VibGUgdmFsdWUsIFtPcHRpb25hbF0gaW4gYm9vbGVhbiBsaXR0bGVF
bmRpYW4pCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMuaWRsCmluZGV4IDU2OGFhOWEzZDlmMGJjNDQyMzQyY2VhOWZjN2Rh
MmM3Y2ViMGVkNzEuLjA4MDYzNmY1NTU2YWRiZTVhZDc4NjI2ZjY4YjEyYjBkZWE0NzI0MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljLmlkbApAQCAtMjQsMTMgKzI0LDEzIEBACiAgKi8KIAogbW9kdWxlIGh0
bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwK
ICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0
Q29uc3RydWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEVYVFRleHR1
cmVGaWx0ZXJBbmlzb3Ryb3BpYyB7CisgICAgXSBpbnRlcmZhY2UgRVhUVGV4dHVyZUZpbHRlckFu
aXNvdHJvcGljIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFRFWFRVUkVfTUFYX0FOSVNP
VFJPUFlfRVhUID0gMHg4NEZFOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgTUFYX1RFWFRV
UkVfTUFYX0FOSVNPVFJPUFlfRVhUID0gMHg4NEZGOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKaW5kZXggOGVhZWJlNGRlZDhhMDJj
YjA4OGQyYTAwZDliMGRjZGI2NjJkMTU5Mi4uMmYyYjIyNzgzNmU3MDM5YzdkMTdiYzAzMjllOTJk
ODhmMWY3Zjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQz
MkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXku
aWRsCkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0
b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTUg
KzM0LDE1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAg
ICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0g
RmxvYXQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIGludGVyZmFjZSBGbG9hdDMy
QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZ
VEVTX1BFUl9FTEVNRU5UID0gNDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIEZsb2F0MzJBcnJheSBzdWJhcnJheShpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOworICAgICAgICBGbG9hdDMyQXJyYXkg
c3ViYXJyYXkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAog
ICAgICAgICAvLyB2b2lkIHNldChpbiBGbG9hdDMyQXJyYXkgYXJyYXksIFtPcHRpb25hbF0gaW4g
dW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNldChpbiBzZXF1ZW5jZTxs
b25nPiBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgc2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbAppbmRleCBhYmZlYjIxNzg4OTA0MGE1NmM1YWJiOTA5
M2U0YWVjZWMxMmYyY2Q5Li40MzZjM2Q1MzlhYTM2NTJiMTFjODNiZTk1Yzk4ODg0OGVkODc0NDMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKQEAgLTI1
LDcgKzI1LDcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRl
cnM9MSwKICAgICAgICAgTnVtZXJpY0luZGV4ZWRHZXR0ZXIsCkBAIC0zNCwxNSArMzQsMTUgQEAg
bW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21U
b0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBGbG9hdDY0QXJy
YXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gaW50ZXJmYWNlIEZsb2F0NjRBcnJheSA6IEFy
cmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VM
RU1FTlQgPSA4OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKLSAgICAgICAgRmxvYXQ2NEFycmF5IHN1YmFycmF5KGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgc3RhcnQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisgICAgICAgIEZsb2F0NjRBcnJheSBzdWJhcnJheShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHN0YXJ0LCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gbG9uZyBlbmQpOwogCiAgICAgICAgIC8v
IHZvaWQgc2V0KGluIEZsb2F0NjRBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBs
b25nIG9mZnNldCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5
LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0g
dm9pZCBzZXQoKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50
MTZBcnJheS5pZGwKaW5kZXggZjZkMDg5ZWEzMzZmYzc1OWRjZTc3ZWVjM2ViMDg5YWJmNmE5NjFl
ZS4uOTc4MDc3MWNhNDc3NzU4ZDkxMmZlOThhZmU1MjQ5NTQ0NGFlODdlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwog
CiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEN1c3RvbUNv
bnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MSwKICAgICAgICAgTnVt
ZXJpY0luZGV4ZWRHZXR0ZXIsCkBAIC0zMywxNSArMzMsMTUgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAg
ICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQxNkFycmF5IDogQXJyYXlCdWZmZXJWaWV3
IHsKKyAgICBdIGludGVyZmFjZSBJbnQxNkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBJbnQxNkFy
cmF5IHN1YmFycmF5KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgc3RhcnQs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOwor
ICAgICAgICBJbnQxNkFycmF5IHN1YmFycmF5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGxvbmcgc3RhcnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0g
aW4gbG9uZyBlbmQpOwogCiAgICAgICAgIC8vIHZvaWQgc2V0KGluIEludDE2QXJyYXkgYXJyYXks
IFtPcHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNl
dChpbiBzZXF1ZW5jZTxsb25nPiBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9m
ZnNldCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCmluZGV4IGY5ODgzNWEyYzdjZTI5
OWYxOWFkMDcyM2ExMTE2NmFjMTVlYTAyN2IuLmI3ODVkZjE4YzE3ZjNkMjYyYmU2OTMyOTRmODU0
NDU4Yzg2NjQ3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMy
QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRs
CkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQ
YXJhbWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTUgKzM0
LDE1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAg
Q3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gSW50
MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBpbnRlcmZhY2UgSW50MzJBcnJheSA6
IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVS
X0VMRU1FTlQgPSA0OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKLSAgICAgICAgSW50MzJBcnJheSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAgICAgICAgSW50MzJBcnJheSBzdWJhcnJheShbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHN0YXJ0LCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAgICAvLyB2b2lk
IHNldChpbiBJbnQzMkFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRp
b25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNl
dCgpOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW50OEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5p
ZGwKaW5kZXggMDBmYWE0ZmMzOGM5YzZlOTgxMDQ5NjU2MDU3OTUxNmE4NTQwYmQ3MC4uMjM0ZmVk
MjVkMDc5NWM4MzQ0OGZiZmNjNzQzZGM5N2NkYTRlODUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9JbnQ4QXJyYXkuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0
bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwK
ICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVk
R2V0dGVyLApAQCAtMzQsMTUgKzM0LDE1IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0
YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVj
a0NvbnN0YW50cwotICAgIF0gSW50OEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIGlu
dGVyZmFjZSBJbnQ4QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNp
Z25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gMTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgICAgIEludDhBcnJheSBzdWJhcnJheShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOworICAgICAgICBJbnQ4QXJy
YXkgc3ViYXJyYXkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAog
ICAgICAgICAvLyB2b2lkIHNldChpbiBJbnQ4QXJyYXkgYXJyYXksIFtPcHRpb25hbF0gaW4gdW5z
aWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNldChpbiBzZXF1ZW5jZTxsb25n
PiBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAgICAgICAgIFtD
dXN0b21dIHZvaWQgc2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCmluZGV4IDkzZjBhMDFk
ODA3ODNhZTY2ODgwMWQxNWQ0ZDA4Mjk4YTVjOTk2ZDEuLjdjOTVlMjk5MDJjYzhiNTdkODU1MWE3
ODY3OTg3OTQ4NGI1MDA0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKICAqLwog
CiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVdFQkdMLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCiAg
ICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAg
IF0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcyB7CisgICAgXSBpbnRlcmZhY2UgT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlcyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBGUkFHTUVOVF9TSEFERVJf
REVSSVZBVElWRV9ISU5UX09FUyA9IDB4OEI4QjsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsCmluZGV4IDY1MzdmNDcwNzYx
YmY3YzQ4YTgwNDRiM2U3Yzg1ZDE1MTU2NDFlYTMuLjM1MGMzNzE5M2ExYjQ5MGY0MmI2Yzg5YzY2
ODkzYjY3Yjg5OTNiMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4
dHVyZUZsb2F0LmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICAg
ICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IKLSAgICBdIE9FU1RleHR1cmVGbG9hdCB7CisgICAgXSBpbnRlcmZhY2UgT0VTVGV4dHVy
ZUZsb2F0IHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbAppbmRleCBjM2QzNjY2NzZmNjRmOTEyOTMzOTVi
YzQxY2EzZjJhZjM3Mjc1ZTIyLi5kOTRlYmE5NTAzOWI3Y2NlOTFiZGQ2ZWZlODFkYWFiNmY5OTg4
Y2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJh
eU9iamVjdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJy
YXlPYmplY3QuaWRsCkBAIC0yNCwxNyArMjQsMTcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLCAKICAgICAg
ICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IsIAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBPRVNWZXJ0ZXhBcnJh
eU9iamVjdCB7CisgICAgXSBpbnRlcmZhY2UgT0VTVmVydGV4QXJyYXlPYmplY3QgewogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgVkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1Owog
ICAgICAgICAKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUyBjcmVhdGVWZXJ0ZXhBcnJheU9FUygpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkICAgICAgICAgZGVsZXRlVmVydGV4QXJyYXlPRVMoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBhcnJheU9iamVjdCk7Ci0g
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJvb2xlYW4gICAgICBpc1ZlcnRleEFycmF5T0VT
KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFdlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMgYXJyYXlPYmplY3QpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAg
ICAgYmluZFZlcnRleEFycmF5T0VTKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMgYXJyYXlPYmplY3QpIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgZGVsZXRlVmVydGV4
QXJyYXlPRVMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gV2ViR0xWZXJ0ZXhBcnJh
eU9iamVjdE9FUyBhcnJheU9iamVjdCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGJv
b2xlYW4gICAgICBpc1ZlcnRleEFycmF5T0VTKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgYXJyYXlPYmplY3QpOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSB2b2lkICAgICAgICAgYmluZFZlcnRleEFycmF5T0VTKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgYXJyYXlP
YmplY3QpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCmluZGV4IDc5ZTA1ZWZjNGViZjY1Nzk5N2E5
YjUzY2UwM2Y1ODJjMGVhOGJmYWYuLmE2YTJjNGE5YzI2NTgyZjAxOTNlYWMyNGMwNzlkYzQ1YTll
MzgwYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKQEAg
LTI1LDcgKzI1LDcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFt
ZXRlcnM9MSwKICAgICAgICAgTnVtZXJpY0luZGV4ZWRHZXR0ZXIsCkBAIC0zNCwxNCArMzQsMTQg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0
b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBVaW50MTZB
cnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBpbnRlcmZhY2UgVWludDE2QXJyYXkgOiBB
cnJheUJ1ZmZlclZpZXcgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9F
TEVNRU5UID0gMjsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7Ci0gICAgICAgIFVpbnQxNkFycmF5IHN1YmFycmF5KGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGxvbmcgc3RhcnQsIGluIFtPcHRpb25hbF0gbG9uZyBlbmQpOworICAgICAg
ICBVaW50MTZBcnJheSBzdWJhcnJheShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBs
b25nIHN0YXJ0LCBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAgICAvLyB2b2lkIHNl
dChpbiBVaW50MTZBcnJheSBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNl
dCk7CiAgICAgICAgIC8vIHZvaWQgc2V0KGluIHNlcXVlbmNlPGxvbmc+IGFycmF5LCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXQo
KTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5
LmlkbAppbmRleCA2N2U2MWIyOWZkOGU5ZGNkMTkwNTY4NTJhOTc5OTg2ZDdmYTk1MTZjLi44Mzdi
YWYwMWRjOTIyZDE5YTBiOTM3NGE3NDUxYzFkOTQ1MDc5MGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCkBAIC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9k
dWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1
Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJ
bmRleGVkR2V0dGVyLApAQCAtMzQsMTQgKzM0LDE0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9O
b3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewor
ICAgIF0gaW50ZXJmYWNlIFVpbnQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBVaW50MzJBcnJh
eSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHN0YXJ0LCBp
biBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAgICAgICAgVWludDMyQXJyYXkgc3ViYXJyYXkoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBzdGFydCwgW09wdGlvbmFsXSBpbiBs
b25nIGVuZCk7CiAKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gVWludDMyQXJyYXkgYXJyYXksIFtP
cHRpb25hbF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICAvLyB2b2lkIHNldChp
biBzZXF1ZW5jZTxsb25nPiBhcnJheSwgW09wdGlvbmFsXSBpbiB1bnNpZ25lZCBsb25nIG9mZnNl
dCk7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0KCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCmluZGV4IDI2MGEzMjczZTgyOGY1NzY4
NTk3ODBhMzU5ODU1YWEwYTI3OWRjZjguLjc5MGM1MzYxZDNiZWUyYmQwMDVjMWE1OWIyZmVhZWQx
ZTEyNGNiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJy
YXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCkBA
IC0yNSw3ICsyNSw3IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ29uc3RydWN0b3JQYXJh
bWV0ZXJzPTEsCiAgICAgICAgIE51bWVyaWNJbmRleGVkR2V0dGVyLApAQCAtMzQsMTQgKzM0LDE0
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3Vz
dG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDhB
cnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBpbnRlcmZhY2UgVWludDhBcnJheSA6IEFy
cmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VM
RU1FTlQgPSAxOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKLSAgICAgICAgVWludDhBcnJheSBzdWJhcnJheShpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBsb25nIHN0YXJ0LCBpbiBbT3B0aW9uYWxdIGxvbmcgZW5kKTsKKyAgICAgICAg
VWludDhBcnJheSBzdWJhcnJheShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25n
IHN0YXJ0LCBbT3B0aW9uYWxdIGluIGxvbmcgZW5kKTsKIAogICAgICAgICAvLyB2b2lkIHNldChp
biBVaW50OEFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsK
ICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRpb25hbF0g
aW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldCgpOwog
ICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWlu
dDhDbGFtcGVkQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhDbGFt
cGVkQXJyYXkuaWRsCmluZGV4IGNhZGQ2NjM2NDZiOTMzYmQ4MTk3MWIyNWQzMDAzYWE2ZmM0YjI0
MTIuLjUwNjMzZDBkZTJkNDQ5NWI0OTRjOTJkOGQ1NWJkZGNmNjE0MTc3YjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4Q2xhbXBlZEFycmF5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGwKQEAgLTI1LDcg
KzI1LDcgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9
MSwKICAgICAgICAgTnVtZXJpY0luZGV4ZWRHZXR0ZXIsCkBAIC0zNCwxNSArMzQsMTUgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pT
T2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBVaW50OENsYW1wZWRB
cnJheSA6IFVpbnQ4QXJyYXkgeworICAgIF0gaW50ZXJmYWNlIFVpbnQ4Q2xhbXBlZEFycmF5IDog
VWludDhBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1F
TlQgPSAxOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0
aDsKLSAgICAgICAgVWludDhDbGFtcGVkQXJyYXkgc3ViYXJyYXkoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gbG9uZyBzdGFydCwgaW4gW09wdGlvbmFsXSBsb25nIGVuZCk7CisgICAg
ICAgIFVpbnQ4Q2xhbXBlZEFycmF5IHN1YmFycmF5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGxvbmcgc3RhcnQsIFtPcHRpb25hbF0gaW4gbG9uZyBlbmQpOwogCiAgICAgICAgIC8v
IEZJWE1FOiBNaXNzaW5nIG90aGVyIHNldHRlcnMhCiAgICAgICAgIC8vIHZvaWQgc2V0KGluIFVp
bnQ4Q2xhbXBlZEFycmF5IGFycmF5LCBbT3B0aW9uYWxdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0
KTsKICAgICAgICAgLy8gdm9pZCBzZXQoaW4gc2VxdWVuY2U8bG9uZz4gYXJyYXksIFtPcHRpb25h
bF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldCgp
OwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xBY3RpdmVJbmZvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0
aXZlSW5mby5pZGwKaW5kZXggMjBhYjhhZjkwM2ExMWMwM2YwYmZjOTYxYWU5OGJlN2M5NWM3YmRk
ZS4uYzU0ZjJiMWE2NDEzODljYzY1YjlhNmZlZTVkZmZmNTIzZTI3NDEzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCkBAIC0yNSwxMiArMjUs
MTIgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0
aW9uYWw9V0VCR0wsCi0gICAgXSBXZWJHTEFjdGl2ZUluZm8geworICAgIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9V0VCR0wKKyAgICBdIGludGVyZmFjZSBXZWJHTEFjdGl2ZUluZm8gewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgaW50IHNpemU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBpbnQgdHlwZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBuYW1lOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TEJ1ZmZlci5pZGwKaW5kZXggMzEyYjAwOTExZGQwNWQ1MDY0ZDc3MDNmYmZkYmFiMTI0NGJlNjY1
Yy4uMzhhODY5NmQ4YzExZDU3YWE2YmM2NGEzOTM0Y2RiN2Y3ZGJkZjc3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbApAQCAtMjQsOCArMjQsOCBAQAogICov
CiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1X
RUJHTCwKLSAgICBdIFdlYkdMQnVmZmVyIHsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPVdF
QkdMCisgICAgXSBpbnRlcmZhY2UgV2ViR0xCdWZmZXIgewogICAgIH07Ci19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsCmluZGV4IDdmZGU1YmJhOTA4NjJkMjBkNmQ2ZGM0ZjdlOTViMTFjOGIxOWU1ZmIu
LjRkOWM0YTBjZjYxZDJhNzM1MDM2MmVmZjVhNTVjYTM4MzY0M2VlMTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5pZGwKQEAgLTI0LDE2ICsyNCwxNiBAQAogICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAgICAgICAgIEpTR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yLAog
ICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQyB7CisgICAgXSBpbnRlcmZhY2UgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMgewogICAg
ICAgICAvKiBDb21wcmVzc2VkIFRleHR1cmUgRm9ybWF0cyAqLwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbnQgQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCAgICAgICAgPSAweDgzRjA7CiAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVCAg
ICAgICA9IDB4ODNGMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdC
QV9TM1RDX0RYVDNfRVhUICAgICAgID0gMHg4M0YyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBp
bnQgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQgICAgICAgPSAweDgzRjM7CiAgICAgfTsK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRl
eHRBdHRyaWJ1dGVzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuaWRsCmluZGV4IDU2ZGExYzYxZWVkMjlhNWY4YzNkZThhMGM5YzMxZDFiM2Q2
YTIzMzMuLmRlMGFhODdlZWMzYjFhYzc1ZDExMGU3YTVmYmQ2ODQ2MTdhZjQ4MzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAogICAgICAgICBPbWl0Q29u
c3RydWN0b3IKLSAgICBdIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgeworICAgIF0gaW50ZXJmYWNl
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgewogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhbHBo
YTsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gZGVwdGg7CiAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuIHN0ZW5jaWw7CkBAIC0zNiw0ICszNiw0IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gcHJlbXVsdGlwbGllZEFscGhhOwogICAgICAgICBhdHRyaWJ1dGUg
Ym9vbGVhbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwKaW5kZXggMzczNWYx
MjQ1ODI5MWZhOGVkNGEyZGJjNDZiYzU2YzE2YjJhMmNlNC4uZDVmNDM5ZDA5YTkwMmE4ZjE2YjY4
NzliOTVkYWQ1MzhmNWI5Y2FmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEV2ZW50LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBodG1s
IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwK
ICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1FdmVudAotICAgIF0gV2ViR0xDb250ZXh0RXZl
bnQgOiBFdmVudCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIERPTVN0cmluZyBzdGF0dXNNZXNzYWdlOworICAgIF0gaW50ZXJmYWNl
IFdlYkdMQ29udGV4dEV2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2ZW50
Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVzTWVzc2FnZTsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAppbmRleCBiMzA3YTE0OTgzNWFlZDEyMDZmYTJjZjY0
ZDdiM2Y0YzEyOTMzMjY0Li5jNGY0MzJlOWNhN2JiNjNiZWIwODEwY2M0ZDA5NDFlZWRkZDA4YjBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmlkbApAQCAtMjQsMTMgKzI0LDEzIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICAg
ICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFdlYkdMRGVidWdSZW5k
ZXJlckluZm8geworICAgIF0gaW50ZXJmYWNlIFdlYkdMRGVidWdSZW5kZXJlckluZm8gewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5MjQ1Owog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDky
NDY7CiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTERlYnVnU2hhZGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5pZGwKaW5kZXggZWUzMzBiNmFlNGUzNTQ5MWVjYWE2OGIwMjY1N2IzNTM4
ZjQ0OTc4Ni4uYTBjMTZkZDdjNWU2NGJmYjk0ZTk1NDg5OGYxYzA5OGJjZTVjYjNkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbApAQCAt
MjQsMTEgKzI0LDExIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVh
Y2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFdlYkdM
RGVidWdTaGFkZXJzIHsKKyAgICBdIGludGVyZmFjZSBXZWJHTERlYnVnU2hhZGVycyB7CiAgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0g
RE9NU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVy
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmlkbAppbmRleCA1NmVmNTM3YzA1NjZh
NDcwODljMjFkZTI5M2JiOGMyMTZhMDhmZjhjLi40NTI4NjYyNTE0MGNlY2Y1NmVhMzQ4NDYyOTdm
ODgzNmY2MjMxYTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlcHRoVGV4dHVyZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xE
ZXB0aFRleHR1cmUuaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAogICAg
ICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gV2ViR0xEZXB0aFRl
eHR1cmUgeworICAgIF0gaW50ZXJmYWNlIFdlYkdMRGVwdGhUZXh0dXJlIHsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgaW50IFVOU0lHTkVEX0lOVF8yNF84X1dFQkdMID0gMHg4NEZBOwogICAgIH07
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVy
LmlkbAppbmRleCBkMGNhYTkxN2ZkODRmZjNlODNhNzBlYjNmYTBlMWNjZjUwOTcxZmUzLi5kN2E4
YzU1MmEwZGEyNDY1OTEzMGM1OTcwYTBlODlmMjgxNjEzMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbApAQCAtMjQsOCArMjQsOCBAQAog
ICovCiAKIG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9V0VCR0wKLSAgICBdIFdlYkdMRnJhbWVidWZmZXIgeworICAgIF0gaW50ZXJmYWNl
IFdlYkdMRnJhbWVidWZmZXIgewogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmlkbAppbmRleCAzOTBkYTI2Mzg5ZDcxMjI4NTI2
MmMzNmYwN2RhZjBiNzQwMWQ4NjFiLi4xYmFhYjI0MDAxMzEzYmEwZTNlNmY0YzkxN2MyZDY2Mjg3
YzBhOTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VD
b250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250
ZXh0LmlkbApAQCAtMjQsMTIgKzI0LDEyIEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKICAgICAgICAgSlNH
ZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IK
LSAgICBdIFdlYkdMTG9zZUNvbnRleHQgeworICAgIF0gaW50ZXJmYWNlIFdlYkdMTG9zZUNvbnRl
eHQgewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGxvc2VDb250ZXh0KCk7CiAg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJv
Z3JhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsCmlu
ZGV4IDMyNmYxYzM3NjZiMDg5MTdkYTllZWZiMmFlYzY3MTg4MjBmMzM3NmYuLjQzZjM2YjA5ZmY0
OGVhMTQzYmVkNTQ4MWVjNWMxMDRhNWM0ZDIxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xQcm9ncmFtLmlkbApAQCAtMjQsOCArMjQsOCBAQAogICovCiAKIG1vZHVsZSBo
dG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wK
LSAgICBdIFdlYkdMUHJvZ3JhbSB7CisgICAgXSBpbnRlcmZhY2UgV2ViR0xQcm9ncmFtIHsKICAg
ICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyYnVmZmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
YnVmZmVyLmlkbAppbmRleCBhNjUxOGVhMmU5YjQxYjhiYjI1ODRjNWE4M2M2NzA1YTI0NjVhMjc5
Li5hYzdjZDEzOGZhMDM3MTJlNDQ0NzNlZmZmYmUwODhmN2IyYTI0MjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCkBAIC0yNCw4ICsy
NCw4IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1XRUJHTAotICAgIF0gV2ViR0xSZW5kZXJidWZmZXIgeworICAgIF0g
aW50ZXJmYWNlIFdlYkdMUmVuZGVyYnVmZmVyIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsCmluZGV4
IDliZjZmZjU0NDA0YjE2NDgwN2E2NzY3ZTU4MzdiZjg0NjI0MzE0YTUuLmZjYmE3MjhlZWY2YTg4
MDE3ZDQ1YTRjNjgzMTRhMTI1ZWFjYTAxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmlkbApAQCAtMjUsMTEgKzI1LDExIEBA
CiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1XRUJHTCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIERv
Tm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFdlYkdMUmVuZGVyaW5nQ29udGV4dCA6IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgeworICAgIF0gaW50ZXJmYWNlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCA6
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogCiAgICAgICAgIC8qIENsZWFyQnVmZmVyTWFzayAq
LwogICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgREVQVEhfQlVGRkVSX0JJVCAgICAgICAgICAg
ICAgID0gMHgwMDAwMDEwMDsKQEAgLTY2NSw1ICs2NjUsNSBAQCBtb2R1bGUgaHRtbCB7CiAKICAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCAgICAgICAgIHZpZXdwb3J0KGluIGxvbmcg
eCwgaW4gbG9uZyB5LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCk7CiAgICAgfTsKLX0K
K307CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVy
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyLmlkbAppbmRleCAy
YWViNzA0ZDYzNmM0NmYwNjM1M2ZiMDJiYjQ1MmZjZmE5Mzg2YTEzLi45MWIxY2Y5MDViZTc3ZDdm
YTBmOTEzMzJlNmM0MjNiNDU1MTcwMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFNoYWRlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xTaGFkZXIuaWRsCkBAIC0yNCw4ICsyNCw4IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTAotICAgIF0g
V2ViR0xTaGFkZXIgeworICAgIF0gaW50ZXJmYWNlIFdlYkdMU2hhZGVyIHsKICAgICB9OwotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0LmlkbAppbmRleCA3Y2ZiODBlNmU0Mjk3YTY1NmI4NjlhNGFlZmI5NmRi
ZDIxYWU2NGQ3Li5lNjMzYWE3OThmNGYyNmU0MDlmOGU2MmI5YjEzNDcwYWQ4NzBhYjJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaWRsCkBAIC0yNiwxMiArMjYsMTIgQEAKIAogbW9kdWxlIGh0bWwgewogCi0g
ICAgaW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCi0gICAgXSBXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1XRUJHTAor
ICAgIF0gaW50ZXJmYWNlIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0IHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGludCByYW5nZU1pbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGludCByYW5nZU1heDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBwcmVjaXNpb247
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVGV4dHVyZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFRleHR1
cmUuaWRsCmluZGV4IDhlNzJkZDM0ZDVmNzFlMDZlMWM4ZDljNjZlMWE2ZjQ3NmYyNzQzMWYuLjk4
NTBkMTgxZDVlYzI2OWU4N2RiZTViYTM4NGIyOGFlOTNkMDkzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbApAQCAtMjQsOCArMjQsOCBAQAogICovCiAK
IG1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9V0VCR0wKLSAgICBdIFdlYkdMVGV4dHVyZSB7CisgICAgXSBpbnRlcmZhY2UgV2ViR0xUZXh0
dXJlIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMVW5pZm9ybUxvY2F0aW9uLmlkbAppbmRleCBlYjMxNjdjZDk5MmQ0M2IwNDg4MDBiNDll
OGMwYWFmMWZkMTYyMDRlLi5jN2Y0ZjQwOTgxZjFhZTMyYzViMGE4ZDk2NzI4NjFiYjhhOGE3NjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9j
YXRpb24uaWRsCkBAIC0yNSw4ICsyNSw4IEBACiAgKi8KIAogbW9kdWxlIGh0bWwgewotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1XRUJHTAotICAgIF0gV2ViR0xV
bmlmb3JtTG9jYXRpb24geworICAgIF0gaW50ZXJmYWNlIFdlYkdMVW5pZm9ybUxvY2F0aW9uIHsK
ICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKaW5kZXggMGFiYmUwNzQ2YTU3MmQwNzY1ZDIx
NDYyMTVlMTQwODQyMWVlMjU1Yi4uZmIzN2ExMDAwYjdjNjE5YjU3ZmRlZWU3Yzg1YWU4MGQ2YWY0
MmY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKQEAgLTI0LDggKzI0LDggQEAKICAqLwogCiBtb2R1bGUg
aHRtbCB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdM
Ci0gICAgXSBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTIHsKKyAgICBdIGludGVyZmFjZSBXZWJH
TFZlcnRleEFycmF5T2JqZWN0T0VTIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaWRsCmluZGV4IGM5MjhkNDQ5NDAz
MTM4ZWI3ZDMyNDRhMDdmMmVjMDk1OTBmOGJlYjAuLjZlYjY3OGM0NDNlNzk3OWIxZTg0YmYxNTI3
MGFmMTI3N2JiN2VjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAgKi8KIAogbW9kdWxlIGh0
bWwgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TSEFET1df
RE9NLAogICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NCi0gICAgXSBIVE1MQ29u
dGVudEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIHNlbGVjdDsKKyAgICBdIGludGVyZmFjZSBIVE1MQ29udGVudEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlbGVj
dDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxTaGFkb3dFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxT
aGFkb3dFbGVtZW50LmlkbAppbmRleCA5NGZhY2I3YmVhNDRiZThiNzAzMDU4NTA1YjBlZTc0Njg3
ZjRmZTM0Li5lMGM0NTM5ZmFjOGQxMzJmYzBmOGU0OTNlZTgzZTQ1NjIyYzI3MWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MU2hhZG93RWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTFNoYWRvd0VsZW1lbnQuaWRsCkBAIC0z
MCwxMCArMzAsMTAgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVNIQURPV19ET00sCiAgICAgICAgIFY4RW5hYmxlZEF0UnVu
dGltZT1zaGFkb3dET00KLSAgICBdIEhUTUxTaGFkb3dFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgIF0gaW50ZXJmYWNlIEhUTUxTaGFkb3dFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
ay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKaW5kZXggODQ1
YTgwYzAxOTRiYmI1MDU1OGRhODIyOTNlNDY5YjFkZTI1YWU1YS4uNmZmMjFkZGM4NjY4MmQyODQz
ODcyNzk5ODkzYmZkYzJmNGY5MDg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmlkbApAQCAtMjUsMTMgKzI1LDEzIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICAgICAg
VjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2ssCiAgICAgICAgIEV2ZW50VGFyZ2V0
LAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgSlNDdXN0b21Jc1JlYWNo
YWJsZQotICAgIF0gVGV4dFRyYWNrIHsKKyAgICBdIGludGVyZmFjZSBUZXh0VHJhY2sgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgbGFuZ3VhZ2U7CkBAIC00MCw3ICs0MCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSElEREVOID0gMTsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgU0hPV0lORyA9IDI7CiAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBt
b2RlCi0gICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICAg
ICAgc2V0cmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBUZXh0VHJhY2tDdWVMaXN0IGN1ZXM7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBUZXh0
VHJhY2tDdWVMaXN0IGFjdGl2ZUN1ZXM7CkBAIC01NCwxMSArNTQsMTEgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVu
dExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAg
ICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJv
b2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVu
dCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07Ci19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRsCmluZGV4IGQ1NTI1
MjVhNDIxMzA4ZGE2YzdlYjY0ZmQ3NTNlOTEyNjdjNmY3OWMuLjdiZTZiNzU0YjE4ZDQxOGQ5OWZk
YmU2MWRmZjkwODY4OTcwOTJlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrQ3VlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5pZGwKQEAgLTI1LDE2ICsyNSwxNiBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssCiAgICAg
ICAgIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRlb1RyYWNrLAogICAgICAgICBKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QsCi0gICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBpZCwg
aW4gZG91YmxlIHN0YXJ0VGltZSwgaW4gZG91YmxlIGVuZFRpbWUsIGluIERPTVN0cmluZyB0ZXh0
LCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgc2V0dGluZ3MsIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gcGF1c2VPbkV4aXQpLAorICAg
ICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgaWQsIGluIGRvdWJsZSBzdGFydFRpbWUsIGlu
IGRvdWJsZSBlbmRUaW1lLCBpbiBET01TdHJpbmcgdGV4dCwgW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHNldHRpbmdzLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBib29sZWFuIHBhdXNlT25FeGl0KSwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgICAgICBKU0N1c3RvbUlzUmVhY2hhYmxlCi0gICAgXSBUZXh0VHJhY2tD
dWUgeworICAgIF0gaW50ZXJmYWNlIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBUZXh0VHJhY2sgdHJhY2s7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBp
ZDsKQEAgLTQzLDE2ICs0MywxNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuIHBhdXNlT25FeGl0OwogCiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmVydGlj
YWwKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAg
ICBzZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHNu
YXBUb0xpbmVzOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBsaW5lCi0gICAgICAgICAgICBzZXR0
ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzIChET01FeGNl
cHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBwb3NpdGlvbgotICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2l6ZQotICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBhbGlnbgotICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAgICAgICAgIERv
Y3VtZW50RnJhZ21lbnQgZ2V0Q3VlQXNIVE1MKCk7CkBAIC02MywxMiArNjMsMTIgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgdm9pZCBh
ZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwog
ICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
dXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxd
IGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChp
biBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVMaXN0
LmlkbAppbmRleCAzODBlNTlhMzE3YTA3OGQ3NmE0ZWEzMjEwYzZhOWNlZmJmN2M5MGJiLi44ZDUy
MWQ4ZDYwZmM3OTljOTU4NmQ0ODJkMzU4OTQ4NWM0OTU4ZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlTGlzdC5pZGwKQEAgLTI1LDE0ICsyNSwxNCBAQAog
CiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9VklERU9fVFJBQ0ssCiAgICAgICAgIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRl
b1RyYWNrLAogICAgICAgICBJbmRleGVkR2V0dGVyCi0gICAgXSBUZXh0VHJhY2tDdWVMaXN0IHsK
KyAgICBdIGludGVyZmFjZSBUZXh0VHJhY2tDdWVMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBUZXh0VHJhY2tDdWUgaXRlbShp
biB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICAgICAgVGV4dFRyYWNrQ3VlIGdldEN1ZUJ5SWQo
aW4gRE9NU3RyaW5nIGlkKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrTGlzdC5pZGwKaW5kZXggYWQ0ZTg2MjFjNjg0ODg2NjM3Yzg4OTIyMjJm
OWU4YzY0MTViNzgzYS4uYjJlNTQ5YzNkZDM4ZTE4ZmQ0ZmM4YjgxNTE1NjBiNGJhNjhjNjRhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCkBAIC0yNSw3
ICsyNSw3IEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICAgICAgVjhFbmFibGVkQXRSdW50aW1l
PXdlYmtpdFZpZGVvVHJhY2ssCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCkBAIC0zMyw3ICszMyw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAg
IEpTQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgICAgIFY4R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBs
T3duZXJSb290Ci0gICAgXSBUZXh0VHJhY2tMaXN0IHsKKyAgICBdIGludGVyZmFjZSBUZXh0VHJh
Y2tMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OwogICAgICAgICBUZXh0VHJhY2sgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIApAQCAt
NDEsMTIgKzQxLDEyIEBAIG1vZHVsZSBodG1sIHsKIAogICAgICAgICB2b2lkIGFkZEV2ZW50TGlz
dGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lk
IHJlbW92ZUV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVz
ZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQog
ICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2ZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tFdmVudC5pZGwKaW5kZXggYjQ3NWFkNDFhYjRhYmE5
YjFjNDdhMzY2YmQ3Y2MwNWZhZjZhYWYxMC4uNThlZWEzOTRmYWU5ZmUwNjIzNmIwZDcyOWJhYWM1
NTVmMzA1MzVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0V2
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNrRXZlbnQuaWRsCkBA
IC0yNSwxMiArMjUsMTIgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgICAgICBWOEVuYWJsZWRB
dFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFjaywKICAgICAgICAgQ29uc3RydWN0b3JUZW1wbGF0ZT1F
dmVudAotICAgIF0gVHJhY2tFdmVudCA6IEV2ZW50IHsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3RvciwgQ3VzdG9tR2V0dGVyXSBvYmplY3Qg
dHJhY2s7CisgICAgXSBpbnRlcmZhY2UgVHJhY2tFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgW0lu
aXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yLCBDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBvYmplY3QgdHJhY2s7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKaW5kZXggNTRmMDgwZjJjM2FhYTRmM2Mz
MjZkMGRhNGIyNjc4ZGMyNjE1Zjg0OC4uNThkYmRkZGYxNWQ4Mjc5MTMwNjhmODUyZWFjNTcxMWE3
ZjMxOGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5pZGwKQEAgLTMxLDkgKzMxLDkgQEAKICAqLwogCiBtb2R1bGUgY29yZSB7Ci0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOU1BFQ1RPUgotICAgIF0gSW5q
ZWN0ZWRTY3JpcHRIb3N0IHsKKyAgICBdIGludGVyZmFjZSBJbmplY3RlZFNjcmlwdEhvc3Qgewog
ICAgICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7CiAKICAgICAgICAgdm9pZCBjb3B5
VGV4dChpbiBET01TdHJpbmcgdGV4dCk7CkBAIC01NCw0ICs1NCw0IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgbG9uZyBuZXh0V29ya2VySWQoKTsKICNlbmRpZgogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApp
bmRleCAyYTIwMzcwY2U5YjNmZTFlNGI0YTYyMmQ4YjkzNzAwOGQ1MjYzNjExLi41NTM5Y2UzZWYz
ZmNmZDk1MzdiYWNmYjM3NmY5YTBiM2IzZWRmODc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMzEsOSArMzEsOSBAQAog
ICovCiAKIG1vZHVsZSBjb3JlIHsKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9SU5TUEVDVE9SCi0gICAgXSBJbnNwZWN0b3JGcm9udGVuZEhvc3QgeworICAgIF0g
aW50ZXJmYWNlIEluc3BlY3RvckZyb250ZW5kSG9zdCB7CiAgICAgICAgIHZvaWQgbG9hZGVkKCk7
CiAgICAgICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKICAgICAgICAgdm9pZCBicmluZ1RvRnJvbnQo
KTsKQEAgLTY3LDQgKzY3LDQgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAKICAgICAgICAgRE9N
U3RyaW5nIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoaW4gRE9NU3RyaW5nIHVybCk7CiAgICAg
fTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlw
dENhbGxGcmFtZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSmF2YVNjcmlwdENhbGxG
cmFtZS5pZGwKaW5kZXggZDM3M2Q1ZDgyMWQ1ZjY0NmZiM2I4OWZmNTNkYzM1MjkwM2M3MjQxOC4u
MTNjYjRjNDM5MDQzOWJlZTE1MmMyZmY4YWExMDAxOWJjMDdlZjA0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0phdmFTY3JpcHRDYWxsRnJhbWUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9KYXZhU2NyaXB0Q2FsbEZyYW1lLmlkbApAQCAtMjUsMTEgKzI1
LDExIEBACiAKIG1vZHVsZSBpbnNwZWN0b3IgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPUpBVkFTQ1JJUFRfREVCVUdHRVIsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gSmF2YVNjcmlwdENh
bGxGcmFtZSB7CisgICAgXSBpbnRlcmZhY2UgSmF2YVNjcmlwdENhbGxGcmFtZSB7CiAKICAgICAg
ICAgLy8gU2NvcGUgdHlwZQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBHTE9CQUxfU0NP
UEUgPSAwOwpAQCAtNDUsMTEgKzQ1LDExIEBAIG1vZHVsZSBpbnNwZWN0b3IgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzb3VyY2VJRDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgbGluZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgY29sdW1uOwot
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gQXJyYXkgc2NvcGVDaGFp
bjsKKyAgICAgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIEFycmF5IHNjb3Bl
Q2hhaW47CiAgICAgICAgIFtDdXN0b21dIHVuc2lnbmVkIHNob3J0IHNjb3BlVHlwZShpbiBpbnQg
c2NvcGVJbmRleCk7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBP
YmplY3QgdGhpc09iamVjdDsKKyAgICAgICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmli
dXRlIE9iamVjdCB0aGlzT2JqZWN0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGZ1bmN0aW9uTmFtZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0
ZXJdIERPTVN0cmluZyB0eXBlOworICAgICAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHR5cGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbAppbmRleCBlYmJlZTJlOGU2YjVmMWQ1NGVhZGNiMTdj
ZGYyMDQ2MjAyODhhYWNhLi5mNDU0NjdlYjJjOWE1ODBlOGU4MTdhMjJlMmU4NTRlMTZhZGY1Nzg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCkBAIC0yNiwx
NCArMjYsMTQgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPUpBVkFTQ1JJUFRfREVCVUdHRVIsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvciwKICAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0Ci0gICAgXSBTY3JpcHRQcm9maWxl
IHsKKyAgICBdIGludGVyZmFjZSBTY3JpcHRQcm9maWxlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgdWlkOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5v
ZGUgaGVhZDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlTm9kZS5pZGwKaW5kZXggYTE0Nzk4YzA1NTFkMzQ5ZTZjZjk5NzM3NTliYTg2
ZDNhOGU3NmUwMC4uM2FlMGNhNDAyN2VhMzhkMTE1YmUxODQ0MDQzYjhlZDBlYjVlZTRlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCkBAIC0y
NiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPUpBVkFTQ1JJUFRfREVCVUdHRVIsCiAgICAgICAgIE9taXRD
b25zdHJ1Y3RvciwKICAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0Ci0gICAgXSBTY3JpcHRQcm9m
aWxlTm9kZSB7CisgICAgXSBpbnRlcmZhY2UgU2NyaXB0UHJvZmlsZU5vZGUgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxpbmVOdW1iZXI7CkBAIC0zOSw3ICszOSw3IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDYWxsczsK
ICAgICAgICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZU5vZGU+IGNoaWxkcmVuKCk7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZpc2libGU7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSB1bnNpZ25lZCBsb25nIGNhbGxVSUQ7CisgICAgICAgIFtD
dXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNhbGxVSUQ7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAppbmRleCBhMzVmYTQ3YmJhMzhhZWJkNzk5ZDUxNzg4
YTFhNmM5NmY1NzIwMjQ4Li5jODc4ZGRjOTAxMTYwOTg3MjBkY2MxMGZjOWZiYmIyMjkzY2NjNDM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRp
b25DYWNoZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuaWRsCkBAIC0yNSwxMiArMjUsMTIgQEAKICAKIG1vZHVsZSBvZmZsaW5lIHsK
ICAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAg
IE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cywKICAgICAgICAg
SlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZQotICAgIF0gRE9NQXBwbGljYXRpb25DYWNo
ZSB7CisgICAgXSBpbnRlcmZhY2UgRE9NQXBwbGljYXRpb25DYWNoZSB7CiAgICAgICAgIC8vIHVw
ZGF0ZSBzdGF0dXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVU5DQUNIRUQgPSAwOwog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBJRExFID0gMTsKQEAgLTU5LDEyICs1OSwxMiBA
QCBtb2R1bGUgb2ZmbGluZSB7CiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAg
ICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNl
Q2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcg
dHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVy
IGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNw
YXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlv
bik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWJz
dHJhY3RWaWV3LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbAppbmRl
eCA2ZDgyMzJiNTA1Yzk1YmE0NjI4MGUwNWMxZWYxNjgxMGJjMzkwMTFkLi5lZGU0ZWEzZTU5N2M3
NmE3ZjU4MDAxZWIxZmZiNjg2YjFlYzg4OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Fic3RyYWN0Vmlldy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BYnN0cmFjdFZp
ZXcuaWRsCkBAIC0yNywxMiArMjcsMTIgQEAKIG1vZHVsZSB2aWV3cyB7CiAKICAgICAvLyBJbnRy
b2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBP
YmpDQ3VzdG9tSW1wbGVtZW50YXRpb24sCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0g
QWJzdHJhY3RWaWV3IHsKKyAgICBdIGludGVyZmFjZSBBYnN0cmFjdFZpZXcgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgZG9jdW1lbnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTdHlsZU1lZGlhIHN0eWxlTWVkaWE7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0JhckluZm8uaWRsCmluZGV4IDExYTk3YzcwZWNhMjc5NDBmZTY1MTBjMzY1NzhiZTcwMTQ4MmUz
ZTQuLjQzNGExZGNlNGFmY2FkYTgyZDA0ODIxYzAyYmFmOTA4NzRhMDFhY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQmFySW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9CYXJJbmZvLmlkbApAQCAtMjgsMTEgKzI4LDExIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBs
RnJhbWUsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gQmFySW5mbyB7CisgICAgXSBp
bnRlcmZhY2UgQmFySW5mbyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZp
c2libGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29uc29sZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCmluZGV4IDU2MjIx
ZDY0YzhiZDJkMGQ2ZmM2ZWY0YzdmYjRiN2E1N2YxYzljMWIuLjNjYzJlYWI4OWUxMWQxN2ViZDlh
MDIwZGM3ZTM3ZGE5ZGIwNTgyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbApAQCAtMjgsMTAg
KzI4LDEwIEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvcgotICAgIF0gQ29uc29sZSB7CisgICAgXSBpbnRlcmZhY2UgQ29uc29sZSB7CiAKICAg
ICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgZGVidWcoKTsK
ICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2tdIHZvaWQgZXJyb3Io
KTsKQEAgLTU0LDE0ICs1NCwxNCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgW0N1c3RvbV0g
dm9pZCBwcm9maWxlRW5kKGluIERPTVN0cmluZyB0aXRsZSk7CiAjZW5kaWYKIAotICAgICAgICB2
b2lkIHRpbWUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVs
bFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0aXRsZSk7Ci0g
ICAgICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIHRpbWVFbmQo
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10g
RE9NU3RyaW5nIHRpdGxlKTsKKyAgICAgICAgdm9pZCB0aW1lKFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBET01TdHJpbmcgdGl0bGUpOworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1l
bnRzfENhbGxTdGFja10gdm9pZCB0aW1lRW5kKFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVh
dFVuZGVmaW5lZEFzPU51bGxTdHJpbmddIGluIERPTVN0cmluZyB0aXRsZSk7CiAgICAgICAgIFtD
YWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrXSB2b2lkIHRpbWVTdGFtcCgpOwogICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBncm91cCgpOwog
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja10gdm9pZCBncm91cENv
bGxhcHNlZCgpOwogICAgICAgICB2b2lkIGdyb3VwRW5kKCk7CiAKLSAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtWOEN1c3RvbUdldHRlcl0gTWVtb3J5SW5mbyBtZW1vcnk7CisgICAgICAgIFtW
OEN1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIE1lbW9yeUluZm8gbWVtb3J5OwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaWRsCmluZGV4IGY4M2Q4N2U1
NTM1OWE3MGU1NzU0ZWRiODI1NDk3NTc3NGE1ZDg2MWUuLmViNjIwYjIxNTRkOGJhNWJiOTlkMGNi
MjE0MWY0ZTI2NDU5ZWM2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRp
bmF0ZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaWRsCkBAIC0y
NSwxNSArMjUsMTUgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gQ29vcmRpbmF0ZXMgeworICAgIF0gaW50
ZXJmYWNlIENvb3JkaW5hdGVzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBs
YXRpdHVkZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBsb25naXR1ZGU7Ci0g
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tXSBkb3VibGUgYWx0aXR1ZGU7CisgICAg
ICAgIFtDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgYWx0aXR1ZGU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgYWNjdXJhY3k7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ3VzdG9tXSBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDdXN0b21dIGRvdWJsZSBoZWFkaW5nOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0N1c3RvbV0gZG91YmxlIHNwZWVkOworICAgICAgICBbQ3VzdG9tXSByZWFkb25s
eSBhdHRyaWJ1dGUgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3k7CisgICAgICAgIFtDdXN0b21dIHJl
YWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgaGVhZGluZzsKKyAgICAgICAgW0N1c3RvbV0gcmVhZG9u
bHkgYXR0cmlidXRlIGRvdWJsZSBzcGVlZDsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRv
LmlkbAppbmRleCA4MDdiNjNmODFkYTM2MThiMzY2YjUzM2I4NmY1MDU2NmY3Mzg2YjczLi5jZGRj
ZDE2YjVkNzhmZDljOTYwMTllMTE1M2UyN2M1YmE1ZGNlMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
aWRsCkBAIC0yOCwxMCArMjgsMTAgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZh
Y2UgWworICAgIFsKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBDcnlwdG8geworICAg
IF0gaW50ZXJmYWNlIENyeXB0byB7CiAgICAgICAgIHZvaWQgZ2V0UmFuZG9tVmFsdWVzKGluIEFy
cmF5QnVmZmVyVmlldyBhcnJheSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAppbmRleCAxZjdkM2RhM2Y4OGEyZjI1
YWQwMDU0NTcwOWM0ZGQ3M2NiN2YxZGMzLi4xOTM1ZDY2ZDZlZDExZWRjMTA1ZTFmYWNhZjk3MzM1
ZWIwYWNjYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCkBAIC0zMSwxMCAr
MzEsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAvLyBUaGlzIGlzIGJhc2VkIG9mZiBvZiBN
b3ppbGxhJ3MgU2VsZWN0aW9uIGludGVyZmFjZQogICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1v
emlsbGEub3JnL0VuL0RPTS9TZWxlY3Rpb24KLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZSwKICAgICAgICAgSW50ZXJmYWNlTmFt
ZT1TZWxlY3Rpb24KLSAgICBdIERPTVNlbGVjdGlvbiB7CisgICAgXSBpbnRlcmZhY2UgRE9NU2Vs
ZWN0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgYW5jaG9yTm9kZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgYW5jaG9yT2Zmc2V0OwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgTm9kZSBmb2N1c05vZGU7CkBAIC00Myw4ICs0Myw4IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0NvbGxhcHNlZDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgcmFuZ2VDb3VudDsKIAotICAgICAgICB2
b2lkIGNvbGxhcHNlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgbm9kZSwg
Ci0gICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
bG9uZyBpbmRleCkKKyAgICAgICAgdm9pZCBjb2xsYXBzZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaW5kZXgpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBjb2xsYXBzZVRvRW5kKCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwpAQCAtNTIsMTkgKzUyLDE5IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBkZWxldGVG
cm9tRG9jdW1lbnQoKTsKLSAgICAgICAgYm9vbGVhbiBjb250YWluc05vZGUoaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gTm9kZSBub2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBhbGxvd1BhcnRp
YWwpOwotICAgICAgICB2b2lkIHNlbGVjdEFsbENoaWxkcmVuKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIE5vZGUgbm9kZSkKKyAgICAgICAgYm9vbGVhbiBjb250YWluc05vZGUoW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBub2RlLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBh
bGxvd1BhcnRpYWwpOworICAgICAgICB2b2lkIHNlbGVjdEFsbENoaWxkcmVuKFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgbm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgZXh0ZW5kKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIE5vZGUgbm9kZSwgCi0gICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgb2Zmc2V0KQorICAgICAgICB2b2lkIGV4dGVuZChbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIG9mZnNldCkKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFJhbmdlIGdldFJhbmdlQXQo
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBpbmRleCkKKyAgICAgICAgUmFu
Z2UgZ2V0UmFuZ2VBdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIGluZGV4
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVtb3Zl
QWxsUmFuZ2VzKCk7Ci0gICAgICAgIHZvaWQgYWRkUmFuZ2UoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gUmFuZ2UgcmFuZ2UpOworICAgICAgICB2b2lkIGFkZFJhbmdlKFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFJhbmdlIHJhbmdlKTsKIAogI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICBbTm90RW51
bWVyYWJsZV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CkBAIC04MCwxNiArODAsMTYgQEAgbW9kdWxl
IHdpbmRvdyB7CiAgICAgICAgIC8vIElFJ3MgdHlwZSBhY2Nlc3NvciByZXR1cm5zICJub25lIiwg
InRleHQiIGFuZCAiY29udHJvbCIKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB0eXBlOwogCi0gICAgICAgIHZvaWQgbW9kaWZ5KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIERPTVN0cmluZyBhbHRlciwgCi0gICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkaXJlY3Rpb24sIAotICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgZ3JhbnVs
YXJpdHkpOwotICAgICAgICB2b2lkIHNldEJhc2VBbmRFeHRlbnQoaW4gW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gTm9kZSBiYXNlTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGJhc2VPZmZzZXQsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gTm9kZSBleHRlbnROb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgZXh0ZW50T2Zmc2V0KQorICAgICAg
ICB2b2lkIG1vZGlmeShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcg
YWx0ZXIsIAorICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBET01TdHJpbmcgZGlyZWN0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGdyYW51bGFyaXR5KTsKKyAgICAgICAg
dm9pZCBzZXRCYXNlQW5kRXh0ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5v
ZGUgYmFzZU5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBiYXNlT2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIE5vZGUgZXh0ZW50
Tm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBsb25nIGV4dGVudE9mZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFBvc2l0aW9uKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIE5vZGUgbm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBvZmZzZXQpCisgICAgICAgIHZvaWQgc2V0
UG9zaXRpb24oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBub2RlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBs
b25nIG9mZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAg
IC8vIElFIGV4dGVudGlvbnMKQEAgLTk3LDQgKzk3LDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIHZvaWQgZW1wdHkoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCmluZGV4IGIyMDY1NDNiMTU1ODY3MjRkOWZiODFlMGVhMTkzNjBiNzAzOTQ2MDYuLjNiZWMy
NjczODI3MmUzNjY3OTNkZGI4MTczMDYxMDg5MWJmMWY2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKQEAgLTI2LDcgKzI2LDcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ2hlY2tTZWN1cml0eSwKICAgICAgICAgSlNDdXN0b21E
ZWZpbmVPd25Qcm9wZXJ0eSwKICAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCkBAIC00Miwy
NyArNDIsMjcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEpTTGVnYWN5UGFyZW50PUpTRE9N
V2luZG93QmFzZSwKICAgICAgICAgVjhDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBJbnRlcmZh
Y2VOYW1lPVdpbmRvdwotICAgIF0gRE9NV2luZG93IHsKKyAgICBdIGludGVyZmFjZSBET01XaW5k
b3cgewogICAgICAgICAvLyBET00gTGV2ZWwgMAotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2Vh
YmxlXSBTY3JlZW4gc2NyZWVuOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlLCBEb05v
dENoZWNrU2VjdXJpdHlPbkdldHRlcl0gSGlzdG9yeSBoaXN0b3J5OwotICAgICAgICBhdHRyaWJ1
dGUgW1JlcGxhY2VhYmxlXSBCYXJJbmZvIGxvY2F0aW9uYmFyOwotICAgICAgICBhdHRyaWJ1dGUg
W1JlcGxhY2VhYmxlXSBCYXJJbmZvIG1lbnViYXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFj
ZWFibGVdIEJhckluZm8gcGVyc29uYWxiYXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFi
bGVdIEJhckluZm8gc2Nyb2xsYmFyczsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0g
QmFySW5mbyBzdGF0dXNiYXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIEJhcklu
Zm8gdG9vbGJhcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gTmF2aWdhdG9yIG5h
dmlnYXRvcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gTmF2aWdhdG9yIGNsaWVu
dEluZm9ybWF0aW9uOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBTY3JlZW4gc2Ny
ZWVuOworICAgICAgICBbUmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyXSBh
dHRyaWJ1dGUgSGlzdG9yeSBoaXN0b3J5OworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0
ZSBCYXJJbmZvIGxvY2F0aW9uYmFyOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBC
YXJJbmZvIG1lbnViYXI7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIEJhckluZm8g
cGVyc29uYWxiYXI7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIEJhckluZm8gc2Ny
b2xsYmFyczsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgQmFySW5mbyBzdGF0dXNi
YXI7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIEJhckluZm8gdG9vbGJhcjsKKyAg
ICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgTmF2aWdhdG9yIG5hdmlnYXRvcjsKKyAgICAg
ICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgTmF2aWdhdG9yIGNsaWVudEluZm9ybWF0aW9uOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ3J5cHRvIGNyeXB0bzsKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKLSAgICAgICAgYXR0cmlidXRlIFtEb05vdENo
ZWNrU2VjdXJpdHksIEN1c3RvbVNldHRlciwgVjhVbmZvcmdlYWJsZV0gTG9jYXRpb24gbG9jYXRp
b247CisgICAgICAgIFtEb05vdENoZWNrU2VjdXJpdHksIEN1c3RvbVNldHRlciwgVjhVbmZvcmdl
YWJsZV0gYXR0cmlidXRlIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCi0gICAgICAgIGF0dHJp
YnV0ZSBbUmVwbGFjZWFibGUsIEN1c3RvbUdldHRlciwgVjhDdXN0b21TZXR0ZXJdIEV2ZW50IGV2
ZW50OworICAgICAgICBbUmVwbGFjZWFibGUsIEN1c3RvbUdldHRlciwgVjhDdXN0b21TZXR0ZXJd
IGF0dHJpYnV0ZSBFdmVudCBldmVudDsKIAogICAgICAgICBET01TZWxlY3Rpb24gZ2V0U2VsZWN0
aW9uKCk7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDaGVja1NlY3VyaXR5Rm9yTm9k
ZV0gRWxlbWVudCBmcmFtZUVsZW1lbnQ7CisgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0g
cmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgZnJhbWVFbGVtZW50OwogCiAgICAgICAgIFtEb05v
dENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgZm9j
dXMoKTsKICAgICAgICAgW0RvTm90Q2hlY2tTZWN1cml0eV0gdm9pZCBibHVyKCk7CkBAIC03Myw1
MSArNzMsNTEgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgW0N1c3RvbV0gRE9NV2luZG93
IG9wZW4oaW4gRE9NU3RyaW5nIHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gRE9NU3RyaW5nIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbF0gRE9NU3RyaW5nIG9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBvcHRpb25zKTsKIAogICAgICAgICBbQ3VzdG9t
XSBET01PYmplY3Qgc2hvd01vZGFsRGlhbG9nKGluIERPTVN0cmluZyB1cmwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBET01PYmplY3Qg
ZGlhbG9nQXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIERPTVN0cmluZyBmZWF0dXJlQXJncyk7Ci0KLSAgICAgICAgdm9pZCBhbGVy
dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbWVzc2FnZSk7Ci0g
ICAgICAgIGJvb2xlYW4gY29uZmlybShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgbWVzc2FnZSk7Ci0gICAgICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51
bGxdIERPTVN0cmluZyBwcm9tcHQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9N
U3RyaW5nIG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBkZWZhdWx0
VmFsdWUpOwotCi0gICAgICAgIGJvb2xlYW4gZmluZChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBET01TdHJpbmcgc3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLAotICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBiYWNr
d2FyZHMsCi0gICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBib29sZWFuIHdyYXAsCi0gICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHdob2xlV29yZCwKLSAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gc2VhcmNoSW5GcmFtZXMs
Ci0gICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBi
b29sZWFuIHNob3dEaWFsb2cpOwotCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGJv
b2xlYW4gb2Zmc2NyZWVuQnVmZmVyaW5nOwotCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFi
bGVdIGxvbmcgb3V0ZXJIZWlnaHQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGxv
bmcgb3V0ZXJXaWR0aDsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gbG9uZyBpbm5l
ckhlaWdodDsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gbG9uZyBpbm5lcldpZHRo
OwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBsb25nIHNjcmVlblg7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIGxvbmcgc2NyZWVuWTsKLSAgICAgICAgYXR0cmlidXRl
IFtSZXBsYWNlYWJsZV0gbG9uZyBzY3JlZW5MZWZ0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxh
Y2VhYmxlXSBsb25nIHNjcmVlblRvcDsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0g
bG9uZyBzY3JvbGxYOwotICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBsb25nIHNjcm9s
bFk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
XSBpbiBET01PYmplY3QgZGlhbG9nQXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIERPTVN0cmluZyBmZWF0dXJlQXJncyk7CisKKyAg
ICAgICAgdm9pZCBhbGVydChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgbWVzc2FnZSk7CisgICAgICAgIGJvb2xlYW4gY29uZmlybShbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbWVzc2FnZSk7CisgICAgICAgIFtUcmVhdFJldHVybmVk
TnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBwcm9tcHQoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gRE9NU3RyaW5nIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyBkZWZhdWx0VmFsdWUpOworCisgICAgICAgIGJvb2xlYW4gZmluZChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgc3RyaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gYm9vbGVhbiBjYXNlU2Vuc2l0
aXZlLAorICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gYm9vbGVhbiBiYWNrd2FyZHMsCisgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHdyYXAsCisgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHdob2xlV29yZCwKKyAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGJvb2xlYW4g
c2VhcmNoSW5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBib29sZWFuIHNob3dEaWFsb2cpOworCisgICAgICAgIFtSZXBsYWNlYWJs
ZV0gYXR0cmlidXRlIGJvb2xlYW4gb2Zmc2NyZWVuQnVmZmVyaW5nOworCisgICAgICAgIFtSZXBs
YWNlYWJsZV0gYXR0cmlidXRlIGxvbmcgb3V0ZXJIZWlnaHQ7CisgICAgICAgIFtSZXBsYWNlYWJs
ZV0gYXR0cmlidXRlIGxvbmcgb3V0ZXJXaWR0aDsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRy
aWJ1dGUgbG9uZyBpbm5lckhlaWdodDsKKyAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUg
bG9uZyBpbm5lcldpZHRoOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBsb25nIHNj
cmVlblg7CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIGxvbmcgc2NyZWVuWTsKKyAg
ICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUgbG9uZyBzY3JlZW5MZWZ0OworICAgICAgICBb
UmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBsb25nIHNjcmVlblRvcDsKKyAgICAgICAgW1JlcGxhY2Vh
YmxlXSBhdHRyaWJ1dGUgbG9uZyBzY3JvbGxYOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJp
YnV0ZSBsb25nIHNjcm9sbFk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHBhZ2VY
T2Zmc2V0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBwYWdlWU9mZnNldDsKIAot
ICAgICAgICB2b2lkIHNjcm9sbEJ5KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxv
bmcgeCwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB5KTsKLSAgICAgICAg
dm9pZCBzY3JvbGxUbyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHgsIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeSk7Ci0gICAgICAgIHZvaWQgc2Ny
b2xsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgeCwgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB5KTsKLSAgICAgICAgdm9pZCBtb3ZlQnkoaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlzIHNob3VsZCB0YWtlIGxvbmdzIG5v
dCBmbG9hdHMuCi0gICAgICAgIHZvaWQgbW92ZVRvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGZsb2F0IHgsIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkp
OyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgotICAgICAgICB2
b2lkIHJlc2l6ZUJ5KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBz
aG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgotICAgICAgICB2b2lkIHJlc2l6ZVRvKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHdpZHRoLCBpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCBoZWlnaHQpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFr
ZSBsb25ncyBub3QgZmxvYXRzLgorICAgICAgICB2b2lkIHNjcm9sbEJ5KFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGxvbmcgeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gbG9uZyB5KTsKKyAgICAgICAgdm9pZCBzY3JvbGxUbyhbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBsb25nIHgsIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcg
eSk7CisgICAgICAgIHZvaWQgc2Nyb2xsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGxvbmcgeCwgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyB5KTsKKyAgICAg
ICAgdm9pZCBtb3ZlQnkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7IC8vIEZJWE1FOiB0aGlz
IHNob3VsZCB0YWtlIGxvbmdzIG5vdCBmbG9hdHMuCisgICAgICAgIHZvaWQgbW92ZVRvKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGluIGZsb2F0IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBu
b3QgZmxvYXRzLgorICAgICAgICB2b2lkIHJlc2l6ZUJ5KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHgsIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHkpOyAvLyBGSVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgorICAgICAg
ICB2b2lkIHJlc2l6ZVRvKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHdp
ZHRoLCBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBoZWlnaHQpOyAvLyBG
SVhNRTogdGhpcyBzaG91bGQgdGFrZSBsb25ncyBub3QgZmxvYXRzLgogCi0gICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbRG9Ob3RDaGVja1NlY3VyaXR5XSBib29sZWFuIGNsb3NlZDsKKyAgICAg
ICAgW0RvTm90Q2hlY2tTZWN1cml0eV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY2xvc2Vk
OwogCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9u
R2V0dGVyXSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgW1JlcGxhY2VhYmxlLCBEb05v
dENoZWNrU2VjdXJpdHlPbkdldHRlcl0gYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwog
CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKIApAQCAtMTI5LDEzICsxMjksMTMg
QEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5kaWYKIAogICAgICAgICAvLyBTZWxmIHJlZmVyZW50aWFs
IGF0dHJpYnV0ZXMKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1Nl
Y3VyaXR5T25HZXR0ZXJdIERPTVdpbmRvdyBzZWxmOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0RvTm90Q2hlY2tTZWN1cml0eSwgVjhVbmZvcmdlYWJsZV0gRE9NV2luZG93IHdpbmRvdzsK
LSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0
ZXJdIERPTVdpbmRvdyBmcmFtZXM7CisgICAgICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1Nl
Y3VyaXR5T25HZXR0ZXJdIGF0dHJpYnV0ZSBET01XaW5kb3cgc2VsZjsKKyAgICAgICAgW0RvTm90
Q2hlY2tTZWN1cml0eSwgVjhVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVdpbmRv
dyB3aW5kb3c7CisgICAgICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0
ZXJdIGF0dHJpYnV0ZSBET01XaW5kb3cgZnJhbWVzOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVw
bGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBWOEN1c3RvbVNldHRlcl0gRE9N
V2luZG93IG9wZW5lcjsKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVj
a1NlY3VyaXR5T25HZXR0ZXJdIERPTVdpbmRvdyBwYXJlbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
UmVwbGFjZWFibGUsIERvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBWOFVuZm9yZ2VhYmxlLCBW
OFJlYWRPbmx5XSBET01XaW5kb3cgdG9wOworICAgICAgICBbUmVwbGFjZWFibGUsIERvTm90Q2hl
Y2tTZWN1cml0eU9uR2V0dGVyLCBWOEN1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVdpbmRvdyBv
cGVuZXI7CisgICAgICAgIFtSZXBsYWNlYWJsZSwgRG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJd
IGF0dHJpYnV0ZSBET01XaW5kb3cgcGFyZW50OworICAgICAgICBbUmVwbGFjZWFibGUsIERvTm90
Q2hlY2tTZWN1cml0eU9uR2V0dGVyLCBWOFVuZm9yZ2VhYmxlLCBWOFJlYWRPbmx5XSBhdHRyaWJ1
dGUgRE9NV2luZG93IHRvcDsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBBYnN0cmFjdFZpZXcg
SW50ZXJmYWNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCBkb2N1bWVudDsK
QEAgLTE0NywyOCArMTQ3LDI4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU3R5bGVNZWRpYSBzdHlsZU1lZGlhOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAy
IFN0eWxlIEludGVyZmFjZQotICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVk
U3R5bGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRWxlbWVudCBlbGVtZW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW1RyZWF0TnVs
bEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZyxPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgQ1NTU3R5
bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0eWxlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIEVsZW1lbnQgZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgcHNldWRv
RWxlbWVudCk7CiAKICAgICAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKICNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAgICAgQ1NTUnVs
ZUxpc3QgZ2V0TWF0Y2hlZENTU1J1bGVzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IEVsZW1lbnQgZWxlbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmcs
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgcHNldWRvRWxlbWVudCk7Cisg
ICAgICAgIENTU1J1bGVMaXN0IGdldE1hdGNoZWRDU1NSdWxlcyhbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBFbGVtZW50IGVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1O
dWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHBzZXVk
b0VsZW1lbnQpOwogI2VuZGlmCiAKLSAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gZG91
YmxlIGRldmljZVBpeGVsUmF0aW87CisgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIGRv
dWJsZSBkZXZpY2VQaXhlbFJhdGlvOwogICAgICAgICAKLSAgICAgICAgV2ViS2l0UG9pbnQgd2Vi
a2l0Q29udmVydFBvaW50RnJvbVBhZ2VUb05vZGUoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gTm9kZSBub2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gV2ViS2l0UG9p
bnQgcCk7Ci0gICAgICAgIFdlYktpdFBvaW50IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9Q
YWdlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIE5vZGUgbm9kZSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIFdlYktpdFBvaW50IHApOworICAgICAgICBXZWJLaXRQb2lu
dCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tUGFnZVRvTm9kZShbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBOb2RlIG5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBXZWJL
aXRQb2ludCBwKTsKKyAgICAgICAgV2ViS2l0UG9pbnQgd2Via2l0Q29udmVydFBvaW50RnJvbU5v
ZGVUb1BhZ2UoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBub2RlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gV2ViS2l0UG9pbnQgcCk7CiAKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIERPTUFwcGxpY2F0aW9uQ2FjaGUg
YXBwbGljYXRpb25DYWNoZTsKKyAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9ubHkg
YXR0cmlidXRlIERPTUFwcGxpY2F0aW9uQ2FjaGUgYXBwbGljYXRpb25DYWNoZTsKIAotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3RvcmFnZSBzZXNzaW9u
U3RvcmFnZQotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gU3RvcmFnZSBsb2NhbFN0
b3JhZ2UKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1Y4RW5hYmxlZEF0UnVudGltZV0gcmVhZG9ubHkgYXR0cmlidXRlIFN0b3JhZ2Ugc2Vzc2lvblN0
b3JhZ2UKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbVjhF
bmFibGVkQXRSdW50aW1lXSByZWFkb25seSBhdHRyaWJ1dGUgU3RvcmFnZSBsb2NhbFN0b3JhZ2UK
KyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVmaW5lZChFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAgICAg
ICAgIC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21l
IGV4YW1wbGVzIGFyZToKQEAgLTE3Nyw3ICsxNzcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgb3JpZW50YXRpb247CiAjZW5kaWYKIAotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBDb25zb2xlIGNvbnNvbGU7CisgICAg
ICAgICAgICAgICAgIFtSZXBsYWNlYWJsZV0gYXR0cmlidXRlIENvbnNvbGUgY29uc29sZTsKIAog
ICAgICAgICAvLyBjcm9zcy1kb2N1bWVudCBtZXNzYWdpbmcKICNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKQEAgLTE5MiwzNiArMTkyLDM2IEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxz
ZQogICAgICAgICAvLyBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGV4cG9zZSBhbiBhcnJheSB2aWEg
dGhlIE9iakMgYmluZGluZ3MsIHNvIGZvciBub3cganVzdCBhbGxvdyBwYXNzaW5nIGluIGEgc2lu
Z2xlIHBvcnQuCi0gICAgICAgIFtEb05vdENoZWNrU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0
TWVzc2FnZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBN
ZXNzYWdlUG9ydCBtZXNzYWdlUG9ydCwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKKyAgICAg
ICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIE1lc3NhZ2VQb3J0IG1lc3Nh
Z2VQb3J0LCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX1dFQl9USU1JTkcpICYm
IEVOQUJMRV9XRUJfVElNSU5HCi0gICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIFBlcmZv
cm1hbmNlIHBlcmZvcm1hbmNlOworICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBQZXJm
b3JtYW5jZSBwZXJmb3JtYW5jZTsKICNlbmRpZgogCiAgICAgICAgIC8vIFRpbWVycwotICAgICAg
ICBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gVGltZW91dEhhbmRsZXIgaGFuZGxlciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHRpbWVvdXQpOworICAg
ICAgICBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gVGltZW91dEhhbmRsZXIgaGFuZGxlciwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBsb25nIHRpbWVvdXQpOwog
ICAgICAgICAvLyBbQ3VzdG9tXSBsb25nIHNldFRpbWVvdXQoaW4gVGltZW91dEhhbmRsZXIgaGFu
ZGxlciwgaW4gbG9uZyB0aW1lb3V0LCBhcmd1bWVudHMuLi4pOwogICAgICAgICAvLyBbQ3VzdG9t
XSBsb25nIHNldFRpbWVvdXQoaW4gRE9NU3RyaW5nIGNvZGUsIGluIGxvbmcgdGltZW91dCk7Ci0g
ICAgICAgIHZvaWQgY2xlYXJUaW1lb3V0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGxvbmcgaGFuZGxlKTsKKyAgICAgICAgdm9pZCBjbGVhclRpbWVvdXQoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBoYW5kbGUpOwogICAgICAgICBbQ3VzdG9tXSBsb25nIHNl
dEludGVydmFsKGluIFRpbWVvdXRIYW5kbGVyIGhhbmRsZXIsIGluIGxvbmcgdGltZW91dCk7CiAg
ICAgICAgIC8vIFtDdXN0b21dIGxvbmcgc2V0SW50ZXJ2YWwoaW4gVGltZW91dEhhbmRsZXIgaGFu
ZGxlciwgaW4gbG9uZyB0aW1lb3V0LCBhcmd1bWVudHMuLi4pOwogICAgICAgICAvLyBbQ3VzdG9t
XSBsb25nIHNldEludGVydmFsKGluIERPTVN0cmluZyBjb2RlLCBpbiBsb25nIHRpbWVvdXQpOwot
ICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gbG9uZyBoYW5kbGUpOworICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gbG9uZyBoYW5kbGUpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgICAgIC8vIFdlYktpdCBhbmltYXRpb24gZXh0
ZW5zaW9ucywgYmVpbmcgc3RhbmRhcmRpemVkIGluIHRoZSBXZWJQZXJmIFdHCi0gICAgICAgIGxv
bmcgd2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGluIFtDYWxsYmFja10gUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2spOworICAgICAgICBsb25nIHdlYmtpdFJlcXVlc3RB
bmltYXRpb25GcmFtZShbQ2FsbGJhY2tdIGluIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
IGNhbGxiYWNrKTsKICAgICAgICAgdm9pZCB3ZWJraXRDYW5jZWxBbmltYXRpb25GcmFtZShpbiBs
b25nIGlkKTsKICAgICAgICAgdm9pZCB3ZWJraXRDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUo
aW4gbG9uZyBpZCk7IC8vIFRoaXMgaXMgYSBkZXByZWNhdGVkIGFsaWFzIGZvciB3ZWJraXRDYW5j
ZWxBbmltYXRpb25GcmFtZSgpLiBSZW1vdmUgdGhpcyB3aGVuIHJlbW92aW5nIHZlbmRvciBwcmVm
aXguCiAjZW5kaWYKIAogICAgICAgICAvLyBCYXNlNjQKLSAgICAgICAgRE9NU3RyaW5nIGF0b2Io
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBE
T01TdHJpbmcgc3RyaW5nKQorICAgICAgICBET01TdHJpbmcgYXRvYihbVHJlYXROdWxsQXM9TnVs
bFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHJpbmcp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgRE9NU3RyaW5nIGJ0
b2EoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBET01TdHJpbmcgc3RyaW5nKQorICAgICAgICBET01TdHJpbmcgYnRvYShbVHJlYXROdWxsQXM9
TnVsbFN0cmluZyxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBzdHJp
bmcpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBFdmVu
dHMKQEAgLTMwNSwyMSArMzA1LDIxIEBAIG1vZHVsZSB3aW5kb3cgewogI2lmIGRlZmluZWQoRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwogICAg
ICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm9yaWVudGF0aW9uY2hhbmdlOwogI2VuZGlm
Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0
UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoc3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Q29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5l
ciBvbnRvdWNobW92ZTsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1UT1VDSF9FVkVO
VFMsVjhFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hlbmQ7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0g
RXZlbnRMaXN0ZW5lciBvbnRvdWNoY2FuY2VsOworICAgICAgICBbQ29uZGl0aW9uYWw9VE9VQ0hf
RVZFTlRTLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3Vj
aHN0YXJ0OworICAgICAgICBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4RW5hYmxlZEF0UnVu
dGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaG1vdmU7CisgICAgICAgIFtDb25k
aXRpb25hbD1UT1VDSF9FVkVOVFMsVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbnRvdWNoZW5kOworICAgICAgICBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLFY4
RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb250b3VjaGNhbmNlbDsK
IAotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTixWOEVu
YWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb25kZXZpY2Vtb3Rpb247Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REVWSUNFX09SSUVOVEFUSU9OLFY4RW5hYmxlZEF0UnVudGlt
ZV0gRXZlbnRMaXN0ZW5lciBvbmRldmljZW9yaWVudGF0aW9uOworICAgICAgICBbQ29uZGl0aW9u
YWw9REVWSUNFX09SSUVOVEFUSU9OLFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25kZXZpY2Vtb3Rpb247CisgICAgICAgIFtDb25kaXRpb25hbD1ERVZJQ0VfT1JJ
RU5UQVRJT04sVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRl
dmljZW9yaWVudGF0aW9uOwogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAg
ICAgICBbQ3VzdG9tXSB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlz
dGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAg
ICAgIFtDdXN0b21dIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAg
ICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICBy
YWlzZXMoRXZlbnRFeGNlcHRpb24pOwogCkBAIC0zODcsOSArMzg3LDkgQEAgbW9kdWxlIHdpbmRv
dyB7CiAgICAgICAgIGF0dHJpYnV0ZSBFbnRpdHlDb25zdHJ1Y3RvciBFbnRpdHk7CiAgICAgICAg
IGF0dHJpYnV0ZSBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvciBFbnRpdHlSZWZlcmVuY2U7CiAg
ICAgICAgIGF0dHJpYnV0ZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Db25zdHJ1Y3RvciBQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9U0hBRE9XX0RP
TSwgVjhFbmFibGVkUGVyQ29udGV4dD1zaGFkb3dET01dIFNoYWRvd1Jvb3RDb25zdHJ1Y3RvciBX
ZWJLaXRTaGFkb3dSb290OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVNIQURPV19E
T00sIFY4RW5hYmxlZFBlckNvbnRleHQ9c2hhZG93RE9NXSBIVE1MQ29udGVudEVsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MQ29udGVudEVsZW1lbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9U0hBRE9XX0RPTSwgVjhFbmFibGVkUGVyQ29udGV4dD1zaGFkb3dET01dIEhUTUxTaGFkb3dF
bGVtZW50Q29uc3RydWN0b3IgSFRNTFNoYWRvd0VsZW1lbnQ7CisgICAgICAgIFtDb25kaXRpb25h
bD1TSEFET1dfRE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gYXR0cmlidXRlIFNo
YWRvd1Jvb3RDb25zdHJ1Y3RvciBXZWJLaXRTaGFkb3dSb290OworICAgICAgICBbQ29uZGl0aW9u
YWw9U0hBRE9XX0RPTSwgVjhFbmFibGVkUGVyQ29udGV4dD1zaGFkb3dET01dIGF0dHJpYnV0ZSBI
VE1MQ29udGVudEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MQ29udGVudEVsZW1lbnQ7CisgICAgICAg
IFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0g
YXR0cmlidXRlIEhUTUxTaGFkb3dFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNoYWRvd0VsZW1lbnQ7
CiAKICAgICAgICAgYXR0cmlidXRlIERPTVNlbGVjdGlvbkNvbnN0cnVjdG9yIFNlbGVjdGlvbjsK
ICAgICAgICAgYXR0cmlidXRlIERPTVdpbmRvd0NvbnN0cnVjdG9yIFdpbmRvdzsKQEAgLTQwNiw3
ICs0MDYsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEhUTUxCdXR0b25F
bGVtZW50Q29uc3RydWN0b3IgSFRNTEJ1dHRvbkVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBI
VE1MQ2FudmFzRWxlbWVudENvbnN0cnVjdG9yIEhUTUxDYW52YXNFbGVtZW50OwogICAgICAgICBh
dHRyaWJ1dGUgSFRNTERMaXN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxETGlzdEVsZW1lbnQ7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxEYXRhTGlzdEVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MRGF0YUxpc3RFbGVtZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9
REFUQUxJU1RdIGF0dHJpYnV0ZSBIVE1MRGF0YUxpc3RFbGVtZW50Q29uc3RydWN0b3IgSFRNTERh
dGFMaXN0RWxlbWVudDsKICAgICAgICAgYXR0cmlidXRlIEhUTUxEaXJlY3RvcnlFbGVtZW50Q29u
c3RydWN0b3IgSFRNTERpcmVjdG9yeUVsZW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MRGl2
RWxlbWVudENvbnN0cnVjdG9yIEhUTUxEaXZFbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRN
TEVtYmVkRWxlbWVudENvbnN0cnVjdG9yIEhUTUxFbWJlZEVsZW1lbnQ7CkBAIC00NjMsMzIgKzQ2
MywzMiBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBhdHRyaWJ1dGUgSFRNTENvbGxlY3Rp
b25Db25zdHJ1Y3RvciBIVE1MQ29sbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEhUTUxBbGxD
b2xsZWN0aW9uQ29uc3RydWN0b3IgSFRNTEFsbENvbGxlY3Rpb247Ci0gICAgICAgIGF0dHJpYnV0
ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Db25zdHJ1
Y3RvciBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb247CisgICAgICAgIFtDb25kaXRpb25hbD1NSUNS
T0RBVEFdIGF0dHJpYnV0ZSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Db25zdHJ1Y3RvciBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBIVE1MVW5rbm93bkVsZW1l
bnRDb25zdHJ1Y3RvciBIVE1MVW5rbm93bkVsZW1lbnQ7CiAKLSAgICAgICAgYXR0cmlidXRlIFtK
U0N1c3RvbUdldHRlciwgQ3VzdG9tQ29uc3RydWN0b3JdIEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yIEltYWdlOyAvLyBVc2FibGUgd2l0aCBuZXcgb3BlcmF0b3IKLSAgICAg
ICAgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRlcl0gSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yIE9wdGlvbjsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCisgICAgICAg
IFtKU0N1c3RvbUdldHRlciwgQ3VzdG9tQ29uc3RydWN0b3JdIGF0dHJpYnV0ZSBIVE1MSW1hZ2VF
bGVtZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciBJbWFnZTsgLy8gVXNhYmxlIHdpdGggbmV3IG9w
ZXJhdG9yCisgICAgICAgIFtKU0N1c3RvbUdldHRlcl0gYXR0cmlidXRlIEhUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciBPcHRpb247IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVy
YXRvcgogCi0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBLCBW
OEVuYWJsZWRBdFJ1bnRpbWU9ZW5jcnlwdGVkTWVkaWFdIE1lZGlhS2V5RXJyb3JDb25zdHJ1Y3Rv
ciBNZWRpYUtleUVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUVOQ1JZUFRF
RF9NRURJQSwgVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBNZWRpYUtleUV2ZW50
Q29uc3RydWN0b3IgTWVkaWFLZXlFdmVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUVOQ1JZUFRF
RF9NRURJQSwgVjhFbmFibGVkQXRSdW50aW1lPWVuY3J5cHRlZE1lZGlhXSBhdHRyaWJ1dGUgTWVk
aWFLZXlFcnJvckNvbnN0cnVjdG9yIE1lZGlhS2V5RXJyb3I7CisgICAgICAgIFtDb25kaXRpb25h
bD1FTkNSWVBURURfTUVESUEsIFY4RW5hYmxlZEF0UnVudGltZT1lbmNyeXB0ZWRNZWRpYV0gYXR0
cmlidXRlIE1lZGlhS2V5RXZlbnRDb25zdHJ1Y3RvciBNZWRpYUtleUV2ZW50OwogCi0gICAgICAg
IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4RW5hYmxlZEF0UnVudGltZT13
ZWJraXRWaWRlb1RyYWNrXSBIVE1MVHJhY2tFbGVtZW50Q29uc3RydWN0b3IgSFRNTFRyYWNrRWxl
bWVudDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFi
bGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIFRleHRUcmFja0NvbnN0cnVjdG9yIFRleHRU
cmFjazsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhFbmFi
bGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIFRleHRUcmFja0N1ZUNvbnN0cnVjdG9yIFRl
eHRUcmFja0N1ZTsgLy8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgotICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0
VmlkZW9UcmFja10gVGV4dFRyYWNrQ3VlTGlzdENvbnN0cnVjdG9yIFRleHRUcmFja0N1ZUxpc3Q7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4RW5hYmxlZEF0
UnVudGltZT13ZWJraXRWaWRlb1RyYWNrXSBUZXh0VHJhY2tMaXN0Q29uc3RydWN0b3IgVGV4dFRy
YWNrTGlzdDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgVjhF
bmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIFRyYWNrRXZlbnRDb25zdHJ1Y3RvciBU
cmFja0V2ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4RW5hYmxlZEF0
UnVudGltZT13ZWJraXRWaWRlb1RyYWNrXSBhdHRyaWJ1dGUgSFRNTFRyYWNrRWxlbWVudENvbnN0
cnVjdG9yIEhUTUxUcmFja0VsZW1lbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFD
SywgVjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIGF0dHJpYnV0ZSBUZXh0VHJh
Y2tDb25zdHJ1Y3RvciBUZXh0VHJhY2s7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFD
SywgVjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIGF0dHJpYnV0ZSBUZXh0VHJh
Y2tDdWVDb25zdHJ1Y3RvciBUZXh0VHJhY2tDdWU7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3Bl
cmF0b3IKKyAgICAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLLCBWOEVuYWJsZWRBdFJ1bnRp
bWU9d2Via2l0VmlkZW9UcmFja10gYXR0cmlidXRlIFRleHRUcmFja0N1ZUxpc3RDb25zdHJ1Y3Rv
ciBUZXh0VHJhY2tDdWVMaXN0OworICAgICAgICBbQ29uZGl0aW9uYWw9VklERU9fVFJBQ0ssIFY4
RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRlb1RyYWNrXSBhdHRyaWJ1dGUgVGV4dFRyYWNrTGlz
dENvbnN0cnVjdG9yIFRleHRUcmFja0xpc3Q7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFT19U
UkFDSywgVjhFbmFibGVkQXRSdW50aW1lPXdlYmtpdFZpZGVvVHJhY2tdIGF0dHJpYnV0ZSBUcmFj
a0V2ZW50Q29uc3RydWN0b3IgVHJhY2tFdmVudDsKIAotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3Vz
dG9tR2V0dGVyLCBDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBIVE1MQXVk
aW9FbGVtZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciBBdWRpbzsgLy8gVXNhYmxlIHdpdGggdGhl
IG5ldyBvcGVyYXRvcgotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVu
YWJsZWRBdFJ1bnRpbWVdIEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MQXVkaW9FbGVt
ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1
bnRpbWVdIEhUTUxNZWRpYUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MTWVkaWFFbGVtZW50OwotICAg
ICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIEhU
TUxWaWRlb0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVmlkZW9FbGVtZW50OwotICAgICAgICBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIE1lZGlhRXJyb3JD
b25zdHJ1Y3RvciBNZWRpYUVycm9yOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJ
REVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIFRpbWVSYW5nZXNDb25zdHJ1Y3RvciBUaW1lUmFuZ2Vz
OwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRp
bWVdIEhUTUxTb3VyY2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNvdXJjZUVsZW1lbnQ7Ci0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gTWVk
aWFDb250cm9sbGVyQ29uc3RydWN0b3IgTWVkaWFDb250cm9sbGVyOworICAgICAgICBbSlNDdXN0
b21HZXR0ZXIsIENvbmRpdGlvbmFsPVZJREVPLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0
ZSBIVE1MQXVkaW9FbGVtZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciBBdWRpbzsgLy8gVXNhYmxl
IHdpdGggdGhlIG5ldyBvcGVyYXRvcgorICAgICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5h
YmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEhUTUxBdWRpb0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1M
QXVkaW9FbGVtZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVu
dGltZV0gYXR0cmlidXRlIEhUTUxNZWRpYUVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MTWVkaWFFbGVt
ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0
cmlidXRlIEhUTUxWaWRlb0VsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVmlkZW9FbGVtZW50OworICAg
ICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIE1l
ZGlhRXJyb3JDb25zdHJ1Y3RvciBNZWRpYUVycm9yOworICAgICAgICBbQ29uZGl0aW9uYWw9VklE
RU8sIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIFRpbWVSYW5nZXNDb25zdHJ1Y3RvciBU
aW1lUmFuZ2VzOworICAgICAgICBbQ29uZGl0aW9uYWw9VklERU8sIFY4RW5hYmxlZEF0UnVudGlt
ZV0gYXR0cmlidXRlIEhUTUxTb3VyY2VFbGVtZW50Q29uc3RydWN0b3IgSFRNTFNvdXJjZUVsZW1l
bnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1WSURFTywgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRy
aWJ1dGUgTWVkaWFDb250cm9sbGVyQ29uc3RydWN0b3IgTWVkaWFDb250cm9sbGVyOwogCi0gICAg
ICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCX0lOVEVOVFNfVEFHXSBIVE1MSW50ZW50RWxl
bWVudENvbnN0cnVjdG9yIEhUTUxJbnRlbnRFbGVtZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9
V0VCX0lOVEVOVFNfVEFHXSBhdHRyaWJ1dGUgSFRNTEludGVudEVsZW1lbnRDb25zdHJ1Y3RvciBI
VE1MSW50ZW50RWxlbWVudDsKIAogICAgICAgICBhdHRyaWJ1dGUgQ2FudmFzUGF0dGVybkNvbnN0
cnVjdG9yIENhbnZhc1BhdHRlcm47CiAgICAgICAgIGF0dHJpYnV0ZSBDYW52YXNHcmFkaWVudENv
bnN0cnVjdG9yIENhbnZhc0dyYWRpZW50OwpAQCAtNDk3LDE2ICs0OTcsMTYgQEAgbW9kdWxlIHdp
bmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBJbWFnZURhdGFDb25zdHJ1Y3RvciBJbWFnZURhdGE7
CiAgICAgICAgIGF0dHJpYnV0ZSBUZXh0TWV0cmljc0NvbnN0cnVjdG9yIFRleHRNZXRyaWNzOwog
Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdlYkdMQWN0aXZlSW5mb0Nv
bnN0cnVjdG9yIFdlYkdMQWN0aXZlSW5mbzsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1XRUJHTF0gV2ViR0xCdWZmZXJDb25zdHJ1Y3RvciBXZWJHTEJ1ZmZlcjsKLSAgICAgICAgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xGcmFtZWJ1ZmZlckNvbnN0cnVjdG9yIFdl
YkdMRnJhbWVidWZmZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xdIFdl
YkdMUHJvZ3JhbUNvbnN0cnVjdG9yIFdlYkdMUHJvZ3JhbTsKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1XRUJHTF0gV2ViR0xSZW5kZXJidWZmZXJDb25zdHJ1Y3RvciBXZWJHTFJlbmRl
cmJ1ZmZlcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1XRUJHTF0gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q29uc3RydWN0b3IgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwotICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFNoYWRlckNvbnN0cnVjdG9yIFdlYkdM
U2hhZGVyOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdENvbnN0cnVjdG9yIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Owot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdFQkdMXSBXZWJHTFRleHR1cmVDb25zdHJ1
Y3RvciBXZWJHTFRleHR1cmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9V0VCR0xd
IFdlYkdMVW5pZm9ybUxvY2F0aW9uQ29uc3RydWN0b3IgV2ViR0xVbmlmb3JtTG9jYXRpb247Cisg
ICAgICAgIFtDb25kaXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdlYkdMQWN0aXZlSW5mb0NvbnN0
cnVjdG9yIFdlYkdMQWN0aXZlSW5mbzsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdFQkdMXSBhdHRy
aWJ1dGUgV2ViR0xCdWZmZXJDb25zdHJ1Y3RvciBXZWJHTEJ1ZmZlcjsKKyAgICAgICAgW0NvbmRp
dGlvbmFsPVdFQkdMXSBhdHRyaWJ1dGUgV2ViR0xGcmFtZWJ1ZmZlckNvbnN0cnVjdG9yIFdlYkdM
RnJhbWVidWZmZXI7CisgICAgICAgIFtDb25kaXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdlYkdM
UHJvZ3JhbUNvbnN0cnVjdG9yIFdlYkdMUHJvZ3JhbTsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdF
QkdMXSBhdHRyaWJ1dGUgV2ViR0xSZW5kZXJidWZmZXJDb25zdHJ1Y3RvciBXZWJHTFJlbmRlcmJ1
ZmZlcjsKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdFQkdMXSBhdHRyaWJ1dGUgV2ViR0xSZW5kZXJp
bmdDb250ZXh0Q29uc3RydWN0b3IgV2ViR0xSZW5kZXJpbmdDb250ZXh0OworICAgICAgICBbQ29u
ZGl0aW9uYWw9V0VCR0xdIGF0dHJpYnV0ZSBXZWJHTFNoYWRlckNvbnN0cnVjdG9yIFdlYkdMU2hh
ZGVyOworICAgICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIGF0dHJpYnV0ZSBXZWJHTFNoYWRlclBy
ZWNpc2lvbkZvcm1hdENvbnN0cnVjdG9yIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0OworICAg
ICAgICBbQ29uZGl0aW9uYWw9V0VCR0xdIGF0dHJpYnV0ZSBXZWJHTFRleHR1cmVDb25zdHJ1Y3Rv
ciBXZWJHTFRleHR1cmU7CisgICAgICAgIFtDb25kaXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdl
YkdMVW5pZm9ybUxvY2F0aW9uQ29uc3RydWN0b3IgV2ViR0xVbmlmb3JtTG9jYXRpb247CiAKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZ01hcENvbnN0cnVjdG9yIERPTVN0cmluZ01hcDsKIApA
QCAtNTQzLDE4ICs1NDMsMTggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBX
ZWJLaXRUcmFuc2l0aW9uRXZlbnRDb25zdHJ1Y3RvciBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ7CiAg
ICAgICAgIGF0dHJpYnV0ZSBXaGVlbEV2ZW50Q29uc3RydWN0b3IgV2hlZWxFdmVudDsKICAgICAg
ICAgYXR0cmlidXRlIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENvbnN0cnVjdG9yIFhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1E
RVZJQ0VfT1JJRU5UQVRJT04sIFY4RW5hYmxlZEF0UnVudGltZV0gRGV2aWNlTW90aW9uRXZlbnRD
b25zdHJ1Y3RvciBEZXZpY2VNb3Rpb25FdmVudDsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1ERVZJQ0VfT1JJRU5UQVRJT04sIFY4RW5hYmxlZEF0UnVudGltZV0gRGV2aWNlT3JpZW50
YXRpb25FdmVudENvbnN0cnVjdG9yIERldmljZU9yaWVudGF0aW9uRXZlbnQ7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTXSBUb3VjaEV2ZW50Q29uc3RydWN0b3Ig
VG91Y2hFdmVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElPTiwgVjhF
bmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRGV2aWNlTW90aW9uRXZlbnRDb25zdHJ1Y3RvciBE
ZXZpY2VNb3Rpb25FdmVudDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPURFVklDRV9PUklFTlRBVElP
TiwgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgRGV2aWNlT3JpZW50YXRpb25FdmVudENv
bnN0cnVjdG9yIERldmljZU9yaWVudGF0aW9uRXZlbnQ7CisgICAgICAgIFtDb25kaXRpb25hbD1U
T1VDSF9FVkVOVFNdIGF0dHJpYnV0ZSBUb3VjaEV2ZW50Q29uc3RydWN0b3IgVG91Y2hFdmVudDsK
ICAgICAgICAgYXR0cmlidXRlIFN0b3JhZ2VFdmVudENvbnN0cnVjdG9yIFN0b3JhZ2VFdmVudDsK
LSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0hdIFNwZWVjaElucHV0
RXZlbnRDb25zdHJ1Y3RvciBTcGVlY2hJbnB1dEV2ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPVdFQkdMXSBXZWJHTENvbnRleHRFdmVudENvbnN0cnVjdG9yIFdlYkdMQ29udGV4
dEV2ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9SU5QVVRfU1BFRUNIXSBhdHRyaWJ1dGUgU3Bl
ZWNoSW5wdXRFdmVudENvbnN0cnVjdG9yIFNwZWVjaElucHV0RXZlbnQ7CisgICAgICAgIFtDb25k
aXRpb25hbD1XRUJHTF0gYXR0cmlidXRlIFdlYkdMQ29udGV4dEV2ZW50Q29uc3RydWN0b3IgV2Vi
R0xDb250ZXh0RXZlbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIEV2ZW50RXhjZXB0aW9uQ29uc3Ry
dWN0b3IgRXZlbnRFeGNlcHRpb247CiAKICAgICAgICAgYXR0cmlidXRlIFdlYktpdENTU0tleWZy
YW1lUnVsZUNvbnN0cnVjdG9yIFdlYktpdENTU0tleWZyYW1lUnVsZTsKICAgICAgICAgYXR0cmli
dXRlIFdlYktpdENTU0tleWZyYW1lc1J1bGVDb25zdHJ1Y3RvciBXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNTU19SRUdJT05TXSBXZWJLaXRD
U1NSZWdpb25SdWxlQ29uc3RydWN0b3IgV2ViS2l0Q1NTUmVnaW9uUnVsZTsKKyAgICAgICAgW0Nv
bmRpdGlvbmFsPUNTU19SRUdJT05TXSBhdHRyaWJ1dGUgV2ViS2l0Q1NTUmVnaW9uUnVsZUNvbnN0
cnVjdG9yIFdlYktpdENTU1JlZ2lvblJ1bGU7CiAKICAgICAgICAgYXR0cmlidXRlIFdlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yIFdlYktpdENTU01hdHJpeDsgLy8gVXNhYmxlIHdpdGggdGhlIG5l
dyBvcGVyYXRvcgogCkBAIC01NjIsOCArNTYyLDggQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAg
ICAgYXR0cmlidXRlIENsaXBib2FyZENvbnN0cnVjdG9yIENsaXBib2FyZDsKIAotICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVdPUktFUlNdIFdvcmtlckNvbnN0cnVjdG9yIFdvcmtlcjsg
Ly8gVXNhYmxlIHdpdGggdGhlIG5ldyBvcGVyYXRvcgotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRp
dGlvbmFsPVNIQVJFRF9XT1JLRVJTLCBKU0N1c3RvbUdldHRlciwgVjhFbmFibGVkQXRSdW50aW1l
XSBTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciBTaGFyZWRXb3JrZXI7IC8vIFVzYWJsZSB3aXRoIHRo
ZSBuZXcgb3BlcmF0b3IKKyAgICAgICAgW0NvbmRpdGlvbmFsPVdPUktFUlNdIGF0dHJpYnV0ZSBX
b3JrZXJDb25zdHJ1Y3RvciBXb3JrZXI7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IK
KyAgICAgICAgW0NvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJTLCBKU0N1c3RvbUdldHRlciwgVjhF
bmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgU2hhcmVkV29ya2VyQ29uc3RydWN0b3IgU2hhcmVk
V29ya2VyOyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3IG9wZXJhdG9yCiAKICAgICAgICAgYXR0cmli
dXRlIEZpbGVDb25zdHJ1Y3RvciBGaWxlOwogICAgICAgICBhdHRyaWJ1dGUgRmlsZUxpc3RDb25z
dHJ1Y3RvciBGaWxlTGlzdDsKQEAgLTU4Myw3ICs1ODMsNyBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3Q7
IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3BlcmF0b3IKICAgICAgICAgYXR0cmlidXRlIFhNTEh0
dHBSZXF1ZXN0VXBsb2FkQ29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3RVcGxvYWQ7CiAgICAgICAg
IGF0dHJpYnV0ZSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yIFhNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVhTTFRdIFhTTFRQ
cm9jZXNzb3JDb25zdHJ1Y3RvciBYU0xUUHJvY2Vzc29yOyAvLyBVc2FibGUgd2l0aCB0aGUgbmV3
IG9wZXJhdG9yCisgICAgICAgIFtDb25kaXRpb25hbD1YU0xUXSBhdHRyaWJ1dGUgWFNMVFByb2Nl
c3NvckNvbnN0cnVjdG9yIFhTTFRQcm9jZXNzb3I7IC8vIFVzYWJsZSB3aXRoIHRoZSBuZXcgb3Bl
cmF0b3IKIAogI2lmIGRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAmJiBFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcKICAgICAgICAgYXR0cmlidXRlIE1lc3NhZ2VQb3J0Q29uc3RydWN0
b3IgTWVzc2FnZVBvcnQ7CkBAIC02MTAsNyArNjEwLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBYUGF0aFJlc3VsdENvbnN0cnVjdG9yIFhQYXRoUmVzdWx0OwogICAgICAg
ICBhdHRyaWJ1dGUgWFBhdGhFeGNlcHRpb25Db25zdHJ1Y3RvciBYUGF0aEV4Y2VwdGlvbjsKIAot
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVNWR10gU1ZHWm9vbUV2ZW50Q29uc3RydWN0
b3IgU1ZHWm9vbUV2ZW50OworICAgICAgICBbQ29uZGl0aW9uYWw9U1ZHXSBhdHRyaWJ1dGUgU1ZH
Wm9vbUV2ZW50Q29uc3RydWN0b3IgU1ZHWm9vbUV2ZW50OwogCiAjaWYgZGVmaW5lZChFTkFCTEVf
U1ZHKSAmJiBFTkFCTEVfU1ZHCiAgICAgICAgIC8vIEV4cG9zZSBhbGwgaW1wbGVtZW50ZWQgU1ZH
IDEuMSBpbnRlcmZhY2VzLCBleGNsdWRpbmcgdGhlIFNWRyBNSSBpbnRlcmZhY2VzOgpAQCAtNzcx
LDE0ICs3NzEsMTQgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgYXR0cmlidXRlIERPTUZv
cm1EYXRhQ29uc3RydWN0b3IgRm9ybURhdGE7CiAKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRp
b25hbD1CTE9CfEZJTEVfU1lTVEVNXSBGaWxlRXJyb3JDb25zdHJ1Y3RvciBGaWxlRXJyb3I7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQl0gRmlsZVJlYWRlckNvbnN0cnVjdG9y
IEZpbGVSZWFkZXI7CisgICAgICAgIFtDb25kaXRpb25hbD1CTE9CfEZJTEVfU1lTVEVNXSBhdHRy
aWJ1dGUgRmlsZUVycm9yQ29uc3RydWN0b3IgRmlsZUVycm9yOworICAgICAgICBbQ29uZGl0aW9u
YWw9QkxPQl0gYXR0cmlidXRlIEZpbGVSZWFkZXJDb25zdHJ1Y3RvciBGaWxlUmVhZGVyOwogCi0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQiZMRUdBQ1lfV0VCS0lUX0JMT0JfQlVJ
TERFUl0gV2ViS2l0QmxvYkJ1aWxkZXJDb25zdHJ1Y3RvciBXZWJLaXRCbG9iQnVpbGRlcjsKKyAg
ICAgICAgW0NvbmRpdGlvbmFsPUJMT0ImTEVHQUNZX1dFQktJVF9CTE9CX0JVSUxERVJdIGF0dHJp
YnV0ZSBXZWJLaXRCbG9iQnVpbGRlckNvbnN0cnVjdG9yIFdlYktpdEJsb2JCdWlsZGVyOwogCi0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9QkxPQl0gRE9NVVJMQ29uc3RydWN0b3Igd2Vi
a2l0VVJMOworICAgICAgICBbQ29uZGl0aW9uYWw9QkxPQl0gYXR0cmlidXRlIERPTVVSTENvbnN0
cnVjdG9yIHdlYmtpdFVSTDsKIAotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1VVEFU
SU9OX09CU0VSVkVSU10gV2ViS2l0TXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yIFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXI7CisgICAgICAgIFtDb25kaXRpb25hbD1NVVRBVElPTl9PQlNFUlZFUlNd
IGF0dHJpYnV0ZSBXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3IgV2ViS2l0TXV0YXRp
b25PYnNlcnZlcjsKIAogI2VuZGlmIC8vIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKIApA
QCAtNzg4LDUgKzc4OCw1IEBAIG1vZHVsZSB3aW5kb3cgewogI2VuZGlmIC8vIGRlZmluZWQoVjhf
QklORElORykKICAgICB9OwogCi19Cit9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d1BhZ2VQb3B1cC5pZGwKaW5kZXggYWE0NzdhMTExMTU5NzZmYmM0YTliMzU4ZjJlYjllMDIzNGYx
ODM3Ni4uODkxZGFmNTUyODcwYzQ1ZjlkYWEwNzE2MzA4MTcwOGE4ODhmMjE5OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UGFnZVBvcHVwLmlkbApAQCAtMjksMTAgKzI5LDEwIEBA
CiAgKi8KIAogbW9kdWxlIHdpbmRvdyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVBBR0VfUE9QVVAsCiAgICAgICAgIFN1cHBsZW1lbnRhbD1ET01XaW5kb3cK
LSAgICBdIERPTVdpbmRvd1BhZ2VQb3B1cCB7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
VjhFbmFibGVkUGVyQ29udGV4dD1wYWdlUG9wdXBdIFBhZ2VQb3B1cENvbnRyb2xsZXIgcGFnZVBv
cHVwQ29udHJvbGxlcjsKKyAgICBdIGludGVyZmFjZSBET01XaW5kb3dQYWdlUG9wdXAgeworICAg
ICAgICBbVjhFbmFibGVkUGVyQ29udGV4dD1wYWdlUG9wdXBdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQ
YWdlUG9wdXBDb250cm9sbGVyIHBhZ2VQb3B1cENvbnRyb2xsZXI7CiAgICAgfTsKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCmluZGV4IDQ4ZGYzZWJlOGI4NWM0YjQ1YTI5ZWFi
ZDcwMWNmOGRmMjg0Y2VhN2QuLmFiMGY4YjY4ZjI3ZTVmM2FhZTBjZjE0MTllMDAwNWZhNjkxM2Rm
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCkBAIC0zMSwxNCArMzEsMTQgQEAK
IAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQWN0
aXZlRE9NT2JqZWN0LAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBET01TdHJpbmcgc2NyaXB0VXJs
KSwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICAgICAgQ29u
c3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCiAgICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBK
U05vU3RhdGljVGFibGVzCi0gICAgXSBFdmVudFNvdXJjZSB7CisgICAgXSBpbnRlcmZhY2UgRXZl
bnRTb3VyY2UgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgVVJMOyAv
LyBMb3dlcmNhc2VkIC51cmwgaXMgdGhlIG9uZSBpbiB0aGUgc3BlYywgYnV0IGxlYXZpbmcgLlVS
TCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHVybDsKQEAgLTU4LDEyICs1OCwxMiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5l
cihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVuZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2Fw
dHVyZSk7CiAgICAgICAgIGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAg
ICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRpb24pOwogCiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9IaXN0b3J5LmlkbAppbmRleCA2ZThmNmFiMDY3ZWExMzJjNmJiNDRmMTM2MjJiNWIyYjQzNGMz
ODU4Li4xM2M2OWUwYzA0ZjgwZDZkNzMxMTQwNGE0ZDI5NmUyZDcyOTljMTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvSGlzdG9yeS5pZGwKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJ
TkcKICAgICAgICAgQ2hlY2tTZWN1cml0eSwKICNlbmRpZgpAQCAtMzUsMTggKzM1LDE4IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKICAgICAgICAgQ3Vz
dG9tRW51bWVyYXRlUHJvcGVydHksCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gSGlz
dG9yeSB7CisgICAgXSBpbnRlcmZhY2UgSGlzdG9yeSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
YWNoZWRBdHRyaWJ1dGUsIEN1c3RvbV0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHN0YXRlOworICAg
ICAgICBbQ2FjaGVkQXR0cmlidXRlLCBDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxp
emVkU2NyaXB0VmFsdWUgc3RhdGU7CiAKICAgICAgICAgW0RvTm90Q2hlY2tTZWN1cml0eSwgQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gdm9pZCBiYWNrKCk7CiAgICAgICAgIFtEb05v
dENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgZm9y
d2FyZCgpOwotICAgICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSB2b2lkIGdvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxv
bmcgZGlzdGFuY2UpOworICAgICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGdvKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIGxvbmcgZGlzdGFuY2UpOwogICAgICAgICAKLSAgICAgICAgW0N1c3RvbSwgVjhFbmFibGVk
QXRSdW50aW1lXSB2b2lkIHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9NU3RyaW5nIHRpdGxl
LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyB1cmwpCisgICAgICAgIFtDdXN0b20sIFY4RW5hYmxl
ZEF0UnVudGltZV0gdm9pZCBwdXNoU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRs
ZSwgW09wdGlvbmFsXSBpbiBET01TdHJpbmcgdXJsKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIFtDdXN0b20sIFY4RW5hYmxlZEF0UnVudGltZV0gdm9pZCByZXBs
YWNlU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRsZSwgaW4gW09wdGlvbmFsXSBE
T01TdHJpbmcgdXJsKQorICAgICAgICBbQ3VzdG9tLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIHZvaWQg
cmVwbGFjZVN0YXRlKGluIGFueSBkYXRhLCBpbiBET01TdHJpbmcgdGl0bGUsIFtPcHRpb25hbF0g
aW4gRE9NU3RyaW5nIHVybCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCmluZGV4IDFmMTcwM2FmNmE1NmI3
MDlmNjVlZDBkOWU4ZmRhYmFjNjBiZTVhNzIuLjc3Njc0N2U5ZTVlNDliYTc3N2VmMmM0ZTYxYWEw
YWJmYWM5M2I5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCkBAIC0yOCw3ICsyOCw3IEBA
CiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAjaWYgZGVmaW5l
ZChWOF9CSU5ESU5HKSAmJiBWOF9CSU5ESU5HCiAgICAgICAgIENoZWNrU2VjdXJpdHksCiAjZW5k
aWYKQEAgLTQyLDI0ICs0MiwyNCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgSlNDdXN0b21E
ZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAg
ICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAotICAgIF0gTG9jYXRpb24geworICAgIF0gaW50ZXJm
YWNlIExvY2F0aW9uIHsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9D
UFAKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtEb05vdENoZWNrU2VjdXJpdHlPblNldHRl
ciwgQ3VzdG9tU2V0dGVyLCBWOFVuZm9yZ2VhYmxlXSBET01TdHJpbmcgaHJlZjsKKyAgICAgICAg
ICAgICAgICAgW0RvTm90Q2hlY2tTZWN1cml0eU9uU2V0dGVyLCBDdXN0b21TZXR0ZXIsIFY4VW5m
b3JnZWFibGVdIGF0dHJpYnV0ZSBET01TdHJpbmcgaHJlZjsKICNlbmRpZgogCi0gICAgICAgIFtD
dXN0b20sIFY4VW5mb3JnZWFibGVdIHZvaWQgYXNzaWduKGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIERPTVN0cmluZyB1cmwpOwotICAgICAgICBbQ3VzdG9tLCBWOFVuZm9yZ2VhYmxl
XSB2b2lkIHJlcGxhY2UoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5n
IHVybCk7CisgICAgICAgIFtDdXN0b20sIFY4VW5mb3JnZWFibGVdIHZvaWQgYXNzaWduKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyB1cmwpOworICAgICAgICBbQ3Vz
dG9tLCBWOFVuZm9yZ2VhYmxlXSB2b2lkIHJlcGxhY2UoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIHVybCk7CiAgICAgICAgIFtDdXN0b20sIFY4VW5mb3JnZWFibGVd
IHZvaWQgcmVsb2FkKCk7CiAKICAgICAgICAgLy8gVVJJIGRlY29tcG9zaXRpb24gYXR0cmlidXRl
cwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHByb3RvY29sOwotICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIGhvc3Q7Ci0g
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaG9zdG5h
bWU7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcg
cG9ydDsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmlu
ZyBwYXRobmFtZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERP
TVN0cmluZyBzZWFyY2g7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVy
XSBET01TdHJpbmcgaGFzaDsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbVNldHRlcl0gYXR0cmli
dXRlIERPTVN0cmluZyBwcm90b2NvbDsKKyAgICAgICAgICAgICAgICAgW0N1c3RvbVNldHRlcl0g
YXR0cmlidXRlIERPTVN0cmluZyBob3N0OworICAgICAgICAgICAgICAgICBbQ3VzdG9tU2V0dGVy
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhvc3RuYW1lOworICAgICAgICAgICAgICAgICBbQ3VzdG9t
U2V0dGVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBvcnQ7CisgICAgICAgICAgICAgICAgIFtDdXN0
b21TZXR0ZXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgcGF0aG5hbWU7CisgICAgICAgICAgICAgICAg
IFtDdXN0b21TZXR0ZXJdIGF0dHJpYnV0ZSBET01TdHJpbmcgc2VhcmNoOworICAgICAgICAgICAg
ICAgICBbQ3VzdG9tU2V0dGVyXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhhc2g7CiAKICAgICAgICAg
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvcmlnaW47CiAjZW5kaWYKQEAg
LTc0LDQgKzc0LDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5kaWYKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVtb3J5SW5mby5pZGwKaW5kZXggYjkxNDlkNTRkNDVmOTMwMTc0ZjM0MjZl
NWJiMzNlYjdmOWQwMDI0OS4uY2U3YTEyNDQzYWU4MmI3NDY3OTFkYTNkNDlkYWUxZTIxMTlmZDJm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlJbmZvLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeUluZm8uaWRsCkBAIC0zMCwxNCArMzAsMTQgQEAKIAog
bW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgT21pdENv
bnN0cnVjdG9yCi0gICAgXSBNZW1vcnlJbmZvIHsKKyAgICBdIGludGVyZmFjZSBNZW1vcnlJbmZv
IHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0b3RhbEpTSGVh
cFNpemU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVzZWRKU0hl
YXBTaXplOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyXSB1bnNp
Z25lZCBsb25nIGpzSGVhcFNpemVMaW1pdDsKKyAgICAgICAgW0pTQ3VzdG9tR2V0dGVyXSByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBqc0hlYXBTaXplTGltaXQ7CiAKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCmluZGV4IDhmMzgwYTE4NzUzNDk3YzNl
NGU3ZTc1MTZkN2NkNzRlZmI1MTllMDcuLjlhN2RiMjg5MDk1OTEwNWQ0NDQzYjI2YzkzY2E3YWJj
NTVhMjk4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKQEAgLTE5LDEwICsxOSwxMCBA
QAogCiBtb2R1bGUgd2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBK
U0dlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IK
LSAgICBdIE5hdmlnYXRvciB7CisgICAgXSBpbnRlcmZhY2UgTmF2aWdhdG9yIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBDb2RlTmFtZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBOYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGFwcFZlcnNpb247CkBAIC00MSwxMCArNDEsMTAgQEAgbW9kdWxlIHdpbmRv
dyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsKIAogI2lmIGRl
ZmluZWQoRU5BQkxFX1BPSU5URVJfTE9DSykgJiYgRU5BQkxFX1BPSU5URVJfTE9DSyAvLyBGSVhN
RTogUmVtb3ZlIHJlbGlhbmNlIG9uIFBvaW50ZXJMb2NrLmlkbCB3aGVuIHJlbW92aW5nIG9sZCBQ
b2ludGVyIExvY2sgQVBJLiAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg0NDAyKQotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVBPSU5URVJf
TE9DSywgVjhFbmFibGVkQXRSdW50aW1lPXBvaW50ZXJMb2NrXSBQb2ludGVyTG9jayB3ZWJraXRQ
b2ludGVyOworICAgICAgICBbQ29uZGl0aW9uYWw9UE9JTlRFUl9MT0NLLCBWOEVuYWJsZWRBdFJ1
bnRpbWU9cG9pbnRlckxvY2tdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQb2ludGVyTG9jayB3ZWJraXRQ
b2ludGVyOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCBnZXRTdG9yYWdlVXBkYXRlcygpOyAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIG9yIHJlbmFtZSB0byB5aWVsZEZvclN0b3JhZ2VVcGRh
dGVzLgogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsCmluZGV4IDFiZDU3ZjJmZTJjNDJl
NjZlMTlhNmQyNzVkZmMyOGE4ODA5NWM1NzEuLjAyNDY3MWE4MGFlZjg5MWY0MDNiYmNiOGE4Y2Rk
ZGVkYjMwNmVmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yUmVn
aXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdh
dG9yUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIuaWRsCkBAIC0yMCw5ICsyMCw5IEBACiAKIG1vZHVs
ZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIFN1cHBsZW1lbnRh
bD1OYXZpZ2F0b3IKLSAgICBdIE5hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyIHsKKyAg
ICBdIGludGVyZmFjZSBOYXZpZ2F0b3JSZWdpc3RlclByb3RvY29sSGFuZGxlciB7CiAgICAgICAg
IFtDb25kaXRpb25hbD1SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSXSB2b2lkIHJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyKGluIERPTVN0cmluZyBzY2hlbWUsIGluIERPTVN0cmluZyB1cmwsIGluIERP
TVN0cmluZyB0aXRsZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICBbQ29uZGl0aW9uYWw9Q1VTVE9NX1NDSEVNRV9IQU5ETEVSXSBET01TdHJpbmcgaXNQcm90b2Nv
bEhhbmRsZXJSZWdpc3RlcmVkKGluIERPTVN0cmluZyBzY2hlbWUsIGluIERPTVN0cmluZyB1cmwp
CkBAIC0zMSw0ICszMSw0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVBvcHVwQ29udHJvbGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQ
b3B1cENvbnRyb2xsZXIuaWRsCmluZGV4IDZlMGE0OWRhYmExNDk1YjMwMWY4NGVmNjI1NDk4NjM4
ZDliMzg5OTAuLmZjNDI2NzM0MzlmYzQyMTMzYWExNTg4YTE3NzU4MDE3ZTc2M2IyOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ29udHJvbGxlci5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDb250cm9sbGVyLmlkbApAQCAtMjksOSArMjks
OSBAQAogICovCiAKIG1vZHVsZSB3aW5kb3cgewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1QQUdFX1BPUFVQCi0gICAgXSBQYWdlUG9wdXBDb250cm9sbGVyIHsK
KyAgICBdIGludGVyZmFjZSBQYWdlUG9wdXBDb250cm9sbGVyIHsKICAgICAgICAgdm9pZCBzZXRW
YWx1ZUFuZENsb3NlUG9wdXAoaW4gbG9uZyBudW1iZXJWYWx1ZSwgaW4gRE9NU3RyaW5nIHN0cmlu
Z1ZhbHVlKTsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5pZGwKaW5k
ZXggZmM5ZmZkZjFmN2RmMGIzNDU4ZDYwNWM4YzdlZjdmMWZjNWU4NzY0NS4uN2QxOGFkODFkYmFk
OWU4OTY3YzE5YmIyYTJhY2NmMWI2OGNlMThiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5pZGwKQEAgLTMxLDE5ICszMSwxOSBAQAogbW9kdWxlIHdpbmRvdyB7CiAKICAgICAvLyBTZWU6
IGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYlRpbWluZy8KLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1RJTUlORywKICAgICAgICAgRXZlbnRU
YXJnZXQsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gUGVyZm9ybWFuY2UgeworICAg
IF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFBl
cmZvcm1hbmNlTmF2aWdhdGlvbiBuYXZpZ2F0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgUGVyZm9ybWFuY2VUaW1pbmcgdGltaW5nOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W1Y4Q3VzdG9tR2V0dGVyXSBNZW1vcnlJbmZvIG1lbW9yeTsKKyAgICAgICAgW1Y4Q3VzdG9tR2V0
dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgTWVtb3J5SW5mbyBtZW1vcnk7CiAKICNpZiBkZWZpbmVk
KEVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSkgJiYgRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVM
SU5FCiAgICAgICAgIFBlcmZvcm1hbmNlRW50cnlMaXN0IHdlYmtpdEdldEVudHJpZXMoKTsKICAg
ICAgICAgUGVyZm9ybWFuY2VFbnRyeUxpc3Qgd2Via2l0R2V0RW50cmllc0J5VHlwZShpbiBET01T
dHJpbmcgZW50cnlUeXBlKTsKLSAgICAgICAgUGVyZm9ybWFuY2VFbnRyeUxpc3Qgd2Via2l0R2V0
RW50cmllc0J5TmFtZShpbiBET01TdHJpbmcgbmFtZSwgaW4gW09wdGlvbmFsPURlZmF1bHRJc051
bGxTdHJpbmddIERPTVN0cmluZyBlbnRyeVR5cGUpOworICAgICAgICBQZXJmb3JtYW5jZUVudHJ5
TGlzdCB3ZWJraXRHZXRFbnRyaWVzQnlOYW1lKGluIERPTVN0cmluZyBuYW1lLCBbT3B0aW9uYWw9
RGVmYXVsdElzTnVsbFN0cmluZ10gaW4gRE9NU3RyaW5nIGVudHJ5VHlwZSk7CiAjZW5kaWYKIAog
I2lmIGRlZmluZWQoRU5BQkxFX1JFU09VUkNFX1RJTUlORykgJiYgRU5BQkxFX1JFU09VUkNFX1RJ
TUlORwpAQCAtNTYsNCArNTYsNCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgZG91YmxlIHdl
YmtpdE5vdygpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlRW50cnkuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUVudHJ5LmlkbAppbmRleCA5ZTEwZmUwYmYxNzUzMTlmMjJjMzdkMjYwM2EwZTgyZDk4ZjM4MzJm
Li41M2ZkMDQ0NjJjZGY3ZTVjZTI3ZDE4OWE2MjQyZGJmMjU5ZjllNTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwKQEAgLTMxLDE1ICszMSwxNSBAQAogbW9kdWxl
IHdpbmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9y
YXctZmlsZS90aXAvc3BlY3MvUGVyZm9ybWFuY2VUaW1lbGluZS9PdmVydmlldy5odG1sCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAg
ICAgIENvbmRpdGlvbmFsPVBFUkZPUk1BTkNFX1RJTUVMSU5FLAogICAgICAgICBDdXN0b21Ub0pT
T2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFBlcmZvcm1hbmNlRW50cnkg
eworICAgIF0gaW50ZXJmYWNlIFBlcmZvcm1hbmNlRW50cnkgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgZW50cnlUeXBlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHN0YXJ0
VGltZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkdXJhdGlvbjsKICAgICB9
OwotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRy
eUxpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5pZGwK
aW5kZXggOGJlNDNkNTc2ODM2MmE0N2YyOTViNGU4MzNkMTBjZTE5MDFjZGZkYi4uZjJhMWMxZGJj
ODMzZTI2N2IwYmUyODIxZTgwZmE0YWU2MDU1YWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZUVudHJ5TGlzdC5pZGwKQEAgLTMxLDE0ICszMSwxNCBAQAogbW9kdWxlIHdp
bmRvdyB7CiAKICAgICAvLyBTZWU6IGh0dHBzOi8vZHZjcy53My5vcmcvaGcvd2VicGVyZi9yYXct
ZmlsZS90aXAvc3BlY3MvUGVyZm9ybWFuY2VUaW1lbGluZS9PdmVydmlldy5odG1sCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgICAg
IENvbmRpdGlvbmFsPVBFUkZPUk1BTkNFX1RJTUVMSU5FLAogICAgICAgICBPbWl0Q29uc3RydWN0
b3IsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIKLSAgICBdIFBlcmZvcm1hbmNlRW50cnlMaXN0IHsK
KyAgICBdIGludGVyZmFjZSBQZXJmb3JtYW5jZUVudHJ5TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICAgICAgUGVyZm9ybWFuY2VFbnRy
eSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5pZGwKaW5kZXggNGM2YjYxMmVm
M2QxYmNmZTA1Yzk3Y2Y5ZDZhYjQ2ZDY2MTA4NzA4Yi4uNTU2ZGQwYjhkYjU4ZWRiZWEzZjYxNDk0
OWNjYWRhNmM1YmQxYjVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZU5hdmlnYXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uLmlkbApAQCAtMzEsMTAgKzMxLDEwIEBACiBtb2R1bGUgd2luZG93IHsKIAogICAg
IC8vIFNlZTogaHR0cDovL3d3dy53My5vcmcvVFIvbmF2aWdhdGlvbi10aW1pbmcvCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgICAg
IE9taXRDb25zdHJ1Y3RvcgotICAgIF0gUGVyZm9ybWFuY2VOYXZpZ2F0aW9uIHsKKyAgICBdIGlu
dGVyZmFjZSBQZXJmb3JtYW5jZU5hdmlnYXRpb24gewogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBUWVBFX05BVklHQVRFID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVFlQ
RV9SRUxPQUQgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUWVBFX0JBQ0tfRk9S
V0FSRCA9IDI7CkBAIC00NCw0ICs0NCw0IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVkaXJlY3RDb3VudDsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNl
VGltaW5nLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWlu
Zy5pZGwKaW5kZXggM2UwYWQ1OWNlODRiZjEzZDIxYjE0OTg5YjlmMTAzZTE2OWU4ZjIzOC4uNDJj
YzRmYTI3MjM5Y2VlMzAwNzY1MWU4Y2FkMTdmYWM5NmRjNDZiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaWRsCkBAIC0zMSwxMCArMzEs
MTAgQEAKIG1vZHVsZSB3aW5kb3cgewogCiAgICAgLy8gU2VlOiBodHRwczovL2R2Y3MudzMub3Jn
L2hnL3dlYnBlcmYvcmF3LWZpbGUvdGlwL3NwZWNzL1Jlc291cmNlVGltaW5nL092ZXJ2aWV3Lmh0
bWwKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9UkVTT1VSQ0Vf
VElNSU5HLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFBlcmZvcm1hbmNlUmVzb3Vy
Y2VUaW1pbmcgOiBQZXJmb3JtYW5jZUVudHJ5IHsKKyAgICBdIGludGVyZmFjZSBQZXJmb3JtYW5j
ZVJlc291cmNlVGltaW5nIDogUGVyZm9ybWFuY2VFbnRyeSB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaW5pdGlhdG9yVHlwZTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgZG91YmxlIHJlZGlyZWN0U3RhcnQ7CkBAIC00OSw0ICs0OSw0IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIHJlc3BvbnNlU3RhcnQ7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgcmVzcG9uc2VFbmQ7CiAgICAgfTsKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRsCmluZGV4IDNlMTRm
N2M0NDg3NzhhNGM2N2M5YzdmZmE3ZjM3NDkyMmQ1NWZiMGUuLjNmN2E5ZTk3NzI2OTAzOWU1NWU0
N2EyN2EwM2U2NjdjNzg3MzJiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VUaW1pbmcuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuaWRsCkBAIC0zMSwxMCArMzEsMTAgQEAKIG1vZHVsZSB3aW5kb3cgewogCiAgICAgLy8g
U2VlOiBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJUaW1pbmcvCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVdFQl9USU1JTkcsCiAgICAgICAgIE9t
aXRDb25zdHJ1Y3RvcgotICAgIF0gUGVyZm9ybWFuY2VUaW1pbmcgeworICAgIF0gaW50ZXJmYWNl
IFBlcmZvcm1hbmNlVGltaW5nIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgbG9uZyBuYXZpZ2F0aW9uU3RhcnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxvbmcgdW5sb2FkRXZlbnRTdGFydDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyB1bmxvYWRFdmVudEVuZDsKQEAgLTU4LDQgKzU4LDQg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxvbmcgbG9hZEV2ZW50RW5kOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckxvY2suaWRsCmluZGV4IDMwNTRiY2YyMGYxN2RkNzc3OTg2OTg3ODE2ZDRmNzg5NmFlMjJm
ZTQuLjRmNDA2ZDViOTZlM2I4NDNjZjJjNGQwNmJjYzljY2E0NGZmNDQ4MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckxvY2suaWRsCkBAIC0yNCwxMyArMjQsMTMgQEAKIAogbW9kdWxlIGNvcmUg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVBPSU5URVJf
TE9DSywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBQb2ludGVyTG9jayB7Ci0gICAg
ICAgIHZvaWQgbG9jayhpbiBFbGVtZW50IHRhcmdldCwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0g
Vm9pZENhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gVm9p
ZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjayk7CisgICAgXSBpbnRlcmZhY2UgUG9pbnRlckxvY2sg
eworICAgICAgICB2b2lkIGxvY2soaW4gRWxlbWVudCB0YXJnZXQsIFtDYWxsYmFjaywgT3B0aW9u
YWxdIGluIFZvaWRDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIFtDYWxsYmFjaywgT3B0aW9uYWxd
IGluIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2spOwogICAgICAgICB2b2lkIHVubG9jaygp
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0xvY2tlZDsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaWRsCmluZGV4IDU4ODA2MDkxNDBkZWFmMDE3ZjY3ZDI2
MzNkNDg4NGIzYjYwM2I1ZWQuLjRhYzE3ZThhYTJlOWRlNzEyMGRhYTg5ZDllYmM4NzM4Yjk1ODU2
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5pZGwKQEAgLTI5LDEwICsyOSwxMCBAQAogCiBtb2R1bGUg
d2luZG93IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBKU0dlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbEZyYW1lLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFNjcmVl
biB7CisgICAgXSBpbnRlcmZhY2UgU2NyZWVuIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
Y29sb3JEZXB0aDsKQEAgLTQzLDQgKzQzLDQgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGF2YWlsV2lkdGg7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCmluZGV4IDAzODQ2YWYx
NGFiYjc0YmFjMDEyNzc0ODA5MmUxOTUxNmM2ZDRiZGMuLjkzYzNlYmRmMmM2MjY1NWFkMTAzMTli
YTU4ODcwN2YwODgyYjAwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50
LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFj
ZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSCwKLSAgICBdIFNwZWVjaElucHV0
RXZlbnQgOiBFdmVudCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gK
KyAgICBdIGludGVyZmFjZSBTcGVlY2hJbnB1dEV2ZW50IDogRXZlbnQgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgU3BlZWNoSW5wdXRSZXN1bHRMaXN0IHJlc3VsdHM7CiAgICAgfTsKIAot
fQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKaW5kZXggMzU0
MmM2MDU2MTdhYmU2NDljNjRhYTE5Y2EwZDYzNTcxOTk3N2MxNS4uNDkyOTdjOWEyZGI1ZWU2NzZi
MWQ4YjU0M2JjYjdlZDE1NzRlMjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dFJlc3VsdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dFJlc3VsdC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBp
bnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gsCi0gICAgXSBTcGVl
Y2hJbnB1dFJlc3VsdCB7CisgICAgWworICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gK
KyAgICBdIGludGVyZmFjZSBTcGVlY2hJbnB1dFJlc3VsdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdXR0ZXJhbmNlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgY29uZmlkZW5jZTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsCmluZGV4IGI5MjEzZDAwMmMzZGYxODc3NzM2MDc5
NmYzNTE5NTIzOTRiM2I1NjYuLjc1OWNmMjE5NzZjNjRlODZjMWFiZjhmZjUxNDM3YWFjMDViYzkw
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwK
QEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgSW5kZXhlZEdldHRlciwKICAgICAgICAgQ29uZGl0aW9uYWw9SU5QVVRf
U1BFRUNICi0gICAgXSBTcGVlY2hJbnB1dFJlc3VsdExpc3QgeworICAgIF0gaW50ZXJmYWNlIFNw
ZWVjaElucHV0UmVzdWx0TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxlbmd0aDsKLSAgICAgICAgU3BlZWNoSW5wdXRSZXN1bHQgaXRlbShpbiBbSXNJbmRl
eF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIFNwZWVjaElucHV0UmVzdWx0IGl0ZW0o
W0lzSW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbi5pZGwKaW5kZXggNGZiYTJlOGZiZDNhMDMzODc2
M2Q5ZDlmZmMxZWNlNjE0MDhmMzgyYS4uYzE1ODRkYTc0Nzk4MjRmNThmYzllZTZlOGY4NjRmNzVk
YjYyZDk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb24u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0QW5pbWF0aW9uLmlkbApAQCAtMzYs
NyArMzYsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgZWxhcHNl
ZFRpbWU7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBkZWxheTsKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21dIGludCBpdGVyYXRpb25Db3VudDsKKyAgICAg
ICAgW0N1c3RvbV0gcmVhZG9ubHkgYXR0cmlidXRlIGludCBpdGVyYXRpb25Db3VudDsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBwYXVzZWQ7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuIGVuZGVkOwpAQCAtNTUsNCArNTUsNCBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHZvaWQgcGF1c2UoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2ViS2l0QW5pbWF0aW9uTGlzdC5pZGwKaW5kZXggZWQzMDVmNzkyOWU5NTU2NDdiOWUw
ZGU4NDhiNWE2Y2M1OWM1YjA2NC4uOGRjNmQxOWY4ZTNhMDliYTA1NTMwN2U0N2U3NjRjOTIwZjY3
MzMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9XZWJLaXRBbmltYXRpb25MaXN0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdEFuaW1hdGlvbkxpc3QuaWRsCkBA
IC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIGh0bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIKLSAgICBdIFdlYktpdEFuaW1hdGlvbkxpc3Qgewor
ICAgIF0gaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlvbkxpc3QgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIFdlYktpdEFuaW1hdGlvbiBp
dGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dlYktpdFBvaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvV2ViS2l0UG9pbnQuaWRsCmluZGV4IGU0NGZkMjEwNGZiMzY5NjlmNGNjMzFkZTY0MWZlMjMw
Y2QyOTYyODIuLjcxNmRjNTAxZGVlNmZiMTBhZWQ0MWYxZjUwN2Y0YzBiOTA3NGQxNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQuaWRsCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogbW9kdWxl
IHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ3VzdG9tQ29uc3Ry
dWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0yCi0gICAgXSBXZWJLaXRQb2lu
dCB7CisgICAgXSBpbnRlcmZhY2UgV2ViS2l0UG9pbnQgewogICAgICAgICBhdHRyaWJ1dGUgZmxv
YXQgeDsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAppbmRleCA4MTlkZTA5ZDY3ODllMDk1ZmNm
ZGNkYjkxNTJlMzU4YTEyMDRmMThmLi45MTU2ZjRlNDA5ODk5YzZjM2M4YWYzNjAzOGM5MGU1ZDRh
OGE0NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCkBAIC0yOCwx
MiArMjgsMTIgQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIENvbmRpdGlvbmFsPVdPUktFUlMsCiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsLAogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IKLSAgICBdIFdvcmtlck5hdmlnYXRvciB7CisgICAgXSBpbnRlcmZhY2UgV29ya2VyTmF2
aWdhdG9yIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBOYW1lOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcFZlcnNpb247CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CkBAIC00Miw0ICs0Miw0IEBA
IG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25M
aW5lOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L0RPTU1pbWVUeXBlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuaWRs
CmluZGV4IDk0MjA2MGYxMDcwMGUyMDRmZWRjN2Q5MDQyODRhNDhiODZkMTY2ZjcuLjM2YzI2OTRj
NzVmZTU3YjEyOTliNGU3YmJhZDFlOGM4MDhiN2QxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NTWltZVR5cGUuaWRsCkBAIC0yMCwxMyArMjAsMTMgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSW50ZXJmYWNlTmFtZT1NaW1lVHlwZQot
ICAgIF0gRE9NTWltZVR5cGUgeworICAgIF0gaW50ZXJmYWNlIERPTU1pbWVUeXBlIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHN1ZmZpeGVzOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGRlc2NyaXB0aW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NUGx1
Z2luIGVuYWJsZWRQbHVnaW47CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL0RPTU1pbWVUeXBlQXJyYXkuaWRsCmluZGV4IDNkZTdmOGQ2ZDY3YmVhYjVjMTFhODU4ZGMy
ZWQ3MDE2N2JhYjQ0OGMuLjQ0OTVkZDY1MTkwNTBhZTQ4YWRlZTBkOTBmMjU4OGRmYzU2MjMzNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmlkbApAQCAtMjAs
MTUgKzIwLDE1IEBACiAKIG1vZHVsZSB3aW5kb3cgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIEpTR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiAgICAgICAgIE5hbWVk
R2V0dGVyLAogICAgICAgICBJbmRleGVkR2V0dGVyLAogICAgICAgICBJbnRlcmZhY2VOYW1lPU1p
bWVUeXBlQXJyYXkKLSAgICBdIERPTU1pbWVUeXBlQXJyYXkgeworICAgIF0gaW50ZXJmYWNlIERP
TU1pbWVUeXBlQXJyYXkgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7Ci0gICAgICAgIERPTU1pbWVUeXBlIGl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgICAgIERPTU1pbWVUeXBlIG5h
bWVkSXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgbmFtZSk7
CisgICAgICAgIERPTU1pbWVUeXBlIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIERPTU1pbWVUeXBlIG5hbWVkSXRlbShb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luLmlkbAppbmRleCBmNjQ1YTBiNmUw
ZjdmNDJlNTQ4NjMzZTM1NzlkMWRiMWJiMGRiNDk4Li4yNDc4NDg5NGQ3NWYyNzdiZTNmODRkMjEy
Yzk1OWM4M2Q3NTNkM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTVBs
dWdpbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01QbHVnaW4uaWRsCkBAIC0y
MCwxNyArMjAsMTcgQEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgTmFtZWRHZXR0ZXIsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAg
IEludGVyZmFjZU5hbWU9UGx1Z2luCi0gICAgXSBET01QbHVnaW4geworICAgIF0gaW50ZXJmYWNl
IERPTVBsdWdpbiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmaWxlbmFtZTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkZXNjcmlwdGlvbjsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBET01NaW1lVHlwZSBp
dGVtKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwotICAgICAgICBET01NaW1lVHlwZSBuYW1lZEl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBET01NaW1lVHlwZSBpdGVtKFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgICAg
ICBET01NaW1lVHlwZSBuYW1lZEl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
RE9NU3RyaW5nIG5hbWUpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL0RPTVBsdWdpbkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
RE9NUGx1Z2luQXJyYXkuaWRsCmluZGV4IGYwNDJmOTI0YzYyOGU2NWRiYjJhYWVkODUxZGYyZDQw
NTY4YWUwMmYuLmZlZDMzZTRjZGMxNzllYTk3YjA0MDEzNzU4Zjc5OWU0YmE4Yzc1NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NUGx1Z2luQXJyYXkuaWRsCkBAIC0yMCwxNiArMjAsMTYg
QEAKIAogbW9kdWxlIHdpbmRvdyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
SlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxGcmFtZSwKICAgICAgICAgTmFtZWRHZXR0ZXIsCiAg
ICAgICAgIEluZGV4ZWRHZXR0ZXIsCiAgICAgICAgIEludGVyZmFjZU5hbWU9UGx1Z2luQXJyYXkK
LSAgICBdIERPTVBsdWdpbkFycmF5IHsKKyAgICBdIGludGVyZmFjZSBET01QbHVnaW5BcnJheSB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAg
ICAgRE9NUGx1Z2luIGl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWdu
ZWQgbG9uZyBpbmRleCk7Ci0gICAgICAgIERPTVBsdWdpbiBuYW1lZEl0ZW0oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIG5hbWUpOwotICAgICAgICB2b2lkIHJlZnJl
c2goaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiByZWxvYWQpOworICAg
ICAgICBET01QbHVnaW4gaXRlbShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNp
Z25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgRE9NUGx1Z2luIG5hbWVkSXRlbShbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIHZvaWQgcmVm
cmVzaChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIHJlbG9hZCk7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsCmluZGV4IDFkNWIzMjdj
YjU3MDJiMTkwZTQ5ZmYzMzgwMjkwZWUxNzE0ZDUxOTcuLmVhNzBjMmQyNTM3M2NhNmFkYzYyNjJh
YTAyYjE3Nzc0MGM5MDFjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbApAQCAtMjUs
MTQgKzI1LDE0IEBACiAKIG1vZHVsZSBzdG9yYWdlIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBOYW1lZEdldHRlciwKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGxGcmFtZSwKICAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCiAgICAgICAgIEN1c3RvbUVu
dW1lcmF0ZVByb3BlcnR5LAotICAgICAgICBDdXN0b21OYW1lZFNldHRlciwKLSAgICBdIFN0b3Jh
Z2UgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoOworICAgICAgICBDdXN0b21OYW1lZFNldHRlcgorICAgIF0gaW50ZXJmYWNl
IFN0b3JhZ2UgeworICAgICAgICBbTm90RW51bWVyYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgICAgICBbTm90RW51bWVyYWJsZSwgVHJlYXRSZXR1cm5l
ZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcga2V5KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
OwogICAgICAgICBbTm90RW51bWVyYWJsZSwgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxs
XSBET01TdHJpbmcgZ2V0SXRlbShpbiBET01TdHJpbmcga2V5KTsKICAgICAgICAgW05vdEVudW1l
cmFibGVdIHZvaWQgc2V0SXRlbShpbiBET01TdHJpbmcga2V5LCBpbiBET01TdHJpbmcgZGF0YSkg
CkBAIC00MSw0ICs0MSw0IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgW05vdEVudW1lcmFi
bGVdIHZvaWQgY2xlYXIoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlRXZlbnQuaWRsCmluZGV4IDZlNDc3MGE3NmM1OTk2MzcwY2ZhODJiNWRiYjkzNTcwYTM0
Y2U3YjUuLjgzNDRmMDYzYWYyOWM4YzAxN2MxMzZmNmFjOGVhYjE0ZTZiNjAyMjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwKQEAgLTI1LDI2ICsyNSwyNiBAQAogCiBt
b2R1bGUgc3RvcmFnZSB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uc3Ry
dWN0b3JUZW1wbGF0ZT1FdmVudAotICAgIF0gU3RvcmFnZUV2ZW50IDogRXZlbnQgewotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yXSBET01T
dHJpbmcga2V5OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0luaXRpYWxpemVkQnlFdmVu
dENvbnN0cnVjdG9yLCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBv
bGRWYWx1ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbml0aWFsaXplZEJ5RXZlbnRD
b25zdHJ1Y3RvciwgVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgbmV3
VmFsdWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29u
c3RydWN0b3JdIERPTVN0cmluZyB1cmw7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3JdIFN0b3JhZ2Ugc3RvcmFnZUFyZWE7CisgICAgXSBp
bnRlcmZhY2UgU3RvcmFnZUV2ZW50IDogRXZlbnQgeworICAgICAgICBbSW5pdGlhbGl6ZWRCeUV2
ZW50Q29uc3RydWN0b3JdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5OworICAgICAg
ICBbSW5pdGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IsIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5n
QXM9TnVsbF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBvbGRWYWx1ZTsKKyAgICAgICAg
W0luaXRpYWxpemVkQnlFdmVudENvbnN0cnVjdG9yLCBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0Fz
PU51bGxdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmV3VmFsdWU7CisgICAgICAgIFtJ
bml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyB1cmw7CisgICAgICAgIFtJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rvcl0gcmVhZG9ubHkg
YXR0cmlidXRlIFN0b3JhZ2Ugc3RvcmFnZUFyZWE7CiAKLSAgICAgICAgdm9pZCBpbml0U3RvcmFn
ZUV2ZW50KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB0eXBlQXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGJvb2xlYW4gY2FuY2VsYWJs
ZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBET01TdHJpbmcga2V5QXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsVHJlYXROdWxsQXM9TnVsbFN0
cmluZ10gRE9NU3RyaW5nIG9sZFZhbHVlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsVHJlYXROdWxsQXM9TnVsbFN0cmlu
Z10gRE9NU3RyaW5nIG5ld1ZhbHVlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyB1cmxBcmcsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gU3RvcmFnZSBzdG9yYWdlQXJlYUFyZyk7CisgICAgICAgIHZvaWQgaW5pdFN0b3JhZ2VFdmVu
dChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdHlwZUFyZywgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gRE9NU3RyaW5nIGtleUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGlu
IERPTVN0cmluZyBvbGRWYWx1ZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLFRyZWF0TnVsbEFzPU51bGxTdHJpbmddIGluIERP
TVN0cmluZyBuZXdWYWx1ZUFyZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJpbmcgdXJsQXJnLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFN0
b3JhZ2Ugc3RvcmFnZUFyZWFBcmcpOwogCiAgICAgICAgIC8vIE5lZWRlZCBvbmNlIHdlIHN1cHBv
cnQgaW5pdDxibGFuaz5FdmVudE5TCiAgICAgICAgIC8vIHZvaWQgaW5pdFN0b3JhZ2VFdmVudE5T
KGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIGluIERPTVN0cmluZyB0eXBlQXJnLCBpbiBib29s
ZWFuIGNhbkJ1YmJsZUFyZywgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCBpbiBET01TdHJpbmcg
a2V5QXJnLCBpbiBET01TdHJpbmcgb2xkVmFsdWVBcmcsIGluIERPTVN0cmluZyBuZXdWYWx1ZUFy
ZywgaW4gRE9NU3RyaW5nIHVybEFyZywgaW4gU3RvcmFnZSBzdG9yYWdlQXJlYUFyZyk7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNv
bnRyb2wuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwKaW5k
ZXggOWM3NDhjOTJlYjdhMzM4MDEwY2Y0NWVmNGQ5ZGM2MTIyM2MxYzJjYi4uMmEyOTAzOTU2NTBh
ODQwMGUwMjdiODIxZTRlMGZmY2JkNTkyNjI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL0VsZW1l
bnRUaW1lQ29udHJvbC5pZGwKQEAgLTI2LDE1ICsyNiwxNSBAQAogIAogbW9kdWxlIHN2ZyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAg
ICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gRWxlbWVudFRp
bWVDb250cm9sIHsgCisgICAgXSBpbnRlcmZhY2UgRWxlbWVudFRpbWVDb250cm9sIHsgCiAgICAg
ICAgIHZvaWQgYmVnaW5FbGVtZW50KCk7Ci0gICAgICAgIHZvaWQgYmVnaW5FbGVtZW50QXQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgb2Zmc2V0KTsKKyAgICAgICAgdm9p
ZCBiZWdpbkVsZW1lbnRBdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBv
ZmZzZXQpOwogICAgICAgICB2b2lkIGVuZEVsZW1lbnQoKTsKLSAgICAgICAgdm9pZCBlbmRFbGVt
ZW50QXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgb2Zmc2V0KTsKKyAg
ICAgICAgdm9pZCBlbmRFbGVtZW50QXQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4g
ZmxvYXQgb2Zmc2V0KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5p
ZGwKaW5kZXggNjg2NTAzYmU4NGNlYmEwZmVhNzQxYjcxM2FlNzRhNDcxNzFmZDAyNC4uYzkxOGNl
N2JmYjdmOTc5M2FkNTQ0NjRhODAxODQ2ZWQ5ZWIwMGJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQUVsZW1lbnQg
OiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0FFbGVtZW50IDogU1ZHRWxlbWVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZl
cmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
VGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
TGFuZ1NwYWNlLApAQCAtMzcsNCArMzcsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIHRhcmdldDsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmlkbAppbmRleCBiNGI0
NGQyYzJjMjk3ZWVlYzYzZTgxNjU0OTMxZmUzM2ZhNDQzODI1Li5hMDVjNjYzODRiZDM1ZDUzMzQz
MzcxOGMxMDE2Zjg0ODNhY2Q5YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QWx0R2x5cGhEZWZFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhEZWZFbGVtZW50LmlkbApAQCAtMTksOCArMTksOCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAg
IGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UU10gU1ZHQWx0R2x5cGhEZWZFbGVt
ZW50IDogU1ZHRWxlbWVudCB7CisgICAgW0NvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFNdIGludGVy
ZmFjZSBTVkdBbHRHbHlwaERlZkVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaWRsCmluZGV4IDg2NWRi
ZGQ4YjUzYWNiYTBiMDVmZjRjOGI5ZWFiZjRhOTM4MDhkNDguLjJjNWE2MjNlNTczNDUxZDdkMzA5
MjM2ZmI3NmQ0NjJjOGVkNzVhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bHRHbHlwaEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVs
ZW1lbnQuaWRsCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTLAotICAgIF0gU1ZHQWx0
R2x5cGhFbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNl
IHsKKyAgICBbCisgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKKyAgICBdIGludGVy
ZmFjZSBTVkdBbHRHbHlwaEVsZW1lbnQgOiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdV
UklSZWZlcmVuY2UgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGdseXBoUmVmCi0gICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBmb3JtYXQKLSAg
ICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5pZGwKaW5kZXggYTk4NDQzY2U4OWZjMjliZWY3NjFi
MzE4NmNiMjgxYWNjM2U3OTM1Ny4uYWU1YTBhZDg1NDI1OTg2ODgzNDQwMWY0OTNlNzE1Yzc2NmZm
NmEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50Lmlk
bApAQCAtMTksOCArMTksOCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29u
ZGl0aW9uYWw9U1ZHJlNWR19GT05UU10gU1ZHQWx0R2x5cGhJdGVtRWxlbWVudCA6IFNWR0VsZW1l
bnQgeworICAgIFtDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTXSBpbnRlcmZhY2UgU1ZHQWx0R2x5
cGhJdGVtRWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5nbGUuaWRsCmluZGV4IDI0YWI2MmY4OWUyYWUxMThlZGRmY2E0OWI3MDYyYmEyODdlODlk
NTQuLmFiM2JmMTE4YTA2NzdiODQ0NTczMmIzMzE0OTJjY2I5OTYwNjIxZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmlkbApAQCAtMjIsOSArMjIsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuZ2xl
IHsgCisgICAgXSBpbnRlcmZhY2UgU1ZHQW5nbGUgeyAKICAgICAgICAgLy8gQW5nbGUgVW5pdCBU
eXBlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05PV04g
PSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lG
SUVEID0gMTsKQEAgLTMzLDExICszMywxMSBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9HUkFEID0gNDsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
U3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB2YWx1ZTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0czsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHZhbHVlOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOwogCi0g
ICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVl
QXNTdHJpbmcKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWVBc1N0
cmluZworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzKGluIHVuc2lnbmVk
IHNob3J0IHVuaXRUeXBlLCBpbiBmbG9hdCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTQ2LDQgKzQ2LDQgQEAgbW9kdWxlIHN2ZyB7
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaWRsCmluZGV4IDIyNDBm
YzFlZTcwNGYwZWUyNTdlZTZiMjhiYjUwNTFjM2VkNTU1NGYuLjE2M2U5ZTVmNTVjODY0ZWJlYzY2
NjY5YWM1Y2JjMzUyOTIzYzY4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlQ29sb3JFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdB
bmltYXRlQ29sb3JFbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZh
Y2UgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudCA6IFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmlkbAppbmRleCAw
MTM2MTVhNjJiMjM0YWNkNTBiMjc0ODA3MmU3MzM3MzFjN2UwNzAxLi5jN2JiYjhhNWJkOWNjZTQ1
ZGY3MWY0YTZjYjEzZDhkMzU5MzUyMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1h
dGVFbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHQW5p
bWF0ZUVsZW1lbnQgOiBTVkdBbmltYXRpb25FbGVtZW50IHsKICAgICB9OwogCi19Cit9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmlkbAppbmRleCBi
ZDA5YjNjMzhkZDZmOWJlMWYzY2I2MTZlMTQwMGU0YWVlZmQzNDJhLi5lY2NmZTIxNzk5OTUwZDA3
YWMxNmVmMTllNjgyNGU5ZjRmYWJjN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAg
XSBTVkdBbmltYXRlTW90aW9uRWxlbWVudCA6IFNWR0FuaW1hdGlvbkVsZW1lbnQgeworICAgIF0g
aW50ZXJmYWNlIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnQuaWRsCmluZGV4IDc2MDUzYWM2MDBhOTkzODczZWMwZjNmNTM0ZGNkNGUz
MWM5NmQ3MTEuLmFiYTE5OWE0OWQ3NTE0OTQxZjRjMjA4MzBlNzMyYTRkYjA0ODI2ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmlkbApA
QCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnQgOiBTVkdBbmltYXRpb25FbGVtZW50IHsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsCmluZGV4IGJkZWZmNjI3ZDEyMGYx
Yjg3NjA3MjVhYTAwN2IwNDAxNTMyODM5YmYuLjE5NDA5OWJlNzI1MWI2NTZkMTRlZTM0ZWQxNWI0
YjMwNTc4YjdmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFu
Z2xlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5pZGwKQEAg
LTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkQW5nbGUgeworICAg
IF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkQW5nbGUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5nbGUgYmFzZVZhbDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuZ2xl
IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZEJvb2xlYW4uaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVk
Qm9vbGVhbi5pZGwKaW5kZXggYTcyNTJkNjIzYTZlMmZmMTAyN2M4NDI4OTZlYjFmMGNlZmM0MGI3
MS4uZTQ4ZTk5ZWMwYjc2Zjk3ZTVkZDQ1YzUxYjVkNzI4NDc2YzY4MmIzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkQm9vbGVhbiB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBib29sZWFuIGJhc2VWYWwKLSAgICAgICAgICAgIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlZEJvb2xlYW4gewor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgYm9vbGVhbiBiYXNlVmFsCisg
ICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gYW5pbVZhbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaWRsCmluZGV4IDBkNDNhYmRhYTZjMzhmN2Yw
ZTRhMzgzNWEzYjNlNjBmODhiYjE0MzEuLjQxZGFkYTI0NzM0ZWI2YmZlNzY3NTY2YTEwMDczNWFi
Y2U3YmE0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bi5pZGwKQEAgLTI1LDEyICsyNSwxMiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkRW51
bWVyYXRpb24gewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gdW5zaWdu
ZWQgc2hvcnQgYmFzZVZhbAotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24geworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYmFzZVZhbAorICAgICAg
ICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCBhbmltVmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsCmluZGV4IGE4YzA3ZWExODRlYTI4YTM4ZGFjMjAz
NWE0MjZkNTg4MjE5MTRhYWMuLmM4YWEwOTU1NzAyODM1YmVhYWMzMDA2ZTljZWFiZDk0ZGNiYjg3
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXIuaWRsCkBAIC0yNSwx
MiArMjUsMTIgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZEludGVnZXIgewotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gbG9uZyBiYXNlVmFsCi0gICAgICAgICAg
ICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgXSBpbnRlcmZhY2UgU1ZHQW5pbWF0
ZWRJbnRlZ2VyIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGxvbmcg
YmFzZVZhbAorICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nIGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaWRsCmluZGV4IDFiYjczMTdiNDlmMDM3YjNlY2Ex
MDRjMjU3YzU3YTI5M2MyNWFiYzIuLmU5NGYyNjJlNzNjNjlkMTQ1YWIxMWM3NGQ3Zjg2MTI5NDNk
YzUzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbApAQCAtMjUs
MTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRMZW5ndGggeworICAgIF0g
aW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0xlbmd0aCBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3Ro
IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5pZGwKaW5kZXggZDAyYzk5OGMyOGJkODUyMWMyZDU0YjkxODJmYTdlNzU3
OTUwZmQ0My4uMzU2NDFmNmRmYTNjZjgwMDY0OGEzMTMxMzZmY2Q5MDliMTBjOWY0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwKQEAgLTI1LDExICsy
NSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB7CisgICAgXSBp
bnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0xlbmd0aExpc3QgYmFzZVZhbDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0xlbmd0aExpc3QgYW5pbVZhbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZE51bWJlci5pZGwKaW5kZXggZWQwYzM5NTNlZjIwYjM0N2Y2NzAzYTM4YzIwMGQz
OWI0ZTRhZTAyOC4uZDFkZjM1ZDQyYTk4MDhkYzZiMGQxMDc1MDIyMGVmNGVmMmQ4YjUyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXIuaWRsCkBAIC0yNiwxMiArMjYsMTIg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZE51bWJlciB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCBiYXNlVmFsCi0gICAgICAgICAgICBzZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgXSBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXIg
eworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgYmFzZVZhbAor
ICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBmbG9hdCBhbmltVmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRsCmluZGV4IGI2NDQ5MzhjMDM3MjVkNWJhN2Jk
ZTgyY2U3YjkyNjUwM2MxZjUzOTMuLmVkYjllYTY5NzFmYWJlNzFlYmQ4NDFmY2EyYzZlNjJjMDQx
MjhkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxp
c3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaWRs
CkBAIC0yNSwxMSArMjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdBbmltYXRlZE51bWJlckxp
c3QgeworICAgIF0gaW50ZXJmYWNlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdOdW1iZXJMaXN0IGJhc2VWYWw7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdOdW1iZXJMaXN0IGFuaW1WYWw7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8u
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5p
ZGwKaW5kZXggZTViMWU4YjRjYjUyZDA4N2M4MjYzNDBlZWU0ZGJjMDA0ZWIxMDM3MS4uMDQ1NWFm
ZWI1Y2M1MTc5YjFhOTBkNDk5NDQ5OGVjYzU3MGU5YzFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwKQEAgLTI1LDEx
ICsyNSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
byB7CisgICAgXSBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gYmFzZVZhbDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8gYW5pbVZh
bDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUmVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbApp
bmRleCBkNTg5NzM4MmJjYjE0YmQ3NzJiZWNiNDQ4N2U5NmYzMzZlNjlkN2Y2Li42M2FiZTg4N2Ri
NjczNjg0YWYxMGU4MWY5MzBlYjU0Mjg3MWFhMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRSZWN0LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5p
bWF0ZWRSZWN0IHsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlZFJlY3QgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHUmVjdCBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHUmVjdCBhbmltVmFsOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkU3RyaW5nLmlkbAppbmRleCA3ODA0ZGZhYjQ2MjlhZTgzMTE5MzFlYmRkODRj
YWQ5YzkyNzUxZWViLi5jZTM1MTcyYmZhMTQxNjllNDg5Mjg4ZGQ1MTFlMTU2OWE5MDUzMDY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFN0cmluZy5pZGwKQEAgLTI1LDEyICsyNSwx
MiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0FuaW1hdGVkU3RyaW5nIHsKKyAgICBdIGludGVyZmFj
ZSBTVkdBbmltYXRlZFN0cmluZyB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYmFzZVZh
bAotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAg
c2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYW5pbVZhbDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmlkbAppbmRleCBiNmFhODRlMmYxZjJhMDkxOTMxMTEz
N2U4MzhlYjBkNjA3N2I0Zjg4Li45ODJkZjM0OWUxMWI2OWZmMjAwY2FhM2VjZGMzOTU2MzQwMTY5
ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1M
aXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHQW5pbWF0ZWRUcmFu
c2Zvcm1MaXN0IHsKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3Qgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3JtTGlzdCBiYXNlVmFsOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3JtTGlzdCBhbmltVmFsOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5pZGwKaW5k
ZXggNTMyNjAzYzFiZjYyNzAzMDY1ZGQ1YmYwNGNiY2I5M2Q1ZjUxODZiZC4uMGYwOGM3OTc5ZGIz
ZTA5NGFlMDZiM2M2ZDM3NWMyNjNkOTBkNzkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAg
ICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBTVkdBbmltYXRpb25FbGVtZW50IDogU1ZHRWxlbWVu
dCwKKyAgICBdIGludGVyZmFjZSBTVkdBbmltYXRpb25FbGVtZW50IDogU1ZHRWxlbWVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rl
c3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsZW1lbnRUaW1lQ29udHJvbCB7CkBAIC00
MCw0ICs0MCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50Lmlk
bAppbmRleCA1MGI4NGJkN2I5OTM0ODVhMTEzZmI5MTM3OGIyNzE0MGExZGNhOGZhLi5kZjFlZjkz
ZTJlMTE5NmFiNjFhYjY4NjVmZjJhYTgxNzIyZDI0N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NpcmNsZUVsZW1lbnQuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZH
Q2lyY2xlRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHQ2lyY2xlRWxl
bWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
CkBAIC0zOSw0ICszOSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbAppbmRleCA1ZDM0NmY0MTk1ZDlkMjRkNzBiZTIzNjcx
M2ZkOGZjZDdiM2NjZTYzLi45MDYxNDI4YTYxZWE0YzM4YTY1MDQ3NDgwYmM4ZDEwMmEwOWNhMGUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmlkbApAQCAtMjYsOSAr
MjYsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0NsaXBQYXRoRWxlbWVudCA6IFNWR0VsZW1lbnQs
CisgICAgXSBpbnRlcmZhY2UgU1ZHQ2xpcFBhdGhFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNW
R0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTM4LDQgKzM4LDQgQEAg
bW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1l
cmF0aW9uIGNsaXBQYXRoVW5pdHM7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDb2xvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29sb3Iu
aWRsCmluZGV4IDg4N2FkODRjNzBlNWFmYTU3OGI5MjQ3ZGQ5MmZlZjdhZGM3NmY3OTAuLjY3OTIy
NTI1NjBmOTVmNGM2NTA4YzI4NDNiM2QwNDUxYTA2NjVhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDb2xvci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbG9y
LmlkbApAQCAtMjEsOSArMjEsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0NvbG9yIDogQ1NTVmFs
dWUgeworICAgIF0gaW50ZXJmYWNlIFNWR0NvbG9yIDogQ1NTVmFsdWUgewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQ09MT1JUWVBFX1VOS05PV04gPSAwOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQ09MT1JUWVBFX1JHQkNPTE9SID0gMTsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDI7CkBA
IC00Myw0ICs0Myw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5pZGwK
aW5kZXggMWVkZDVjZmIyMDQ2MmU1Yjk1YjRhNzljNDlmNDRlMmUxNGQxNmQzOS4uYmM1Nzc3OGJm
NTg4ZTRhMmJhMGQ5ZWFhNmVhMTAxNWI3MDIxYmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaWRsCkBA
IC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAg
IFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMsCiAgICAgICAgIERvTm90Q2hlY2tD
b25zdGFudHMKLSAgICBdIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IDogU1ZH
RWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICAgICAgLy8gQ29tcG9uZW50IFRyYW5zZmVyIFR5cGVz
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZ
UEVfVU5LTk9XTiAgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01Q
T05FTlRUUkFOU0ZFUl9UWVBFX0lERU5USVRZID0gMTsKQEAgLTQ2LDQgKzQ2LDQgQEAgbW9kdWxl
IHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciAgICAg
IG9mZnNldDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0N1cnNvckVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuaWRsCmluZGV4IDJjOGI1ZjVkMWMxOWE4NTY2NzIxOWVlM2NkNGRhNTRlNWMyOTA2MmIuLmIz
MjUzOTA2NzcyMjNlYTk2YjRlZjM5MjZlOGM2NDYzMWNmZGM0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ3Vyc29yRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAg
XSBTVkdDdXJzb3JFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdDdXJz
b3JFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCB7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5pZGwKaW5kZXggOGNiMmIwODYzZTBhOTg4MjgwMzk3OGU3
ZGUzZDNhZjgwZTJmMTY1ZS4uMzdiMWVlNTlhM2M3MTQ3YjE3M2I2NGYzNjMxNWNlODc2ZmQ1OGM5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBA
CiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVNWRwotICAgIF0gU1ZHRGVmc0VsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50
ZXJmYWNlIFNWR0RlZnNFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwKQEAgLTM1LDQgKzM1LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZSB7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZXNjRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaWRsCmluZGV4IGI3
YjMzYzIwYTNkZjk5ODc2NWYwZWZkMTZmZWQ3ZGJjMmQ4YmNjZTcuLjdlZDFlNjk1ZjU1MGVhY2Mw
Yjk4OWYwN2NhMTc3OTlmNWE1Mjk1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdEZXNjRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50
LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHRGVzY0VsZW1lbnQg
OiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0Rlc2NFbGVtZW50IDogU1ZHRWxlbWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdM
YW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHU3R5bGFibGUgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRG9jdW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50
LmlkbAppbmRleCAyZjlhYmZjMmVkYjg4MWQ2YjE5ZDM2MTc4MjU1NTczZThlMjA2MzYxLi5lMWVi
NTFmMzg4MDMwMzFkYzg3MjJlOWM2OWFmODJkOWEzNTdhOGFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
b2N1bWVudC5pZGwKQEAgLTIxLDE1ICsyMSwxNSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIFY4Q3Vz
dG9tVG9KU09iamVjdAotICAgIF0gU1ZHRG9jdW1lbnQgOiBEb2N1bWVudCB7CisgICAgXSBpbnRl
cmZhY2UgU1ZHRG9jdW1lbnQgOiBEb2N1bWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdTVkdFbGVtZW50ICAgICAgICByb290RWxlbWVudDsKIAogICAgICAgICAvLyBPdmVyd3Jp
dGUgdGhlIG9uZSBpbiBldmVudHM6OkRvY3VtZW50RXZlbnQKLSAgICAgICAgRXZlbnQgY3JlYXRl
RXZlbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGV2ZW50VHlw
ZSkKKyAgICAgICAgRXZlbnQgY3JlYXRlRXZlbnQoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5pZGwKaW5kZXggNDFh
ZTljMjRkYjI5MTRhMDhkMzNmMjM1N2I3ODAwOWEyMzhiYjNjZS4uNTQ3Mzk4M2E2ODJlYTdhOGY0
MDg2OGM0NmI4OGM2ODdmNDIxZjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmlkbApAQCAt
MjIsMTUgKzIyLDE1IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBb
CiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHLAogICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIFNWR0VsZW1lbnQgOiBFbGVt
ZW50IHsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgaWQ7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIHhtbGJhc2Ugc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIF0gaW50ZXJmYWNlIFNWR0VsZW1lbnQgOiBF
bGVtZW50IHsKKyAgICAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7CisgICAg
ICAgIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHhtbGJhc2Ug
c2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdT
VkdFbGVtZW50IG93bmVyU1ZHRWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0VsZW1lbnQgdmlld3BvcnRFbGVtZW50OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsCmluZGV4IDljNzE3NWM3YmZlMTAyMWYyM2ZkNjdk
NjU4ZTJjNzcyMTVkMmZhM2UuLmYxZmVkM2E1Y2IyYWQ3MzI4NTNkOTI5N2U0MDA2ZjgzMWRmMGIw
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaWRsCkBAIC0yNiwx
MSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAg
ICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0Ci0gICAgXSBTVkdFbGVtZW50SW5zdGFuY2UK
KyAgICBdIGludGVyZmFjZSBTVkdFbGVtZW50SW5zdGFuY2UKICNpZiBkZWZpbmVkKExBTkdVQUdF
X09CSkVDVElWRV9DKSAmJiBMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAgICA6IE9iamVjdCwg
RXZlbnRUYXJnZXQKICNlbmRpZiAvKiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSAqLwpA
QCAtNDYsNTUgKzQ2LDU1IEBAIG1vZHVsZSBzdmcgewogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0
CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJ
VkVfQwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25h
Ym9ydDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
Ymx1cjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
Y2hhbmdlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIg
b25jbGljazsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVy
IG9uY29udGV4dG1lbnU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRM
aXN0ZW5lciBvbmRibGNsaWNrOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25lcnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBF
dmVudExpc3RlbmVyIG9uZm9jdXM7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0g
RXZlbnRMaXN0ZW5lciBvbmlucHV0OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVd
IEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFi
bGVdIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ua2V5dXA7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmxvYWQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51
bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbm1vdXNlZG93bjsKLSAgICAgICAgYXR0cmlidXRlIFtO
b3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3ZlOwotICAgICAgICBhdHRyaWJ1
dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZW91dDsKLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ubW91c2VvdmVyOwotICAgICAg
ICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXVwOwotICAg
ICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25tb3VzZXdoZWVs
OwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25iZWZv
cmVjdXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBv
bmN1dDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9u
YmVmb3JlY29weTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uY29weTsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3Rl
bmVyIG9uYmVmb3JlcGFzdGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZl
bnRMaXN0ZW5lciBvbnBhc3RlOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2
ZW50TGlzdGVuZXIgb25kcmFnZW50ZXI7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJs
ZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOwotICAgICAgICBhdHRyaWJ1dGUgW05vdEVudW1l
cmFibGVdIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyb3A7Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90
RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbmRyYWdzdGFydDsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZHJhZzsKLSAgICAgICAgYXR0cmlidXRl
IFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKLSAgICAgICAgYXR0cmli
dXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnJlc2l6ZTsKLSAgICAgICAgYXR0
cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2Nyb2xsOwotICAgICAgICBh
dHRyaWJ1dGUgW05vdEVudW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdDsKLSAgICAg
ICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbTm90RW51bWVyYWJsZV0gRXZlbnRMaXN0ZW5lciBvbnN1Ym1p
dDsKLSAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVtZXJhYmxlXSBFdmVudExpc3RlbmVyIG9udW5s
b2FkOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25h
Ym9ydDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
Ymx1cjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
Y2hhbmdlOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25jbGljazsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uY29udGV4dG1lbnU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmRibGNsaWNrOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25lcnJvcjsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9uZm9jdXM7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUg
RXZlbnRMaXN0ZW5lciBvbmlucHV0OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25rZXlkb3duOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25rZXlwcmVzczsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ua2V5dXA7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmxvYWQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBh
dHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbm1vdXNlZG93bjsKKyAgICAgICAgW05vdEVudW1lcmFi
bGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubW91c2Vtb3ZlOworICAgICAgICBbTm90RW51
bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZW91dDsKKyAgICAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ubW91c2VvdmVyOworICAgICAg
ICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZXVwOworICAg
ICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25tb3VzZXdoZWVs
OworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25iZWZv
cmVjdXQ7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmN1dDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9u
YmVmb3JlY29weTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uY29weTsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9uYmVmb3JlcGFzdGU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbnBhc3RlOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2
ZW50TGlzdGVuZXIgb25kcmFnZW50ZXI7CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1
dGUgRXZlbnRMaXN0ZW5lciBvbmRyYWdvdmVyOworICAgICAgICBbTm90RW51bWVyYWJsZV0gYXR0
cmlidXRlIEV2ZW50TGlzdGVuZXIgb25kcmFnbGVhdmU7CisgICAgICAgIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRyb3A7CisgICAgICAgIFtOb3RFbnVtZXJhYmxl
XSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmRyYWdzdGFydDsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZzsKKyAgICAgICAgW05vdEVudW1l
cmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZHJhZ2VuZDsKKyAgICAgICAgW05vdEVu
dW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7CisgICAgICAgIFtOb3RF
bnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnJlc2l6ZTsKKyAgICAgICAgW05v
dEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2Nyb2xsOworICAgICAgICBb
Tm90RW51bWVyYWJsZV0gYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CisgICAgICAg
IFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnNlbGVjdDsKKyAgICAg
ICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7
CisgICAgICAgIFtOb3RFbnVtZXJhYmxlXSBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnN1Ym1p
dDsKKyAgICAgICAgW05vdEVudW1lcmFibGVdIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9udW5s
b2FkOwogCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVy
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1
c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4g
Ym9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGlu
IERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2
ZW50TGlzdGVuZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBi
b29sZWFuIGRpc3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZlbnQpCiAgICAgICAgICAgICByYWlzZXMo
RXZlbnRFeGNlcHRpb24pOwogI2VuZGlmIC8qIGRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0Mp
ICovCiAgICAgfTsKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudEluc3RhbmNlTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5pZGwKaW5kZXggOTQyOWRhNzE5MzIwYjA4NDEwOWUyMmYwNTNlMTg1YWJlMGVlODA4
OC4uYTcwOWViMzUzMzU5ZDQ5ZTc3MGZhYmIzY2M2MzgwZDI5OGJhNzFiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmlkbApAQCAtMjQsMTEgKzI0LDEx
IEBACiAgKi8KIAogbW9kdWxlIHN2ZyB7Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHRWxlbWVudEluc3RhbmNlTGlzdCB7CisgICAgXSBp
bnRlcmZhY2UgU1ZHRWxlbWVudEluc3RhbmNlTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKIAotICAgICAgICBTVkdFbGVtZW50SW5zdGFuY2Ug
aXRlbShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4
KTsKKyAgICAgICAgU1ZHRWxlbWVudEluc3RhbmNlIGl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgfTsKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmlkbAppbmRleCA3YzI5MWRkY2NjZTJjNmNmMDQ1
MDU4YWRjNTI5ZTkzNDc1NDIzZDFlLi4xZDNkYTNhODI4ZmJlNjFjN2UxNjBmZWY2MDNmMWE2ZThj
MjRjOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5pZGwKQEAgLTI1
LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdFbGxpcHNlRWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRWxsaXBzZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3Rz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNW
R0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzksNCArMzksNCBAQCBt
b2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3Ro
IHJ5OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RXhjZXB0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24uaWRsCmluZGV4
IDU3MjU1YzM2MTQwNTA5MTM3NDJhZmU0Y2RlZDc4MDg5YWM1ZTg3YjAuLjUyYjI4YTJiNjA4ZjU2
MmRlMDZiZmFmY2U4N2U2NDBiMDJlM2QxOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFeGNlcHRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24u
aWRsCkBAIC0yMCwxMCArMjAsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBleGNlcHRpb24g
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBEb05vdENoZWNrQ29u
c3RhbnRzCi0gICAgXSBTVkdFeGNlcHRpb24geworICAgIF0gZXhjZXB0aW9uIFNWR0V4Y2VwdGlv
biB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29kZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKQEAgLTM5
LDQgKzM5LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19JTlZBTElEX1ZBTFVFX0VSUiA9IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19NQVRSSVhfTk9UX0lOVkVSVEFCTEUgPSAyOwogICAgIH07Ci19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaWRsCmluZGV4IGE2
NTBjOGY4ZGEzNjRjZmM5MGYyZGIwMjIwZTM1NTNmNTZhODU3YmIuLmRiOGY1MTJlOWY3ZDY1ODNh
OTg2ZTY1MzdjYWVhYjE0NDMyZDhiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5pZGwKQEAgLTI2LDEzICsyNiwxMyBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TVkcsCiAgICAgICAgIE9iakNQcm90b2NvbCwKICAgICAgICAgU3VwcHJlc3NUb0pTT2JqZWN0
LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQgeyAKKyAgICBdIGludGVyZmFjZSBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsg
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEJvb2xlYW4gZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUJsZW5kRWxlbWVudC5pZGwKaW5kZXggMjg4MDU5YzQxMTYyZjMzNWVhNTg2N2E4YjRlYzYyYzky
NjIxNmIyZC4uZDIwNzg0NjNkMTZiYjRjYzllZThlNmM0Yjc2ODgzNGRkMzZhMzhlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAK
IAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1ZHJkZJTFRFUlMsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFNW
R0ZFQmxlbmRFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdGRUJsZW5k
RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAgICAgICAgIC8vIEJsZW5kIE1vZGUgVHlw
ZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9VTktOT1dO
ICA9IDA7CkBAIC00Myw0ICs0Myw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtb2RlOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmlkbAppbmRleCA2
YjE4MDYxZTJiMTlhODA1ZWNlZWIyMzgwZjhhMGRiNTg4ODQ5NGRmLi5hMzM2YmQwMmMyNzhhNDc4
YTMwNGJmZWE5NTMyM2Y4N2MzNDJkNGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbG9yTWF0cml4RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3Zn
IHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklM
VEVSUywKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgLy8gQ29sb3IgTWF0
cml4IFR5cGVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklY
X1RZUEVfVU5LTk9XTiAgICAgICAgICA9IDA7CkBAIC00Miw0ICs0Miw0IEBAIG1vZHVsZSBzdmcg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0ICB2YWx1
ZXM7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaWRsCmluZGV4IGJmNjk5MTViZjEyNmUxNWNlYjU1MmI3
ZjhlOTJjYWIyNjY1Y2FmYWYuLjUwYTA2YTY4YzMwZTU5ZDc0NzEwYzgzNWRlMDE5MDUyODlkNzFk
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50LmlkbApAQCAtMjUsMTEgKzI1LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAg
XSBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRl
cmZhY2UgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5pZGwKaW5kZXggNzY4NDBlNTdm
YmUxYzhlMWE3ZDAyMDU1YTRkMTM2ZjcwOGNmNjNmZi4uNDE1Mjg4MDE3MDZiMjJlMDdjNzRkNzk4
NzE3YTgzMmExNWYwYWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29t
cG9zaXRlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRl
RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUywKICAgICAg
ICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHRkVDb21wb3NpdGVFbGVtZW50IDogU1ZH
RWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQgOiBTVkdFbGVt
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgLy8gQ29tcG9zaXRlIE9wZXJhdG9ycwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfVU5LTk9XTiAg
ICA9IDA7CkBAIC00OCw0ICs0OCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgICAgICBrNDsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5pZGwKaW5k
ZXggZTc4MjE5ZDhhNTU1NTM4YjEyOTVkNWNjODI5MDMwMDhmYTBjMzQwMi4uYTc4NWRlOWM4ZWVk
MGJiYzMxMWUwYTI0MTU4NDBmYmM2ZmI1Yzg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAog
bW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9U1ZHJkZJTFRFUlMsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAg
ICAgICAgIC8vIEVkZ2UgTW9kZSBWYWx1ZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1ZHX0VER0VNT0RFX1VOS05PV04gICA9IDA7CkBAIC01MCw0ICs1MCw0IEBAIG1vZHVsZSBzdmcg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRCb29sZWFuICAgICBwcmVz
ZXJ2ZUFscGhhOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaWRsCmluZGV4IGY5ZmFjMTk1NzhhMjNlNjFmMTJj
Y2EzNWQ5NjlkZGRiYWVmYWMwMzAuLjBiNjllZTVjNDJhNTEyNzhkZTE3N2QwNDIwMjM3YWI4MTk4
OTU0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNl
IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZE51bWJlciBzdXJmYWNlU2NhbGU7CkBAIC0zNiw0ICszNiw0IEBAIG1vZHVsZSBzdmcg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5p
dExlbmd0aFk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5pZGwKaW5kZXggMDcyOTU4NmRhZTY2M2E1ZDhmNGY4
ZmJiZTFkMDkwYzY5MmU2YTUzNy4uMjRjMjIyMTg5N2JkNDI5NWQzOWRmY2U4MmQ2NjYwYjFkZDVh
NGYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUywKICAgICAg
ICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgLy8gQ2hhbm5lbCBT
ZWxlY3RvcnMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfVU5LTk9X
TiA9IDA7CkBAIC00NCw0ICs0NCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB5Q2hhbm5lbFNlbGVjdG9yOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQuaWRsCmluZGV4IGQ4ZmY2ZmU1ZDhiMmJhNjIzNWRlNDQxNzQwNWRlY2ZhNzA1OWViMmEuLjY1
NDczMmI3ZWU2OGI3MzIzZjgzMTQwYThkMjgzMWU1MjNkYWY5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaWRsCkBAIC0yNSwxMSArMjUsMTEg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IFNW
R0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IFNW
R0VsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIg
YXppbXV0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGVs
ZXZhdGlvbjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuaWRsCmluZGV4IDNjN2Q3Y2U2YjEzZGNjODdlYTE5ZWQwN2E0ZGYwODk4
NDc4NTllNmYuLmNjZTBkY2YwZGYyYzQwOGZmYjg1YWY1NmE1N2Q4YzhiNGM1ZGY3MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5pZGwKQEAgLTE5LDkg
KzE5LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQg
OiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQgOiBT
VkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGR4OwpAQCAtMjksOCArMjksOCBA
QCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVt
YmVyIHN0ZERldmlhdGlvblg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZE51bWJlciBzdGREZXZpYXRpb25ZOwogCi0gICAgICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN0ZERldmlhdGlvblgsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCBzdGREZXZpYXRpb25ZKTsKKyAgICAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3RkRGV2aWF0aW9uWCwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGlu
IGZsb2F0IHN0ZERldmlhdGlvblkpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRmxvb2RFbGVtZW50LmlkbAppbmRleCA1M2NlMDQ3YmJkY2MxNmNjNDk0NjJiZGJmZDY5
ZDZlNWNhOGFhNzE3Li5mZDI1ZjMwNDMzMTExZjAxNThiZDRkYjZmMzBhODE4MDMwMjEwZTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFRmxvb2RFbGVtZW50IDogU1ZHRWxlbWVu
dCwKKyAgICBdIGludGVyZmFjZSBTVkdGRUZsb29kRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICB9OwotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaWRsCmluZGV4IGNhM2ZhMTExYTI0YWFkZWI2MmFiOGNk
M2JlNGE0NWJkMzNhMjFmYzUuLjQzYTNmMTliM2E3OTlkZTliYTZkMGZmZGEzM2Y5Mzg2NmVlMDk4
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmlkbApAQCAtMjUsOSAr
MjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVGdW5jQUVsZW1lbnQgOiBTVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVG
dW5jQUVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuaWRsCmluZGV4
IDA1ODFiMzlhZjA2ODNmNzQ5ZDdlYTZmMDMxMzFlMzg0YWYxYjJhNTAuLjMyZmFmYmNmOGUxNTE2
MDQ0OWJhNDE3ZjBjODRiYTliN2VlMjg1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0JFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0g
U1ZHRkVGdW5jQkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7
CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVGdW5jQkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jR0VsZW1lbnQuaWRsCmluZGV4IGFiMDkxNjEyMGNkZmFkMmY4NGY3YzI5ZmUzZDNmOWY5
ZTViNGQ0NjUuLjNkN2MyM2E4NDgwNjMxYmE2OWQzZTE5YjRhOWEwNGFiNTcwMTViZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVGdW5jR0VsZW1lbnQgOiBTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVGdW5jR0VsZW1l
bnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaWRsCmluZGV4IDU2NzhmOTlk
YjAxMmUzNzBlMTI2MWE2NjI5NGQ0YjhjZWNjMmM2MDIuLmMyYzkxNzQ4MTg5NjgxMWU3YjAyMGU4
NjFhMTFkMDRmMWQzOWRhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUZ1
bmNSRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50
LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVGdW5j
UkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CisgICAgXSBp
bnRlcmZhY2UgU1ZHRkVGdW5jUkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5pZGwKaW5kZXggMjU4NThmODBjN2U3ODk3MmRmNmNlZGU4MGE3
YmE5MDUxYzY1ZDc1YS4uYzBkOTk2ZTg1MTU2MDcyYzRkZGZhY2I4YTQ2N2UwMzEyYzAxODk0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5pZGwK
QEAgLTI1LDE2ICsyNSwxNiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMgeyAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5n
IGluMTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHN0ZERl
dmlhdGlvblg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBz
dGREZXZpYXRpb25ZOwogCi0gICAgICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHN0ZERldmlhdGlvblgsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCBz
dGREZXZpYXRpb25ZKTsKKyAgICAgICAgdm9pZCBzZXRTdGREZXZpYXRpb24oW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgc3RkRGV2aWF0aW9uWCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHN0
ZERldmlhdGlvblkpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmlkbAppbmRleCA5YTZjMGU4NWQzZWIxNzc4N2VlNmUzNjA1YWQ3MWE5MWJlMDgy
ZTNlLi41NDMzYjViZDcyZGY2Y2RiNDhiMDQyZmZkZDUzY2UyYjE2NmJkZmFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFSW1hZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBd
IGludGVyZmFjZSBTVkdGRUltYWdlRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZl
cmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LApAQCAtMzUsNCArMzUsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmlkbApp
bmRleCAxOGNmOTJjM2NjOTJlZjBhYmYxNDc3MmIxYWUwZGY5ZWZmOTExNzBjLi45YzU2ODk2ZDRm
MmNjMDRmZTNkY2M5MjY1MDk1MmRiMmEwZjBmNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlRWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUwot
ICAgIF0gU1ZHRkVNZXJnZUVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNW
R0ZFTWVyZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuaWRsCmluZGV4IGY2YjFkMjdkNzM1NjI5MDBkY2ZjZTdhMDM5Mjg4ZmRjMjdk
YmNhZjguLjAxMzM2NGQ4ZmVjODc4MTU1ZDU3MDM3YTc4ZmZiZTVhMWJiMDM3ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaWRsCkBAIC0yNSwxMCArMjUs
MTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCA6IFNW
R0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCA6IFNWR0Vs
ZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4x
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5
RWxlbWVudC5pZGwKaW5kZXggMjRjMGE0N2E5ZDBiMTYwZWY5NmVjNzEyNWRmODI4MWQyYzk1NjY2
NC4uNDViNmJiODY4MTA1MWM0YjQxNzAzMDZlZjM2NzhlYzU4YTA4ZGFiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEw
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRyZGSUxURVJTLAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAg
XSBTVkdGRU1vcnBob2xvZ3lFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogICAgICAg
ICAvLyBNb3JwaG9sb2d5IE9wZXJhdG9ycwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfTU9SUEhPTE9HWV9PUEVSQVRPUl9VTktOT1dOICA9IDA7CkBAIC00MCw4ICs0MCw4IEBAIG1v
ZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIg
ICAgICByYWRpdXNYOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1i
ZXIgICAgICByYWRpdXNZOwogCi0gICAgICAgIHZvaWQgc2V0UmFkaXVzKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHJhZGl1c1gsIAotICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCByYWRpdXNZKTsKKyAgICAg
ICAgdm9pZCBzZXRSYWRpdXMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQg
cmFkaXVzWCwgCisgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHJhZGl1c1kpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRsCmluZGV4IDk1Zjk1NjVjMmE2MGIzYjc5ZjcwYTgw
MjZjYzljZGQ3NmJkZTQ4NWYuLjljMmVlNGVhYmFmYzBmZTEwMGUwM2Y0OWEyYWJkYTYyZWZhYjlm
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaWRsCkBAIC0yNSwx
MyArMjUsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFT2Zmc2V0RWxlbWVudCA6
IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHRkVPZmZzZXRFbGVtZW50IDogU1ZHRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGR4OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHQW5pbWF0ZWROdW1iZXIgZHk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmlkbAppbmRleCBiNmRkMGZhODI4NTVjMzVmMjBh
OTBlYTg4NmFiMTFjN2U3MzQ3ZDE4Li43ZmUwYmQ5MjM4M2QyOWY4NDI5NzllYzhkNDY5MDU4YWE1
ZGU5ZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQu
aWRsCkBAIC0yNSwxMiArMjUsMTIgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2Ug
WworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFUG9p
bnRMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGRVBvaW50
TGlnaHRFbGVtZW50IDogU1ZHRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
VkdBbmltYXRlZE51bWJlciB4OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0
ZWROdW1iZXIgeTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVy
IHo7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmlkbAppbmRleCAzZGM0ZTM0NTg1MDllMzQyNGVkNGYxMTUw
ZWRiNWIyYjI5MzljMmIwLi5lMzQ2N2RlY2I4MGQ4Yjc0ZTA3OWJlZjViMzk4ZGFmZGZlYzIxODIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZGSUxURVJTCi0gICAgXSBTVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBT
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdB
bmltYXRlZE51bWJlciBzdXJmYWNlU2NhbGU7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBzdmcg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJF
eHBvbmVudDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LmlkbAppbmRleCAzNmMxMmViNTQ4MTI2MzYyOGVmODVhZDkzNTdlMDM2NzNh
YjBiNjMxLi43ZjVjMjU2OWFiOWI4OWI5MDdiMGQ0OWEwOTM3NzYxZjU5ODA4OGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmlkbApAQCAtMjUsOSArMjUs
OSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBD
b25kaXRpb25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRkVTcG90TGlnaHRFbGVtZW50IDogU1ZH
RWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHRkVTcG90TGlnaHRFbGVtZW50IDogU1ZHRWxl
bWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB4Owog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHo7CkBAIC0zOCw0ICszOCw0IEBA
IG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1i
ZXIgbGltaXRpbmdDb25lQW5nbGU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVRpbGVFbGVtZW50LmlkbAppbmRleCA2Yjg1M2U1ZGUwNjRlN2M5MTU3NGUwODQxZTlkZTBj
YTVlNjgwZjM1Li44MDI0MDBkMTBjMGUxNjA1NTEwZjQyMGRkNjAxZTZkYTZkODMzZjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaWRsCkBAIC0yNSwxMSArMjUsMTEgQEAK
IAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U1ZHJkZJTFRFUlMKLSAgICBdIFNWR0ZFVGlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LAor
ICAgIF0gaW50ZXJmYWNlIFNWR0ZFVGlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkU3RyaW5nIGluMTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaWRsCmluZGV4IDAwNjBmYmY5MjczYzE1YjQ2OWU0M2Ew
NTE1YmE3Nzk0NDYxMjYzNzMuLmQ0ODhmZmRkZjAyNDRkYWZmNWU4YzQwZDQ2ZmJjM2Y3YzJmZjE2
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5pZGwK
QEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmRklMVEVSUywKICAgICAgICAgRG9Ob3RDaGVj
a0NvbnN0YW50cwotICAgIF0gU1ZHRkVUdXJidWxlbmNlRWxlbWVudCA6IFNWR0VsZW1lbnQsCisg
ICAgXSBpbnRlcmZhY2UgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzIHsKICAgICAgICAgLy8gVHVyYnVsZW5jZSBUeXBlcwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX1VOS05PV04gICAgICA9IDA7CkBAIC00OCw0
ICs0OCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbiB0eXBlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRmlsdGVyRWxlbWVudC5pZGwKaW5kZXggZmYyZjQ5Njc5NzFjMDEzOGQyNjFjZjI3NzNhY2Nl
YjI3ZGQ2YmY3Ni4uMGIyZDA3NTMxOTcwNzIxZWFiMWYwYjM3YzAyZmY2NzEyMmE3ZGZjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmlkbApAQCAtMjYsOSArMjYsOSBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRp
b25hbD1TVkcmRklMVEVSUwotICAgIF0gU1ZHRmlsdGVyRWxlbWVudCA6IFNWR0VsZW1lbnQsCisg
ICAgXSBpbnRlcmZhY2UgU1ZHRmlsdGVyRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdM
YW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtNDMsOCArNDMsOCBAQCBtb2R1
bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciAg
ICAgZmlsdGVyUmVzWDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50
ZWdlciAgICAgZmlsdGVyUmVzWTsKIAotICAgICAgICB2b2lkIHNldEZpbHRlclJlcyhpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGZpbHRlclJlc1gsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1
bnNpZ25lZCBsb25nIGZpbHRlclJlc1kpOworICAgICAgICB2b2lkIHNldEZpbHRlclJlcyhbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiB1bnNpZ25lZCBsb25nIGZpbHRlclJlc1gsIAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biB1bnNpZ25lZCBsb25nIGZpbHRlclJlc1kpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaWRsCmluZGV4IDRiMWQzZmI0ODM3ZTA5MGYwNjNiMmI3MzIxMjk3YjhmNWNlMmFjYWQu
LjQ2OWNiNTI0OTY1YjQxNGUwZWFlNDE3ZTA2ZjdkYzhjOTc3MjQwY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaWRsCkBAIC0yNiwxMCArMjYsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBPYmpDUHJv
dG9jb2wKLSAgICBdIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyA6IFNWR1N0
eWxhYmxlIHsKKyAgICBdIGludGVyZmFjZSBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMgOiBTVkdTdHlsYWJsZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmlt
YXRlZExlbmd0aCB4OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5n
dGggeTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRo
OwpAQCAtMzcsNCArMzcsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkU3RyaW5nIHJlc3VsdDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmlkbAppbmRleCBhNTdhOGRkZjFkODI0OGE0NDg3ZWRkNTBl
OWNjMDliNzVkOGUyZmZiLi4yYjZlNjAyYjZmODI2YzdlYjc4ODQxNGE3ZmQ2N2YxOWY3ODVjYmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmlkbApAQCAtMjYsMTQgKzI2LDE0
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBTdXBwcmVzc1Rv
SlNPYmplY3QsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0gU1ZHRml0VG9WaWV3Qm94
IHsKKyAgICBdIGludGVyZmFjZSBTVkdGaXRUb1ZpZXdCb3ggewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWRSZWN0ICAgICAgICAgICAgICAgIHZpZXdCb3g7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2Vy
dmVBc3BlY3RSYXRpbzsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxl
bWVudC5pZGwKaW5kZXggMGI5NWQwZjI1NzcyMmU0MjBlNjgxMzgzMzZiNWMxMjljM2YyZTIxNi4u
MWJiYzQwNjMyZTRkY2MwODEyZjQ2YzBhZmUxNjNhOWIyYTRjM2UzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9udEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9O
VFMKLSAgICBdIFNWR0ZvbnRFbGVtZW50IDogU1ZHRWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2Ug
U1ZHRm9udEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbAppbmRleCAxZWVkMGUyN2RiZDRhNDg5MzJh
NDYzNjU0ODhiMTc3OWU3ODcyOThhLi41MGQxZDg1YzkyMTg5NDVmZGVkNzg3ZTI3MTVmMTE1NDUw
MGY1ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmlkbApAQCAt
MjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAgXSBTVkdGb250RmFjZUVsZW1l
bnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGb250RmFjZUVsZW1lbnQgOiBT
VkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VGb3JtYXRFbGVtZW50LmlkbAppbmRleCBhMDg0OGI5ODgwNjNiODY2OTIzNTQ5YTkw
OGNmMDYyNjllNzE0YmQ1Li4zM2E1MjlmYjhmMzJkNzBkMjJlMGVlNTQxOTNmNGJlOGRjNTY2NTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50Lmlk
bApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAgXSBTVkdGb250RmFj
ZUZvcm1hdEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdGb250RmFj
ZUZvcm1hdEVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaWRsCmluZGV4IDg0MDdjY2Y5ZDEw
Y2FlZmNjNDI3MmNiOThhZmQ4YmY1NWMyOTM1ZjMuLjkzN2I3MzkzNzNiYmYyN2I1Y2NkNWZiZDRj
ZWJlNWRjYTM5YWI5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRl
cmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHJlNWR19GT05UUwotICAgIF0g
U1ZHRm9udEZhY2VOYW1lRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmlkbAppbmRleCA3N2FmOGNk
YWVkYmYxNjBmY2ExOGVhMjc1NzE5ZjE5MTE4M2Q2NWQzLi4wMDk4N2JhYjgxNDVjNmU4ZWQ1NjYw
ZDVkYzYyOTk3MTQzZWNkY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VTcmNFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VT
cmNFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAg
XSBTVkdGb250RmFjZVNyY0VsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBT
VkdGb250RmFjZVNyY0VsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmlkbAppbmRleCBiNGY2MjZh
NjgyNWIwMjYyMGU2M2E4Mjk2ZDI0ZDQ0NTI2YTZiNzQ5Li43ZmNlMDIxMjg1NmE0NzA0OTFmOGM4
MjlhOTQ1ZTgyYWUxNzdlMTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VVcmlFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VV
cmlFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAg
XSBTVkdGb250RmFjZVVyaUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBT
VkdGb250RmFjZVVyaUVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5pZGwKaW5kZXggYTFi
Mzg4MmNmYjNiNWYwOTI0MjRkMmExOGViZDJhMTI5MmI5ODg5NS4uNzUxZWZkNTM1YjM2ZmU5ZjFm
NGY3M2IxM2M3Y2M1ODBhNjE3NzEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewog
Ci0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0g
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5n
U3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTM5LDQgKzM5LDQgQEAg
bW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aCBoZWlnaHQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaWRsCmlu
ZGV4IGI2Mzc3YTY4Y2Y3OWFmZGVmNzZjZWZlOWM3MzdhYjJmZjA3YmZiNGMuLjE1YTQ3OTg1MmVk
YWUyNTM3ZDljYjZlNDlmYmE5YjNjOGY1MDNjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50
LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBb
CisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0dFbGVtZW50IDogU1ZH
RWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdHRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGUg
ewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsCmlu
ZGV4IGQwMDMwOWMzNWZiZGE4ZjdkZTYyZTA5M2ZkODU4YWQzYWJjYmNkMzguLmQ5YTcyMmFmOTAw
MTQxNzEzZGNkYzM2YWNjN2M5ZjkzMTE3MWVjNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlw
aEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRyZTVkdfRk9OVFMKLSAgICBd
IFNWR0dseXBoRWxlbWVudCA6IFNWR0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR0dseXBo
RWxlbWVudCA6IFNWR0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaWRsCmluZGV4IDhhMWNkYjFiN2FmM2NjYjFmMzBiYTg3MTk5
MjdjZDA4NDljOWI5NGMuLjg2NjgxZDkwNjM1OGQ4ZTM2OGE2MjkxYzBiNWYxZmEwZTQ4ZWEyMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaWRsCkBAIC0xOSwyMiAr
MTksMjIgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNW
RyZTVkdfRk9OVFNdIFNWR0dseXBoUmVmRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgW0NvbmRp
dGlvbmFsPVNWRyZTVkdfRk9OVFNdIGludGVyZmFjZSBTVkdHbHlwaFJlZkVsZW1lbnQgOiBTVkdF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUgewogICAg
ICAgICAvLyBGSVhNRTogVXNlIFtSZWZsZWN0XSBhZnRlciBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4NDMgaXMgZml4ZWQuCiAgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmcgZ2x5cGhSZWYKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybWF0OworICAgICAgICAg
ICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGZvcm1hdDsKICAgICAgICAgYXR0cmlidXRlIGZsb2F0IHgKLSAgICAgICAgICAg
IHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIHNldHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeQotICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBkeAotICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIGF0dHJpYnV0ZSBmbG9hdCBkeQotICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsK
IAotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmlkbAppbmRl
eCA2ZGIyN2ZiZTQ1NWVhMWRmMmIzYTQ2NTEwMWNhZGQ0NGYyNzQyOGNlLi4xZDY4MzNiMTkwMzky
ZGFkODkxZmRjNjczNWMxODhlMDBlYjRhODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhZGllbnRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3Jh
ZGllbnRFbGVtZW50LmlkbApAQCAtMjUsMTAgKzI1LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAg
RG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gU1ZHR3JhZGllbnRFbGVtZW50IDogU1ZHRWxlbWVu
dCwKKyAgICBdIGludGVyZmFjZSBTVkdHcmFkaWVudEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNWR1N0eWxhYmxlCkBAIC00NCw0ICs0NCw0IEBAIG1vZHVsZSBzdmcgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiAgIHNwcmVh
ZE1ldGhvZDsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmlkbAppbmRleCA0MDg3NzQ5YWNlNGJlNjBkYTliNjI5N2FjZmY0MTIxYWQzZGU5YjM5Li41OTli
Yjc1ZjRhZGY1MmQ4MDQ5MWEzODc0YTc2ZWU1OGFlNDk0MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHSEtlcm5FbGVtZW50LmlkbApAQCAtMTksOSArMTksOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAot
ICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRT
Ci0gICAgXSBTVkdIS2VybkVsZW1lbnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBT
VkdIS2VybkVsZW1lbnQgOiBTVkdFbGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmlkbAppbmRleCA2ZjcxNmUxMjE5NTllMDg2ZmI4ZDQxYTM3
ZTU5NDI0ZDVlZDA4ZmExLi5kMDcyZjllMjEyZTJlOTQ4NDc3MDE0OTMzYjNmNjZlNTM2YmY5ZmJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcKLSAgICBdIFNWR0ltYWdlRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBp
bnRlcmZhY2UgU1ZHSW1hZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1Nw
YWNlLApAQCAtNDEsNCArNDEsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlv
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGFu
Z1NwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaWRsCmluZGV4IDIx
MmM4NWE4MWZjNjViZmVhZWFlYjMzZmNiMzkxMDUyODQ3NGQ2NTUuLjQ1MTRjZGY4YjQzYTQxNmYx
N2FhOTRlM2RmZWU1OTcyNzNmN2YwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMYW5nU3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuaWRs
CkBAIC0yNiwxNiArMjYsMTYgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAg
ICAgICAgIFN1cHByZXNzVG9KU09iamVjdCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAg
XSBTVkdMYW5nU3BhY2UgeworICAgIF0gaW50ZXJmYWNlIFNWR0xhbmdTcGFjZSB7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgeG1sbGFuZwotICAgICAgICAgICAgICAgICAg
ICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAgICAgICAgICAgICAg
IC8qc2V0cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IERPTVN0cmluZyB4bWxzcGFjZQotICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAgICAgICAgICAgICAgIC8qc2V0cmFpc2VzKERPTUV4
Y2VwdGlvbikqLzsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmlkbAppbmRl
eCBhNWM5NTJkZmNhYTk3NWZiMzJkYzk0N2MxOGEzNzJkZDUzNDc5YTEwLi4yZTFhNmU3YTBiODc0
OWNjZTcxOGRkOWQ4OGY4ZjYxMTMyNmJlNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGVuZ3RoLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmlkbApA
QCAtMjIsOSArMjIsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR0xlbmd0aCB7IAorICAgIF0gaW50
ZXJmYWNlIFNWR0xlbmd0aCB7IAogICAgICAgICAvLyBMZW5ndGggVW5pdCBUeXBlcwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTEVOR1RIVFlQRV9VTktOT1dOICAgID0gMDsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfTlVNQkVSICAgICA9IDE7
CkBAIC0zOSwxMyArMzksMTIgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFNWR19MRU5HVEhUWVBFX1BDICAgICAgICAgPSAxMDsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgdW5pdFR5cGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
Q3VzdG9tLCBTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHZhbHVlCi0gICAgICAgICAgICBzZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbiksCi0gICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b20sIFN0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRl
IGZsb2F0IHZhbHVlCisgICAgICAgICAgICBnZXRyYWlzZXMoRE9NRXhjZXB0aW9uKSBzZXRyYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2lu
Z10gZmxvYXQgdmFsdWVJblNwZWNpZmllZFVuaXRzOwotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFN0cmljdFR5cGVDaGVja2luZ10gRE9NU3RyaW5nIHZhbHVlQXNT
dHJpbmcKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHZhbHVlSW5TcGVjaWZpZWRVbml0
czsKKyAgICAgICAgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFN0cmljdFR5cGVDaGVja2luZ10g
YXR0cmlidXRlIERPTVN0cmluZyB2YWx1ZUFzU3RyaW5nCisgICAgICAgICAgICBzZXRyYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIG5ld1Zh
bHVlU3BlY2lmaWVkVW5pdHMoaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gZmxvYXQg
dmFsdWVJblNwZWNpZmllZFVuaXRzKQpAQCAtNTUsNCArNTQsNCBAQCBtb2R1bGUgc3ZnIHsKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwKaW5kZXggYTkwYzllMjRiYTIxNjYxZWUxMGNhNmM2Y2Iy
YTI3YTk5ZjNiZmI2MC4uNzY5MzM0MGI1YjNlNDcyYzA5YjgyZTRlNjgyMGM4ZmI2MGY3OWFmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmlkbApAQCAtMjYsOSArMjYsOSBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TVkcKLSAgICBdIFNWR0xlbmd0aExpc3QgeyAKKyAgICBdIGludGVyZmFjZSBTVkdMZW5ndGhM
aXN0IHsgCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9m
SXRlbXM7CiAKICAgICAgICAgdm9pZCBjbGVhcigpCkBAIC00Nyw0ICs0Nyw0IEBAIG1vZHVsZSBz
dmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVt
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5pZGwKaW5kZXggMTY1
NTg2MTQ2ZDRkNTcyOGE0M2I4M2YyZDQ1NjAyYjM4YzExM2Y0My4uZjJmNzljMDQyZmRjZjM4YmQy
OTIwZmJlOWMzZmM1MWIyZWEwMzAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQu
aWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTGluZUVsZW1lbnQgOiBT
VkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR0xpbmVFbGVtZW50IDogU1ZHRWxlbWVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdM
YW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTM5LDQgKzM5LDQgQEAgbW9kdWxl
IHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB5MjsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmlkbAppbmRleCAzODViY2ZiMWE0OTdiOWRiNWE2NzM5YTA0OTZhODVlYjRhODBi
NjhlLi4zNTAzMGE0MmYzOWI1ZTFhOTE5NGUyMTY5YjJmYmMzYzM3MzFiZjcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmlkbApAQCAtMjUsMTMg
KzI1LDEzIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50IDogU1ZH
R3JhZGllbnRFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQgOiBTVkdHcmFkaWVudEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZH
QW5pbWF0ZWRMZW5ndGggeDE7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRl
ZExlbmd0aCB5MTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3Ro
IHgyOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTI7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFi
bGUuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5pZGwKaW5kZXggM2IzOGEz
OWYxOWQ5YzkwMGIwNmQwMTIxZThjYTk2YzE4YWNlNzY4MC4uZWRiNmMxMjliMTk1M2Q4MjU0NjMx
NTc0ZWM0M2YwNWJkZjNjOTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xv
Y2F0YWJsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5pZGwKQEAg
LTI2LDIwICsyNiwyMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIE9iakNQcm90b2NvbCwKICAgICAg
ICAgU3VwcHJlc3NUb0pTT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFNW
R0xvY2F0YWJsZSB7CisgICAgXSBpbnRlcmZhY2UgU1ZHTG9jYXRhYmxlIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQgbmVhcmVzdFZpZXdwb3J0RWxlbWVudDsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQgZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQ7
CiAKICAgICAgICAgU1ZHUmVjdCAgIGdldEJCb3goKTsKICAgICAgICAgU1ZHTWF0cml4IGdldENU
TSgpOwogICAgICAgICBTVkdNYXRyaXggZ2V0U2NyZWVuQ1RNKCk7Ci0gICAgICAgIFNWR01hdHJp
eCBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
U1ZHRWxlbWVudCBlbGVtZW50KQorICAgICAgICBTVkdNYXRyaXggZ2V0VHJhbnNmb3JtVG9FbGVt
ZW50KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFNWR0VsZW1lbnQgZWxlbWVudCkK
ICAgICAgICAgICAgIHJhaXNlcyhTVkdFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaWRsCmluZGV4IGRhNTJmM2QyZWI2MzFlMTU5ODJk
YTJjNGUyYjBkYzMwZmIyYzQwMmIuLmJkZjBhMWFlNTU4MTUyNTM5OTJiNTk4YjU1ODc0ZjE0ODA1
YzgyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaWRsCkBAIC0yNSwxMSAr
MjUsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdNUGF0aEVsZW1lbnQgOiBTVkdFbGVtZW50LAor
ICAgIF0gaW50ZXJmYWNlIFNWR01QYXRoRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
VVJJUmVmZXJlbmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5pZGwKaW5kZXgg
ZGQzNTFlMzIwODM2ZmJlZjJhZDYwMjMyN2I1ZTc0MWM4OWJlMWNhYi4uYjVjYzE2NzI2ZWFmY2Rh
MzM3N2M0NGY1MGU3NDk5YzIwNDI2MWQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR01hcmtlckVs
ZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR01hcmtlckVsZW1lbnQgOiBT
VkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1N0eWxhYmxlLApAQCAt
NTEsNyArNTEsNyBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNW
R0FuaW1hdGVkQW5nbGUgICAgICAgb3JpZW50QW5nbGU7CiAKICAgICAgICAgdm9pZCBzZXRPcmll
bnRUb0F1dG8oKTsKLSAgICAgICAgdm9pZCBzZXRPcmllbnRUb0FuZ2xlKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIFNWR0FuZ2xlIGFuZ2xlKTsKKyAgICAgICAgdm9pZCBzZXRPcmll
bnRUb0FuZ2xlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFNWR0FuZ2xlIGFuZ2xl
KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
c2tFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5pZGwKaW5k
ZXggNjEwNmVkMzFlNzJjMWMxOTcyNmIwYWZjNmI5ZDk4YzJiOGEzYzZjNC4uY2MyYzczMjExYzc1
YzhhNjY1ZDFmNmI0ZjBjOTJmNDA2ZjQ3OTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0Vs
ZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJm
YWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTWFza0VsZW1l
bnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR01hc2tFbGVtZW50IDogU1ZHRWxl
bWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKQEAgLTQxLDQgKzQxLDQgQEAg
bW9kdWxlIHN2ZyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0
aCBoZWlnaHQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXRyaXguaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5pZGwKaW5kZXgg
MGNmZTU0N2I1MGUwMTg0NWNkNTZhNDI1N2U5NWJjMDhkNTZmNTI1NC4uZDRlOWM1ZTFjMDJkZGZi
OWM5M2RkNmJkNTRmMzgyN2FlY2U5MGMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hdHJpeC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5pZGwKQEAg
LTIyLDE3ICsyMiwxNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR01hdHJpeCB7CisgICAgXSBpbnRl
cmZhY2UgU1ZHTWF0cml4IHsKICAgICAgICAgLy8gRklYTUU6IHRoZXNlIGF0dHJpYnV0ZXMgc2hv
dWxkIGFsbCBiZSBmbG9hdHMgYnV0IHNpbmNlIHdlIGltcGxlbWVudAogICAgICAgICAvLyBBZmZp
bmVUcmFuc2Zvcm0gd2l0aCBkb3VibGVzIHNldHRpbmcgdGhlc2UgYXMgZG91YmxlcyBtYWtlcyBt
b3JlIHNlbnNlLgotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZG91Ymxl
IGE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBkb3VibGUgYjsKLSAg
ICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGRvdWJsZSBjOwotICAgICAgICBh
dHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZG91YmxlIGQ7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBkb3VibGUgZTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGRvdWJsZSBmOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBh
dHRyaWJ1dGUgZG91YmxlIGE7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0
ZSBkb3VibGUgYjsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGRvdWJs
ZSBjOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZG91YmxlIGQ7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBkb3VibGUgZTsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGRvdWJsZSBmOwogCiAgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIFNWR01hdHJpeCBtdWx0aXBseShpbiBTVkdNYXRyaXggc2Vjb25kTWF0
cml4KTsKICAgICAgICAgU1ZHTWF0cml4IGludmVyc2UoKQpAQCAtNDksNCArNDksNCBAQCBtb2R1
bGUgc3ZnIHsKICAgICAgICAgW0ltbXV0YWJsZSwgU3RyaWN0VHlwZUNoZWNraW5nXSBTVkdNYXRy
aXggc2tld1koaW4gZmxvYXQgYW5nbGUpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRsCmluZGV4IDg3OGU1ZDk5OGRiMzE1NThjMThiZDVj
Yjc0MTYzMDYzY2VhMGIxNmQuLjE0ZmM3NmNmODIzMmI3YmJjY2E3MzhjMTg0ZjAyYzU4YTBmMzVi
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuaWRsCkBAIC0yMSw5
ICsyMSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAg
ICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTWV0YWRhdGFFbGVtZW50IDogU1ZHRWxlbWVu
dCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHTWV0YWRhdGFFbGVtZW50IDogU1ZHRWxlbWVudCB7CiAg
ICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5n
R2x5cGhFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50LmlkbAppbmRleCA1ZTMwNzRiZmEyMGE5NGEyZjIxYWZlNmUzYTM3NmI0NDFkMzk3ZmYzLi4z
MDIyOTEyMjEwMWU1MzA0NDQzYTJiOGZiYTg0NTBlMzIxYjY4NWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRyZTVkdfRk9OVFMKLSAgICBdIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQgOiBTVkdFbGVt
ZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50IDogU1ZHRWxlbWVu
dCB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdO
dW1iZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5pZGwKaW5kZXggZWJkMjEy
YjNmMDFmMjRmZTk0MTQ3M2Y3ODEwY2NjMDUwNTcwYzlkMC4uODMyMzVhN2ZmODAyOTczYzU4ZjY3
ZjkyNWMyNDUxNTRkYWQ1ODBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051
bWJlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5pZGwKQEAgLTIyLDEw
ICsyMiwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR051bWJlciB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB2YWx1ZTsKKyAgICBdIGludGVyZmFjZSBTVkdO
dW1iZXIgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgdmFs
dWU7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdO
dW1iZXJMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmlkbAppbmRl
eCA0M2U1MTE3MzhiZTk5MWZmMmZmYmYxYTRjN2JhYTE4NzY2MWQ2YTBkLi5mMGI3YmQ0NjJkMTZj
OGE3YjJiZWFlNjE3Y2MzMjdjNjlhYWU1ZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxp
c3QuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHTnVtYmVyTGlzdCB7
CisgICAgXSBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAKICAgICAgICAgdm9pZCBjbGVhcigp
CkBAIC00Nyw0ICs0Nyw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhaW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYWlu
dC5pZGwKaW5kZXggODcxMTY1NWExMzg3MjRiYTc2ZWYzMjI3OTgxYzdjOTY0MDQ4NmM2OC4uZTlh
ZjUyZjRkNTg4YmQxZWU2NTUzMDcyMjFmODAzMjE5YjU0Mzc2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhaW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGFp
bnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNl
IFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGFpbnQgOiBTVkdD
b2xvciB7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGFpbnQgOiBTVkdDb2xvciB7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVU5LTk9XTiA9IDA7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1IgPSAxOwogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1JHQkNPTE9SX0lDQ0NPTE9SID0gMjsK
QEAgLTQ3LDQgKzQ3LDQgQEAgbW9kdWxlIHN2ZyB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmlkbAppbmRleCA1ZjRmNmNhYjY5ZDRjM2YxNzMxN2QxNGUzNjk0ZjM5NWRj
YjUwZjMxLi40NmEzZjcyYWI4NDg4ZTliYzRjYzIzYWU3YTQyY2NkNGFlNjNlZDZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5pZGwKQEAgLTI2LDkgKzI2LDkgQEAKIAogbW9kdWxl
IHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZH
Ci0gICAgXSBTVkdQYXRoRWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZH
UGF0aEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LApAQCAtMzcsNzcgKzM3LDc3IEBAIG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcGF0aExlbmd0aDsKIAogICAgICAgICBmbG9hdCBnZXRU
b3RhbExlbmd0aCgpOwotICAgICAgICBTVkdQb2ludCBnZXRQb2ludEF0TGVuZ3RoKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IGRpc3RhbmNlKTsKLSAgICAgICAgdW5zaWdu
ZWQgbG9uZyBnZXRQYXRoU2VnQXRMZW5ndGgoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gZmxvYXQgZGlzdGFuY2UpOworICAgICAgICBTVkdQb2ludCBnZXRQb2ludEF0TGVuZ3RoKFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGRpc3RhbmNlKTsKKyAgICAgICAg
dW5zaWduZWQgbG9uZyBnZXRQYXRoU2VnQXRMZW5ndGgoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZmxvYXQgZGlzdGFuY2UpOwogCiAgICAgICAgIFNWR1BhdGhTZWdDbG9zZVBhdGgg
Y3JlYXRlU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgpOwogCi0gICAgICAgIFNWR1BhdGhTZWdNb3ZldG9B
YnMgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0FicyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOwot
ICAgICAgICBTVkdQYXRoU2VnTW92ZXRvUmVsIGNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVs
dElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ01vdmV0b0FicyBjcmVh
dGVTVkdQYXRoU2VnTW92ZXRvQWJzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CisgICAgICAg
IFNWR1BhdGhTZWdNb3ZldG9SZWwgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b1JlbChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGZsb2F0IHkpOwogCi0gICAgICAgIFNWR1BhdGhTZWdMaW5ldG9BYnMgY3JlYXRlU1ZH
UGF0aFNlZ0xpbmV0b0FicyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkpOwotICAgICAgICBTVkdQ
YXRoU2VnTGluZXRvUmVsIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9SZWwoaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0FicyBjcmVhdGVTVkdQYXRoU2Vn
TGluZXRvQWJzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSk7CisgICAgICAgIFNWR1BhdGhTZWdM
aW5ldG9SZWwgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbChbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBpbiBmbG9hdCB4LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHkpOwogCi0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgY3JlYXRlU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY0FicyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHksIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDEsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeTEsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDIsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeTIpOwotICAgICAgICBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgxLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHkxLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHgyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGZsb2F0IHkyKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cyBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBmbG9hdCB4MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBm
bG9hdCB5MSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9h
dCB4MiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5
Mik7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgY3JlYXRlU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHksIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDEsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeTEsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDIsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeTIpOwogCi0gICAgICAgIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
QWJzKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeDEsIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5
MSk7Ci0gICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsIGNyZWF0ZVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljUmVsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZs
b2F0IHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB5LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeDEsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBmbG9hdCB5MSk7CisgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
QWJzIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzKFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDEsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MSk7CisgICAgICAgIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljUmVsIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVs
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeDEsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5MSk7
CiAKLSAgICAgICAgU1ZHUGF0aFNlZ0FyY0FicyBjcmVhdGVTVkdQYXRoU2VnQXJjQWJzKGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gZmxvYXQgeSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCByMSwgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCByMiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBm
bG9hdCBhbmdsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIGxhcmdlQXJjRmxh
ZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBib29sZWFuIHN3ZWVwRmxhZyk7Ci0gICAgICAg
IFNWR1BhdGhTZWdBcmNSZWwgY3JlYXRlU1ZHUGF0aFNlZ0FyY1JlbChpbiBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IHksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgcjEsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gZmxvYXQgcjIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgYW5nbGUs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBsYXJnZUFyY0ZsYWcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gYm9vbGVhbiBzd2VlcEZsYWcpOworICAgICAgICBTVkdQYXRoU2Vn
QXJjQWJzIGNyZWF0ZVNWR1BhdGhTZWdBcmNBYnMoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHIxLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHIyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IGFuZ2xlLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGluIGJvb2xlYW4gbGFyZ2VBcmNGbGFnLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGluIGJvb2xlYW4gc3dlZXBGbGFnKTsKKyAgICAgICAgU1ZHUGF0aFNlZ0FyY1JlbCBjcmVh
dGVTVkdQYXRoU2VnQXJjUmVsKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0
IHgsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeSwgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCByMSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCByMiwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCBhbmdsZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBib29sZWFuIGxhcmdlQXJjRmxhZywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBib29s
ZWFuIHN3ZWVwRmxhZyk7CiAKLSAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMg
Y3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gZmxvYXQgeCk7Ci0gICAgICAgIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFs
UmVsIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIGZsb2F0IHgpOworICAgICAgICBTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbEFicyBjcmVhdGVTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyhbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWwgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCk7CiAKLSAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsQWJzIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyhpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKLSAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsQWJzIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicyhbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsIGNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbChbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5KTsKIAotICAgICAgICBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoQWJzIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhB
YnMoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeCwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5LCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0
IHgyLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIGZsb2F0IHkyKTsKLSAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCBj
cmVhdGVTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB4MiwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBmbG9hdCB5Mik7CisgICAgICAg
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4LCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZs
b2F0IHksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5l
ZF0gaW4gZmxvYXQgeDIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gaW4gZmxvYXQgeTIpOworICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoUmVsIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwoW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB5LCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHgyLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHky
KTsKIAotICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyBjcmVhdGVT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyhpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBmbG9hdCB4LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gZmxvYXQgeSk7Ci0gICAgICAgIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHgsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBmbG9hdCB5KTsKKyAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMg
Y3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMoW09wdGlvbmFsPURlZmF1
bHRJc1VuZGVmaW5lZF0gaW4gZmxvYXQgeCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGZsb2F0IHkpOworICAgICAgICBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aFJlbChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBmbG9hdCB4
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gaW4gZmxvYXQgeSk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BhdGhT
ZWdMaXN0IHBhdGhTZWdMaXN0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUGF0aFNl
Z0xpc3Qgbm9ybWFsaXplZFBhdGhTZWdMaXN0OwpAQCAtMTE1LDQgKzExNSw0IEBAIG1vZHVsZSBz
dmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUGF0aFNlZ0xpc3QgYW5pbWF0ZWRO
b3JtYWxpemVkUGF0aFNlZ0xpc3Q7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnLmlkbAppbmRleCBlN2FkNzVhOGI5NWM0YzVmNDdmODI1Mzk2ZTM4MTI3ZjYwOTIzMmQ2Li45
NGRjZWQ0MWI5YmI3NDJmNDlmNGEwYWI4ODQwZDAxOTAyNGM0YTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWcuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBDdXN0
b21Ub0pTT2JqZWN0LAogICAgICAgICBPYmpDUG9seW1vcnBoaWMKLSAgICBdIFNWR1BhdGhTZWcg
eworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWcgewogICAgICAgICAvLyBQYXRoIFNlZ21lbnQg
VHlwZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUEFUSFNFR19VTktOT1dOID0gMDsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUEFUSFNFR19DTE9TRVBBVEggPSAxOwpAQCAt
NTcsNCArNTcsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0FyY0Ficy5pZGwKaW5kZXggNDgwNWU4YmE0NmI1YTZmMjJjMWIyMzU4
ZWI4OWViMWVmMWE2ZDkwMS4uYzQyZjcwYWRkMzQzNjAwMzYxYmI5ZDAzMWQ0Yzc0NjMxZWRlMTNj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNBYnMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjQWJzLmlkbApAQCAtMjYsMTYgKzI2
LDE2IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0FyY0FicyA6IFNWR1BhdGhTZWcgewot
ICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCByMTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGZsb2F0IHIyOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgYW5nbGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBib29sZWFuIGxhcmdlQXJjRmxhZzsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGJvb2xlYW4gc3dlZXBGbGFnOworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdB
cmNBYnMgOiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmli
dXRlIGZsb2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9h
dCB5OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgcjE7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCByMjsKKyAgICAgICAg
W1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IGFuZ2xlOworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgYm9vbGVhbiBsYXJnZUFyY0ZsYWc7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBib29sZWFuIHN3ZWVwRmxhZzsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNS
ZWwuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmNSZWwuaWRsCmluZGV4IGEy
MmM2MWUyYjE0Y2ZiZTM0MDc2OTUwNzAyY2RjNjk0NjI0NjYwMjQuLmYzMGI3NTU3ZWI0YmFlZDQ3
ZTdlNzUxZTgwYjg1NzQ4MjQ3NGEyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnQXJjUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0Fy
Y1JlbC5pZGwKQEAgLTI2LDE2ICsyNiwxNiBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVy
ZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhTZWdB
cmNSZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9h
dCB5OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgcjE7Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCByMjsKLSAgICAgICAg
YXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IGFuZ2xlOwotICAgICAgICBhdHRy
aWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gYm9vbGVhbiBsYXJnZUFyY0ZsYWc7Ci0gICAgICAg
IGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuIHN3ZWVwRmxhZzsKKyAgICBd
IGludGVyZmFjZSBTVkdQYXRoU2VnQXJjUmVsIDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
YXR0cmlidXRlIGZsb2F0IHIxOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1
dGUgZmxvYXQgcjI7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9h
dCBhbmdsZTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGJvb2xlYW4g
bGFyZ2VBcmNGbGFnOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgYm9v
bGVhbiBzd2VlcEZsYWc7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnQ2xvc2VQYXRoLmlkbAppbmRleCA4YzU3ZDg2MDBjZTczMjk5ZTUzYWQ0OWRlYmViMWRh
OGI4YWU5ZDRmLi5kMzAyYzIzMTEwMmNkNjFlZWYyNDQ2ZjBkMzJjZmE2OGViOTg2Y2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaWRsCkBAIC0yNiw5ICsyNiw5
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0Nsb3NlUGF0aCA6IFNWR1BhdGhTZWcgewor
ICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdDbG9zZVBhdGggOiBTVkdQYXRoU2VnIHsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNBYnMuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNBYnMuaWRsCmluZGV4IDQzMTFjOGQ1ZmQ1YmMyYzU2NWM3OGZkODJhMDVkMjZlMzIxYzFjZjUu
LjNiOTA0ZGY3MjdhZTg4ZGQ4MWQxM2VjNTU2Mzc2Yjk2ZmJmODBiYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5pZGwKQEAgLTI2LDE1ICsy
NiwxNSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgOiBTVkdQ
YXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDE7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5MTsKLSAgICAgICAgYXR0cmlidXRlIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHgyOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5
cGVDaGVja2luZ10gZmxvYXQgeTI7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0FicyA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRy
aWJ1dGUgZmxvYXQgeDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZs
b2F0IHk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4MTsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHkxOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDI7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5MjsKICAgICB9OwogCi19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaWRsCmluZGV4
IGYyNzlmNmU0OTJiMTViM2RmZjdlNjlmYjBmNWY4NDFlMWZkNTVjNzMuLjcwNDQyNjhkNGQwMjMy
ODg1ZmMwZDZlNTQ4OTgwNmM2YTEyNjQ4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5pZGwKQEAgLTI2LDE1ICsyNiwxNSBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcKLSAgICBdIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwgOiBTVkdQYXRoU2VnIHsKLSAgICAg
ICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwotICAgICAgICBhdHRyaWJ1dGUgW1N0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDE7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlw
ZUNoZWNraW5nXSBmbG9hdCB5MTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tp
bmddIGZsb2F0IHgyOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxv
YXQgeTI7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCA6IFNWR1Bh
dGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4MTsKKyAgICAgICAgW1N0cmlj
dFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHkxOworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDI7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmdd
IGF0dHJpYnV0ZSBmbG9hdCB5MjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuaWRsCmluZGV4IGZi
ZmRlMGQ4NzA1NWYyODQ1OTBmYTliOTcxNzZmN2IwOGYzOTM1NWQuLjg2ZDBjODQzMTExY2ZkOTQ2
YjRlZjFiYzJhOTljMGRhNmFlZTc2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5pZGwKQEAgLTI2LDEzICsyNiwxMyBA
QAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25k
aXRpb25hbD1TVkcKLSAgICBdIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgOiBTVkdQ
YXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDI7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5MjsKKyAgICBdIGludGVyZmFjZSBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzIDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJp
Y3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
YXR0cmlidXRlIGZsb2F0IHgyOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1
dGUgZmxvYXQgeTI7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmlkbAppbmRleCAxYjlkZTJhNjRk
NzM2NzAwM2RhOGI0NDhlYjdjZjg1MzYwNWFlMDE3Li5mNDgxMmU3NzhlMTdjYTAzYTExMjI3ZGVl
YWQ3NjcwYmFlYjgxNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaWRsCkBAIC0yNiwxMyArMjYsMTMgQEAKIAogbW9k
dWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9
U1ZHCi0gICAgXSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsIDogU1ZHUGF0aFNlZyB7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKLSAgICAgICAgYXR0cmli
dXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHgyOwotICAgICAgICBhdHRyaWJ1dGUgW1N0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTI7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbCA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10g
YXR0cmlidXRlIGZsb2F0IHk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0
ZSBmbG9hdCB4MjsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0
IHkyOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmlkbAppbmRleCA2OWE5OTMwYjkzOTg3NWFlMzY2ZDk4
YjJlMjE3OTQxN2RiYTQyNWVjLi44NDhkMWI0ZTFlYTAwYTNhYWJjZGU3ZGViYjNkNGMzMTQzNDA4
ZTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNBYnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY0Ficy5pZGwKQEAgLTI2LDEzICsyNiwxMyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmlj
dFR5cGVDaGVja2luZ10gZmxvYXQgeTsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGZsb2F0IHgxOwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10g
ZmxvYXQgeTE7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMg
OiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZs
b2F0IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5Owor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeDE7CisgICAgICAg
IFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5MTsKICAgICB9OwogCi19Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1JlbC5pZGwKaW5kZXggMDY3OTI4MGE5MmM2Nzc3YWY5ZmNjOTFlYzhiMGY0MmI0Y2NkMWNhNi4u
OWNlODRhZmNlODQ3OTlhOWUzMGZhZTYyNWZkZjQxODIzYTU0YzE4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaWRsCkBAIC0y
NiwxMyArMjYsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1JlbCA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2lu
Z10gZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0
IHk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4MTsKLSAg
ICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHkxOworICAgIF0gaW50
ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsIDogU1ZHUGF0aFNlZyB7CisgICAg
ICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAgICAgICAgW1N0cmljdFR5cGVD
aGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHgxOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBhdHRyaWJ1dGUgZmxvYXQgeTE7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaWRs
CmluZGV4IDg4MzRjMDM0MDA2ZTdmODAxMTVjNDVkNTk0NjU3NzA2ODJiMTc3MDguLmJmYjg3MThl
ZWU1MjM5Yzk1NGE4OTFmYTU1YmRkNDE4ZGRmMTFjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmlkbApA
QCAtMjYsMTEgKzI2LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNTbW9vdGhBYnMgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHg7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCB5OworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoQWJzIDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0
dHJpYnV0ZSBmbG9hdCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5pZGwKaW5kZXggM2QwNDJj
ODU5MTllOTkwZGIwNTMxNDNhYjViNmI2YWFjZmFhZDIyMS4uZGZiNGJhMjgxNWUzNDI5Y2FhMjgx
ZGY2ZjRlY2VlMTU1YWNiODRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaWRsCkBAIC0yNiwxMSArMjYs
MTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJl
bCA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10g
ZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7
CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgOiBT
VkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0
IHg7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9hdCB5OwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
bmV0b0Ficy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0Ficy5pZGwK
aW5kZXggNzE0ZmExMGI5MWM0NzU1ZTE5MThkZDZhYWMwZGUxMzU3NDAxNGUwOS4uZGRiMWM4YjBh
OWNkZDYyY2I1MWQ0OGVlNWU2M2IxMDcxMzg3MGRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9BYnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGluZXRvQWJzLmlkbApAQCAtMjYsMTEgKzI2LDExIEBACiAKIG1vZHVsZSBzdmcg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAg
IF0gU1ZHUGF0aFNlZ0xpbmV0b0FicyA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUg
W1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIGZsb2F0IHk7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0Fi
cyA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgeDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnMuaWRsCmluZGV4IDI5NDgyOTc1N2QyYmM0NDI3MmJiMGMzNWIy
NjlkM2UzZjI0ZTIzYWIuLmQ2YTQ3Mjk4ZTJiYTRkZGQ0MTdjZTZmYTNhYTZmYjY2Y2JhMmUwZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRh
bEFicy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsQWJzLmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnMgOiBTVkdQYXRoU2VnIHsKLSAgICAgICAgYXR0cmlidXRlIFtT
dHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxBYnMgOiBTVkdQYXRoU2VnIHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaWRsCmluZGV4IDFl
NDZkZDBlNjNlYTk0MjU4N2NkMzYyMWQ2MDM5OTgyYTZjN2E1OGQuLmFiYTQ4ZDhiYzQ0NGRmYzhh
ZDdiZTRmYTU1MDI3MGQzN2FhYzQ4ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgOiBTVkdQYXRoU2Vn
IHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7CisgICAg
XSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgOiBTVkdQYXRoU2VnIHsK
KyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHg7CiAgICAgfTsK
IAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRv
UmVsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvUmVsLmlkbAppbmRl
eCA2MmVhMjMxMzQ0NmI1Y2RhMTNhZGZkYTBjMTQ0ODE5ZjlkZGRkNTlmLi44MzczMjUyYWQ3YWM0
YmEyZjE2ZGY2YzEyZWJkZGRkNmUxMDRhYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aFNlZ0xpbmV0b1JlbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaW5ldG9SZWwuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBT
VkdQYXRoU2VnTGluZXRvUmVsIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVD
aGVja2luZ10gZmxvYXQgeTsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvUmVsIDog
U1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9h
dCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKICAg
ICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbEFicy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsQWJzLmlkbAppbmRleCA5NWM5ZDI3NzQ1YTZjZjI1OWQzNTlhNjE0MjgxZGRkMzYz
NDY4ZDhlLi45MDIzZTA4NDgyMTU0ZTBkOGQ5NmI4MzljZDEwMTg5YzdmMzAyMTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmlkbApA
QCAtMjYsMTAgKzI2LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNr
aW5nXSBmbG9hdCB5OworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFi
cyA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUg
ZmxvYXQgeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmlkbAppbmRleCA0YTM1OWE1N2YxZWE0MzIzN2YzODdk
ODc0ZjRhMWQ2NzFlNzhiNmU2Li5lN2FjNzA4ZmNhNjZiOTljN2E3ODhlYjcwYzIzMzUxOTcyYTEz
NTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsUmVsLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsUmVsLmlkbApAQCAtMjYsMTAgKzI2LDEwIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3Ry
aWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbFJlbCA6IFNWR1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSBhdHRyaWJ1dGUgZmxvYXQgeTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5pZGwKaW5kZXggZWE5ZTUxNTdhZjA4Mzk5NjAyMTIzZWJhZDYwZDA0OWEzMDY3
ZTkwNi4uMmQ4ZjM0YTgyOWU4MmMxMmZlZDllNzUzN2JmYmE3OTMxMTJiY2Y3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaWRsCkBAIC0yNiw5ICsyNiw5IEBACiAKIG1vZHVsZSBz
dmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwot
ICAgIF0gU1ZHUGF0aFNlZ0xpc3QgeworICAgIF0gaW50ZXJmYWNlIFNWR1BhdGhTZWdMaXN0IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsK
IAogICAgICAgICB2b2lkIGNsZWFyKCkKQEAgLTQ3LDQgKzQ3LDQgQEAgbW9kdWxlIHN2ZyB7CiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24pOwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b0Fi
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b0Ficy5pZGwKaW5kZXgg
M2E0ZjgwNjNjZWFjMWVmOGM2ODVmMzliZmU1MmNhZGFjNzcwYzIzNS4uZDZkYTBiYzRiN2I4YzY1
NmZlZTgxZTY2MWQwYmRkMmQwZmY1ZmZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdNb3ZldG9BYnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTW92ZXRvQWJzLmlkbApAQCAtMjYsMTEgKzI2LDExIEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZH
UGF0aFNlZ01vdmV0b0FicyA6IFNWR1BhdGhTZWcgewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmlj
dFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGZsb2F0IHk7CisgICAgXSBpbnRlcmZhY2UgU1ZHUGF0aFNlZ01vdmV0b0FicyA6IFNW
R1BhdGhTZWcgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQg
eDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92
ZXRvUmVsLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTW92ZXRvUmVsLmlkbApp
bmRleCBhNjRiMzUxNzhlOTE4Y2I4YjIxM2YwMDc4ZjIwYzgxNTE4MjQ2YWFmLi45MjU5YzIwZTc1
ZTYyNDMxODE3MDBhNjM3ZDNjYzVjYjgzMDI0NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ01vdmV0b1JlbC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhTZWdNb3ZldG9SZWwuaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbW9kdWxlIHN2ZyB7
CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAg
XSBTVkdQYXRoU2VnTW92ZXRvUmVsIDogU1ZHUGF0aFNlZyB7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
U3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OwotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5
cGVDaGVja2luZ10gZmxvYXQgeTsKKyAgICBdIGludGVyZmFjZSBTVkdQYXRoU2VnTW92ZXRvUmVs
IDogU1ZHUGF0aFNlZyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBm
bG9hdCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsK
ICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5pZGwK
aW5kZXggMmRkODljMjNmZWVlYjFkYmJhZjZjMzZkZjM4Mjg3NjgwOGU2MmJlOS4uNjFkYWU4MTFh
MGMwZmFjNmM2ZTcxMjNiM2EyYjc4ZDQwOTgzOWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZH
UGF0dGVybkVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR1BhdHRlcm5F
bGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNlLApAQCAtNDQs
NCArNDQsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoICAgICAgICBoZWlnaHQ7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9pbnQuaWRsCmluZGV4IGNlMmQ1MWQzZGQ1YTA5NzBhOTJiMjdkNDU5YjYzOTg3MjUzOTY5ZWMu
Ljg5MDdjYjRhOGNmMWM3YjAzYjg2MWExNjk1MjhiNWUzMGMzOGQ3ZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvaW50LmlkbApAQCAtMjIsMTMgKzIyLDEzIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUG9pbnQg
ewotICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeDsKLSAgICAg
ICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHk7CisgICAgXSBpbnRlcmZh
Y2UgU1ZHUG9pbnQgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxv
YXQgeDsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHk7CiAK
ICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gU1ZHUG9pbnQgbWF0cml4VHJhbnNmb3JtKGlu
IFNWR01hdHJpeCBtYXRyaXgpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2lu
dExpc3QuaWRsCmluZGV4IDk3MTNjYTJhOTUzNDU2YmM0NjhjNjM0NzViMTQ1ZTdhZWFiMThlYTMu
LjllMTBlZTEwZjRiZDJhMGM4MzU1Y2Y4MDA2MTY2M2I5NTc4NzkxODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludExpc3QuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0g
ICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZH
UG9pbnRMaXN0IHsKKyAgICBdIGludGVyZmFjZSBTVkdQb2ludExpc3QgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogCiAgICAgICAgIHZv
aWQgY2xlYXIoKQpAQCAtNDYsNCArNDYsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaWRsCmluZGV4IGJjOWY5NjZjZTY2MDQ3Mzc3
MGUzYzBiMjdiNTljYjJjZDNiNTEyODMuLjEzZGY0ZWIxYWI0Y2NmMzViNTRmY2JiZWIyZjY2NmIx
MGEyODE3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVu
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmlkbApAQCAt
MjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1BvbHlnb25FbGVtZW50IDogU1ZHRWxl
bWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdQb2x5Z29uRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVGVz
dHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC0zNyw0ICszNyw0IEBA
IG1vZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnRMaXN0IGFu
aW1hdGVkUG9pbnRzOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
bGluZUVsZW1lbnQuaWRsCmluZGV4IDkzYmRhZjE2NzU5OWJlNjZhNDI1ZGI3ODIyN2NmOWUxNjMy
ZjM4NWEuLjVhMDU3ODgzYTBlNTVlOWVkMWQ1NmQ1Y2E4MGM4YzUxZGU1ZTFiODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNWRwotICAgIF0gU1ZHUG9seWxpbmVFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGlu
dGVyZmFjZSBTVkdQb2x5bGluZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzcsNCArMzcsNCBAQCBtb2R1bGUgc3Zn
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50TGlzdCBhbmltYXRlZFBvaW50
czsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uaWRsCmluZGV4IDk3NWJmYzc5ZTk1NGZjMTFiNDQwMmFhOTgyY2FjMTRmNWI4MjQ5
Y2YuLjExZTlkNTc2MTZhOWMwZTVhZTlkYTVhNDQwZmVlMGQ4NThhY2FhYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwKQEAgLTI1LDkgKzI1LDkg
QEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29u
ZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsKKyAgICBdIGludGVy
ZmFjZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIHsKICAgICAgICAgLy8gQWxpZ25tZW50IFR5cGVz
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1VO
S05PV04gPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19OT05FID0gMTsKQEAgLTQ2LDExICs0NiwxMSBAQCBtb2R1bGUgc3ZnIHsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01FRVRPUlNMSUNFX01FRVQgPSAxOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUVFVE9SU0xJQ0VfU0xJQ0UgPSAyOwogCi0gICAg
ICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSB1bnNpZ25lZCBzaG9ydCBhbGlnbgot
ICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0
VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYWxpZ24KKyAgICAgICAgICAg
IHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB1bnNpZ25lZCBzaG9ydCBtZWV0T3JTbGljZQotICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgbWVldE9yU2xpY2UKKyAgICAgICAgICAgIHNldHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaWRsCmluZGV4IDAwMGY2YjRmNzM3Y2NmZjNmMTdiOTQw
NGUyMTIzMjAyYjYzNmE3ZmUuLmQ2NDA3Y2Y1YjQyOGRiMzRiNzBhMGFhOGUzODE5ZjE2YTgwYjhl
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
aWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50IDogU1ZHR3JhZGllbnRFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQgOiBTVkdHcmFkaWVudEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggY3g7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdBbmltYXRlZExlbmd0aCBjeTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
aW1hdGVkTGVuZ3RoIHI7CkBAIC0zNSw0ICszNSw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggZnk7CiAgICAgfTsKIAotfQorfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0LmlkbAppbmRleCA0YmZjZTBlZGRhZjI2YjMwYjk3MGRjYjYxMjM1MjNi
ZTE3ZDMyNGY4Li5jMjNhM2VhMjkxMzU3ZGU4MjA5MzZhZGE3NGJjNGY3YjQ2MDlmMzVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3QuaWRsCkBAIC0yMiwxMyArMjIsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAK
LSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBT
VkdSZWN0IHsKLSAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGZsb2F0IHg7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB5OwotICAgICAg
ICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgd2lkdGg7Ci0gICAgICAgIGF0
dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCBoZWlnaHQ7CisgICAgXSBpbnRlcmZh
Y2UgU1ZHUmVjdCB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIGF0dHJpYnV0ZSBmbG9h
dCB4OworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgeTsKKyAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gYXR0cmlidXRlIGZsb2F0IHdpZHRoOworICAgICAg
ICBbU3RyaWN0VHlwZUNoZWNraW5nXSBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OwogICAgIH07CiAK
LX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaWRs
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmlkbAppbmRleCBkOTNmNWQ3MTBm
ZjYzMDE4NGZlYjYwY2EyOTQ4YTYwYzZmZTI2M2I3Li43ZDNjNTUyZjhlMjg3OGY3ZGE0YzFmMTEz
ZjQ2ZTZlMDU2MDZmNjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5pZGwKQEAg
LTI2LDkgKzI2LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdSZWN0RWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHUmVjdEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFj
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtNDIsNCArNDIsNCBAQCBtb2R1bGUgc3ZnIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJ5OwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVuZGVyaW5nSW50
ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZW5kZXJpbmdJbnRlbnQuaWRsCmluZGV4
IGM2NmQ2NDhjNmQ2ZTRiOTAzODAyZDk0ZmIwMjk5NzhiZWZmMjI1NDguLjhkMDZmOTdlNGM1NDJk
MDIzYzQ3YWU4YWJjMjQ4NTczMGJjZWJmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZW5kZXJpbmdJbnRlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZW5k
ZXJpbmdJbnRlbnQuaWRsCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBT
dXBwcmVzc1RvSlNPYmplY3QKLSAgICBdIFNWR1JlbmRlcmluZ0ludGVudCB7CisgICAgXSBpbnRl
cmZhY2UgU1ZHUmVuZGVyaW5nSW50ZW50IHsKICAgICAgICAgLy8gUmVuZGVyaW5nIEludGVudCBU
eXBlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRU5ERVJJTkdfSU5URU5UX1VOS05P
V04gICAgICAgICAgICAgICA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRF
UklOR19JTlRFTlRfQVVUTyAgICAgICAgICAgICAgICAgID0gMTsKQEAgLTM4LDQgKzM4LDQgQEAg
bW9kdWxlIHN2ZyB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUklOR19JTlRF
TlRfQUJTT0xVVEVfQ09MT1JJTUVUUklDID0gNTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaWRsCmluZGV4IDU0ZjRjNjE5ZjA4NDM3OGQxYmM3OGIyOGVjMjFh
ZTcxZTU5MTg3MGMuLjJmNTliNWFmNDkzMGZiY2ZkZWI0OGY0MDg2MTkzOGQ3NzUxNzBiZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAgbW9kdWxl
IHN2ZyB7CiAgICAgLy8gVE9ETzogbm8gY3NzOjpWaWV3Q1NTIGF2YWlsYWJsZSEKICAgICAvLyBU
T0RPOiBGaXggU1ZHU1ZHRWxlbWVudCBpbmhlcml0YW5jZSAoY3NzOjpEb2N1bWVudENTUykhIAog
ICAgIC8vIFRPRE86IG5vIGV2ZW50czo6RG9jdW1lbnRFdmVudCBhdmFpbGFibGUhCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHU1ZHRWxl
bWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCA6IFNWR0Vs
ZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCkBAIC00MCw5ICs0MCw5IEBAIG1v
ZHVsZSBzdmcgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGgg
d2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBoZWln
aHQ7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY29udGVudFNjcmlwdFR5
cGUKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pKi87
CisgICAgICAgICAgICAgICAgICAgICAvKnNldHJhaXNlcyhET01FeGNlcHRpb24pKi87CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY29udGVudFN0eWxlVHlwZQotICAgICAg
ICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAg
ICAgICAgICAgICAgIC8qc2V0cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNWR1JlY3Qgdmlld3BvcnQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWTsKQEAgLTUxLDI2ICs1MSwyNiBAQCBtb2R1
bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gdXNlQ3VycmVudFZp
ZXc7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdWaWV3U3BlYyBjdXJyZW50VmlldzsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGN1cnJlbnRTY2FsZQotICAgICAgICAg
ICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKKyAgICAgICAgICAg
ICAgICAgICAgIC8qc2V0cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNWR1BvaW50IGN1cnJlbnRUcmFuc2xhdGU7CiAKLSAgICAgICAgdW5zaWduZWQg
bG9uZyBzdXNwZW5kUmVkcmF3KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2ln
bmVkIGxvbmcgbWF4V2FpdE1pbGxpc2Vjb25kcyk7Ci0gICAgICAgIHZvaWQgdW5zdXNwZW5kUmVk
cmF3KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIHVuc2lnbmVkIGxvbmcgc3VzcGVu
ZEhhbmRsZUlkKTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBzdXNwZW5kUmVkcmF3KFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgbWF4V2FpdE1pbGxpc2Vjb25k
cyk7CisgICAgICAgIHZvaWQgdW5zdXNwZW5kUmVkcmF3KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIHVuc2lnbmVkIGxvbmcgc3VzcGVuZEhhbmRsZUlkKTsKICAgICAgICAgdm9pZCB1
bnN1c3BlbmRSZWRyYXdBbGwoKTsKICAgICAgICAgdm9pZCBmb3JjZVJlZHJhdygpOwogICAgICAg
ICB2b2lkIHBhdXNlQW5pbWF0aW9ucygpOwogICAgICAgICB2b2lkIHVucGF1c2VBbmltYXRpb25z
KCk7CiAgICAgICAgIGJvb2xlYW4gYW5pbWF0aW9uc1BhdXNlZCgpOwogICAgICAgICBmbG9hdCBn
ZXRDdXJyZW50VGltZSgpOwotICAgICAgICB2b2lkIHNldEN1cnJlbnRUaW1lKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIGZsb2F0IHNlY29uZHMpOwotICAgICAgICBOb2RlTGlzdCBn
ZXRJbnRlcnNlY3Rpb25MaXN0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNWR1Jl
Y3QgcmVjdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHRWxlbWVudCByZWZlcmVuY2VFbGVtZW50KTsKLSAg
ICAgICAgTm9kZUxpc3QgZ2V0RW5jbG9zdXJlTGlzdChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5k
ZWZpbmVkXSBTVkdSZWN0IHJlY3QsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNWR0VsZW1lbnQgcmVmZXJlbmNlRWxl
bWVudCk7Ci0gICAgICAgIGJvb2xlYW4gY2hlY2tJbnRlcnNlY3Rpb24oaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gU1ZHRWxlbWVudCBlbGVtZW50LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBTVkdSZWN0
IHJlY3QpOwotICAgICAgICBib29sZWFuIGNoZWNrRW5jbG9zdXJlKGluIFtPcHRpb25hbD1EZWZh
dWx0SXNVbmRlZmluZWRdIFNWR0VsZW1lbnQgZWxlbWVudCwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gU1ZHUmVjdCByZWN0
KTsKKyAgICAgICAgdm9pZCBzZXRDdXJyZW50VGltZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZp
bmVkXSBpbiBmbG9hdCBzZWNvbmRzKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0SW50ZXJzZWN0aW9u
TGlzdChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBTVkdSZWN0IHJlY3QsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIFNWR0VsZW1lbnQgcmVmZXJlbmNlRWxlbWVudCk7CisgICAgICAgIE5vZGVMaXN0
IGdldEVuY2xvc3VyZUxpc3QoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHUmVj
dCByZWN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVm
YXVsdElzVW5kZWZpbmVkXSBpbiBTVkdFbGVtZW50IHJlZmVyZW5jZUVsZW1lbnQpOworICAgICAg
ICBib29sZWFuIGNoZWNrSW50ZXJzZWN0aW9uKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRd
IGluIFNWR0VsZW1lbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHUmVjdCByZWN0KTsKKyAgICAg
ICAgYm9vbGVhbiBjaGVja0VuY2xvc3VyZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBp
biBTVkdFbGVtZW50IGVsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFNWR1JlY3QgcmVjdCk7CiAgICAgICAgIHZv
aWQgZGVzZWxlY3RBbGwoKTsKIAogICAgICAgICBTVkdOdW1iZXIgY3JlYXRlU1ZHTnVtYmVyKCk7
CkBAIC04MCw4ICs4MCw4IEBAIG1vZHVsZSBzdmcgewogICAgICAgICBTVkdNYXRyaXggY3JlYXRl
U1ZHTWF0cml4KCk7CiAgICAgICAgIFNWR1JlY3QgY3JlYXRlU1ZHUmVjdCgpOwogICAgICAgICBT
VkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtKCk7Ci0gICAgICAgIFNWR1RyYW5zZm9ybSBj
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIFNWR01hdHJpeCBtYXRyaXgpOwotICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkKGlu
IFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBlbGVtZW50SWQpOworICAg
ICAgICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeChbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBTVkdNYXRyaXggbWF0cml4KTsKKyAgICAgICAgRWxlbWVu
dCBnZXRFbGVtZW50QnlJZChbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBET01TdHJp
bmcgZWxlbWVudElkKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaWRsCmluZGV4IDExMWVlNTlhZmE5MDk5YjY3Y2Q3NWU2MTdiZTA3ZDg0MGU2YmQ3
YTkuLmU4MDQ5NDg4NWQ3ZjIwZjg0NDY2M2Q4Y2ZhNTY0Njc2MDQxYTUzMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5pZGwKQEAgLTI1LDEzICsyNSwxMyBAQAogCiBtb2R1
bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1T
VkcKLSAgICBdIFNWR1NjcmlwdEVsZW1lbnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNl
IFNWR1NjcmlwdEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCB7Ci0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZ10gRE9NU3RyaW5nIHR5cGUKLSAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pKi87CisgICAgICAgICAgICAgICAgIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgIC8q
c2V0cmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NldEVsZW1lbnQuaWRsCmluZGV4IGEyODU3ODkyMzU5OGMxNjIxYWM5ZWViNTFkMWY5YTRi
ZTgwMjk3N2QuLjUyMGY5ZTIzNWQ0ZTc5MTAxNjY2ZWE3MzIwN2M3MzNiODhjZTM5MmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5pZGwKQEAgLTI1LDkgKzI1LDkgQEAKIAogbW9kdWxl
IHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZH
Ci0gICAgXSBTVkdTZXRFbGVtZW50IDogU1ZHQW5pbWF0aW9uRWxlbWVudCB7CisgICAgXSBpbnRl
cmZhY2UgU1ZHU2V0RWxlbWVudCA6IFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIH07CiAKLX0K
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmlkbAppbmRleCAxNGEyYmEzMGE4NWEw
MDA1NTNlZWE4ODViMzAyOTAzZjQxZTA5ODdhLi4zNTg0ODI4MWE4YjMxMWRjM2NiODZlNjIyMTJj
ODI3MjI3YWEwMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1l
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5pZGwKQEAgLTI1
LDExICsyNSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwog
ICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1N0b3BFbGVtZW50IDogU1ZHRWxlbWVu
dCwKKyAgICBdIGludGVyZmFjZSBTVkdTdG9wRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgb2Zmc2V0OwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlz
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5pZGwKaW5kZXggOWQ5NGU3
MTFiYmFmNGFkNDU3MmI2YWRiOTgxMjE0MTM1NjMwNzkyZS4uZTZkZDE3Y2UxMGM0OWRmZDJhM2Fk
ZmM5OGM2OTFkNmVmMWQ2OWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
cmluZ0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmlkbApA
QCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1N0cmluZ0xpc3QgeworICAgIF0g
aW50ZXJmYWNlIFNWR1N0cmluZ0xpc3QgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogCiAgICAgICAgIHZvaWQgY2xlYXIoKQpAQCAtNDYs
NCArNDYsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24s
IFNWR0V4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTdHlsYWJsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGFibGUu
aWRsCmluZGV4IDUzMjY5Yzk4ZWE4OGIyODBkNTVkYjRlYWNhMzlmMTkwZmE4ZGI5OGEuLjUwMGI3
YTdjNmY4Yjk5ZGMxM2Y2MWFhMzZkZGEwYjU1ZDMxZDc4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsYWJsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
eWxhYmxlLmlkbApAQCAtMjcsMTYgKzI3LDE2IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50
ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1By
b3RvY29sLAogICAgICAgICBTdXBwcmVzc1RvSlNPYmplY3QsCiAgICAgICAgIE9taXRDb25zdHJ1
Y3RvcgotICAgIF0gU1ZHU3R5bGFibGUgeworICAgIF0gaW50ZXJmYWNlIFNWR1N0eWxhYmxlIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGNsYXNzTmFtZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CiAK
LSAgICAgICAgQ1NTVmFsdWUgZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgQ1NTVmFsdWUgZ2V0
UHJlc2VudGF0aW9uQXR0cmlidXRlKFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERP
TVN0cmluZyBuYW1lKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmlkbAppbmRleCA3ZmJlOTk5NTUwYzQ0Y2JkZWUzN2I2NTM3NTAwYzllYWQ3OGM2ODYz
Li4yZTZkYzhmMTA1MTYwOTcwYzM3MWM3NGNlNTg4NmM4NDIwMGE3OTExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmlkbApAQCAtMjYsMTcgKzI2LDE3IEBACiAKIG1vZHVsZSBz
dmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwot
ICAgIF0gU1ZHU3R5bGVFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdT
dHlsZUVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UgewogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0
cmluZyB0eXBlCi0gICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgICAgICAgICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBtZWRpYQotICAgICAgICAgICAgICAgICAg
ICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgICAgICAgICAgc2V0
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgdGl0bGUKLSAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgICAgICAgICAgICAgIHNldHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5pZGwKaW5kZXggMTBm
ODMzMmVlYTE0YTFlM2IxODQzYmQxMmMzZmZmN2MzMjQ2M2Q4Zi4uODg2ZDUwNDZhODE1ZmFmYWEy
MmI5ZGE2ZjIzZTlkN2MxZDYxZTAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmlkbApAQCAtMjUsOSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1N3aXRjaEVsZW1l
bnQgOiBTVkdFbGVtZW50LAorICAgIF0gaW50ZXJmYWNlIFNWR1N3aXRjaEVsZW1lbnQgOiBTVkdF
bGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtMzUsNCAr
MzUsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNWR1RyYW5zZm9ybWFibGUgewogICAgIH07CiAKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5pZGwKaW5kZXggZjIxNDExNjkyY2U2Yjc1Y2E1
OTJjM2VjNzQwM2Q1Yjk4NzJjNzYxMy4uZDE4NjA4MDM1NmQ4NjE0NWI5MTA1YjQxN2IzMzdmNGM3
MWQwZGM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmlkbApAQCAtMjUs
MTMgKzI1LDEzIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHU3ltYm9sRWxlbWVudCA6IFNWR0VsZW1l
bnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHU3ltYm9sRWxlbWVudCA6IFNWR0VsZW1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3Bh
Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaXRUb1ZpZXdCb3ggewogICAgIH07
CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmlkbAppbmRleCAwODYzN2Y0
YmQyZTk3NjFhM2RlNTBmZTNkZWMzZTIwMmRiMzgzOGQyLi43NDJhNmFlNzZhYWYyOGJhNzRkMWYw
ZmEzMjI4NDQwZGViNWQyNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJl
ZkVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5pZGwK
QEAgLTI1LDEwICsyNSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisg
ICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1RSZWZFbGVtZW50IDogU1ZH
VGV4dFBvc2l0aW9uaW5nRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdUUmVmRWxlbWVudCA6
IFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlIHsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmlkbAppbmRleCA1YWVjM2E4OGY4NzBmNGNi
YmYzNGZhY2UwNzcwMTZkZDdjMWJlM2M3Li41MjZlYTFmNzJhZGNkMzNiOTFhM2YwMWJjOGZmNDkz
YzA3Nzc3OTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmlkbApAQCAtMjUs
OSArMjUsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1RTcGFuRWxlbWVudCA6IFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQgeworICAgIF0gaW50ZXJmYWNlIFNWR1RTcGFuRWxlbWVudCA6IFNWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQgewogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmlkbAppbmRleCBkOWY3OWNjYmYyYTljN2Y4NWY2ZTVjNWI2ODM1ODNlOGMzNWI1MGI0Li5jM2Q3
NTRlNjRiOWUzMDFkMjU0MTU1MzkzMmQ0MjRlMzI4MmU5Y2VjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGVzdHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5pZGwKQEAgLTI2LDE3ICsyNiwxNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFj
ZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcsCiAgICAgICAgIE9iakNQcm90b2Nv
bCwKICAgICAgICAgU3VwcHJlc3NUb0pTT2JqZWN0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IK
LSAgICBdIFNWR1Rlc3RzIHsKKyAgICBdIGludGVyZmFjZSBTVkdUZXN0cyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRmVhdHVyZXM7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdTdHJpbmdMaXN0IHJlcXVpcmVkRXh0ZW5zaW9uczsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1N0cmluZ0xpc3Qgc3lzdGVtTGFuZ3VhZ2U7CiAK
LSAgICAgICAgYm9vbGVhbiBoYXNFeHRlbnNpb24oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZF0gRE9NU3RyaW5nIGV4dGVuc2lvbik7CisgICAgICAgIGJvb2xlYW4gaGFzRXh0ZW5zaW9u
KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIERPTVN0cmluZyBleHRlbnNpb24pOwog
ICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaWRsCmluZGV4IDZjZThhNTMwMjZmMjJlYzQyYzE4MGEzY2FmNjI2OGVkM2YyYjE4MDYuLjZk
ZmJlYzM2ZTgxYTZhM2MyYThmOWI0YzE1OTI0MzM5MzAwYjViNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaWRsCkBAIC0yNSw5ICsyNSw5IEBACiAKIG1v
ZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFs
PVNWRwotICAgIF0gU1ZHVGV4dENvbnRlbnRFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAgICBdIGlu
dGVyZmFjZSBTVkdUZXh0Q29udGVudEVsZW1lbnQgOiBTVkdFbGVtZW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdUZXN0cywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZH
TGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLApAQCAtNDIsMjEgKzQyLDIx
IEBAIG1vZHVsZSBzdmcgewogCiAgICAgICAgIGxvbmcgZ2V0TnVtYmVyT2ZDaGFycygpOwogICAg
ICAgICBmbG9hdCBnZXRDb21wdXRlZFRleHRMZW5ndGgoKTsKLSAgICAgICAgZmxvYXQgZ2V0U3Vi
U3RyaW5nTGVuZ3RoKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gdW5z
aWduZWQgbG9uZyBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25nIGxlbmd0
aCkKKyAgICAgICAgZmxvYXQgZ2V0U3ViU3RyaW5nTGVuZ3RoKFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWQsSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4
XSBpbiB1bnNpZ25lZCBsb25nIGxlbmd0aCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOwotICAgICAgICBTVkdQb2ludCBnZXRTdGFydFBvc2l0aW9uT2ZDaGFyKGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQpCisgICAg
ICAgIFNWR1BvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIoW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZCxJc0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBTVkdQb2ludCBnZXRFbmRQb3NpdGlvbk9mQ2hh
cihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0KQorICAgICAgICBTVkdQb2ludCBnZXRFbmRQb3NpdGlvbk9mQ2hhcihbT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFNWR1JlY3QgZ2V0RXh0ZW50
T2ZDaGFyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gdW5zaWduZWQg
bG9uZyBvZmZzZXQpCisgICAgICAgIFNWR1JlY3QgZ2V0RXh0ZW50T2ZDaGFyKFtPcHRpb25hbD1E
ZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgZmxvYXQgZ2V0Um90YXRpb25P
ZkNoYXIoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSB1bnNpZ25lZCBs
b25nIG9mZnNldCkKKyAgICAgICAgZmxvYXQgZ2V0Um90YXRpb25PZkNoYXIoW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCkKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBsb25nIGdldENoYXJOdW1BdFBv
c2l0aW9uKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFNWR1BvaW50IHBvaW50KTsK
LSAgICAgICAgdm9pZCBzZWxlY3RTdWJTdHJpbmcoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVm
aW5lZCxJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWQsSXNJbmRleF0gdW5zaWdu
ZWQgbG9uZyBsZW5ndGgpCisgICAgICAgIGxvbmcgZ2V0Q2hhck51bUF0UG9zaXRpb24oW09wdGlv
bmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gU1ZHUG9pbnQgcG9pbnQpOworICAgICAgICB2b2lk
IHNlbGVjdFN1YlN0cmluZyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkLElzSW5kZXhdIGlu
IHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09w
dGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZCxJc0luZGV4XSBpbiB1bnNpZ25lZCBsb25nIGxlbmd0
aCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmlkbAppbmRleCBhMzgxZGQyYThiM2Q2YzBhZDc3
OGQ5OTY2NTEwN2Y1NjljNDQxOTk1Li5lYTJkZDhmYmQ3YzNkYWFmZDkxY2NhZDdlMjA3MDhmNjEw
OGI0ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5pZGwKQEAgLTI1LDEwICsy
NSwxMCBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1RleHRFbGVtZW50IDogU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudCwKKyAgICBdIGludGVyZmFjZSBTVkdUZXh0RWxlbWVudCA6IFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU1ZHVHJhbnNmb3JtYWJsZSB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5pZGwKaW5kZXggMDkwNGEwY2ZiZDk2ZDJmZGMzN2Ix
NjIyOTY1MjQ2MmQ4NDNlYTc3MC4uNzVlNWQ1YTE4NTRjM2I0NjEyOGM3ZjEyZmRhOGI1OWUxMTEw
Mzk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5pZGwKQEAgLTI1
LDkgKzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAg
ICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdUZXh0UGF0aEVsZW1lbnQgOiBTVkdUZXh0
Q29udGVudEVsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHVGV4dFBhdGhFbGVtZW50IDogU1ZH
VGV4dENvbnRlbnRFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UgeyAgICAKICAgICAgICAgLy8gdGV4dFBh
dGggTWV0aG9kIFR5cGVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFWFRQQVRIX01F
VEhPRFRZUEVfVU5LTk9XTiAgID0gMDsKQEAgLTQ0LDQgKzQ0LDQgQEAgbW9kdWxlIHN2ZyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHNwYWNpbmc7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmlkbAppbmRleCAwNDEwZjc3ZTEzNzk2ZjgwNThmNjM4ZGEzY2IyNDhjYjIy
M2RlNDUxLi5iZGRjMDdlNWQ5MDVjZGFmZGU3NGY1ZWJkNGZmMWI1OTVmMmZmN2Q3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaWRsCkBAIC0y
NSw5ICsyNSw5IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAgIF0gU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCA6
IFNWR1RleHRDb250ZW50RWxlbWVudCB7CisgICAgXSBpbnRlcmZhY2UgU1ZHVGV4dFBvc2l0aW9u
aW5nRWxlbWVudCA6IFNWR1RleHRDb250ZW50RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aExpc3QgeDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IGR4OwpAQCAtMzUsNCArMzUsNCBAQCBtb2R1bGUgc3ZnIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCByb3RhdGU7
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRs
ZUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5pZGwKaW5k
ZXggMmNmMjQxYjg2ZmNhNzNkMTEwNjdiOTk2NTUyOTJhZDYwNWM2OGRmMC4uN2Y3YzE4YzgzNTQ0
Yzk3NmFlZTkwMWRiOTVkOWQ0MTM1MmQxMDcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RpdGxlRWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxl
RWxlbWVudC5pZGwKQEAgLTI1LDExICsyNSwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGlu
dGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1RpdGxl
RWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHVGl0bGVFbGVtZW50IDog
U1ZHRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdTdHlsYWJsZSB7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaWRsIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybS5pZGwKaW5kZXggZTNlOWY1ZTFmMzcyNzA4ZjM5YWYzMzFmZjljNTFhNjY0
NGQ4N2YwYi4uY2YxMzJjMDdlNmJmYTIyYjQwZmU4OWQyMzRiNzI3YWIwMDhkMjQ3YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5pZGwKQEAgLTIxLDkgKzIxLDkgQEAKIAogbW9kdWxlIHN2
ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0g
ICAgXSBTVkdUcmFuc2Zvcm0geyAKKyAgICBdIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0geyAKICAg
ICAgICAgLy8gVHJhbnNmb3JtIFR5cGVzCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19UUkFOU0ZPUk1fVU5LTk9XTiA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19UUkFOU0ZPUk1fTUFUUklYID0gMTsKQEAgLTQ1LDQgKzQ1LDQgQEAgbW9kdWxlIHN2ZyB7CiAg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgc2V0U2tld1koaW4gZmxvYXQgYW5nbGUp
OwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJh
bnNmb3JtTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5pZGwK
aW5kZXggNTkwZmU2NWNmZmY3YzIzNzJlZjVkNWM5Mzc1MzFiYTQ0NTI1ZTkwOS4uYmE5NDM4ZTkw
NTk3YWYxZTI0NDEyZTY1NWFhNjc5NDM2NmQ1ODA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
cmFuc2Zvcm1MaXN0LmlkbApAQCAtMjYsOSArMjYsOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1TVkcKLSAgICBdIFNWR1Ry
YW5zZm9ybUxpc3QgeworICAgIF0gaW50ZXJmYWNlIFNWR1RyYW5zZm9ybUxpc3QgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogCiAgICAg
ICAgIHZvaWQgY2xlYXIoKQpAQCAtNTMsNCArNTMsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtYWJsZS5pZGwKaW5kZXggMWFmMzg5NTY0YjVmN2I4MzNiNjE2MDViNmQ2
NTYyZDdmNjU0ZjI5MS4uNTIxZmY1YmNmMjJlODk3M2I2N2Y3MDhkOWFhNGEzN2FiMWMwNDgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmlkbApAQCAtMjYsMTIgKzI2LDEy
IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENv
bmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IKLSAgICBdIFNWR1RyYW5zZm9ybWFibGUgOiBTVkdMb2NhdGFibGUgeworICAgIF0gaW50
ZXJmYWNlIFNWR1RyYW5zZm9ybWFibGUgOiBTVkdMb2NhdGFibGUgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHRyYW5zZm9ybTsKICAgICB9Owog
Ci19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmlkbAppbmRleCA5NjA4NzNl
OWNkNjBhYTY5NzZmNzEzZjg3NThmZTg4Yzc1YWY3ZmMzLi5hOTgwMTAxNmM5M2NjYmFlZjRkNDM2
ZmRlMGY5ODcxOWIzM2I4MTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJ
UmVmZXJlbmNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVVJJUmVmZXJlbmNlLmlk
bApAQCAtMjYsMTMgKzI2LDEzIEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsK
KyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgT2JqQ1Byb3RvY29sLAog
ICAgICAgICBTdXBwcmVzc1RvSlNPYmplY3QsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAg
IF0gU1ZHVVJJUmVmZXJlbmNlIHsKKyAgICBdIGludGVyZmFjZSBTVkdVUklSZWZlcmVuY2Ugewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaHJlZjsKICAgICB9
OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5cGVzLmlkbAppbmRleCA3ZWQ4YjBiYTZh
YTE3Y2UxYTg1MzE3MmFlYWViZGMyM2M4NTI1ZmJiLi5mYTA3NDcwOTdkZmIxYjIyOTE0NGZhYmUx
ZDIzYjliY2IzNGE4MThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5
cGVzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5cGVzLmlkbApAQCAtMjUs
MTQgKzI1LDE0IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAg
ICAgICAgIENvbmRpdGlvbmFsPVNWRywKICAgICAgICAgU3VwcHJlc3NUb0pTT2JqZWN0Ci0gICAg
XSBTVkdVbml0VHlwZXMgeworICAgIF0gaW50ZXJmYWNlIFNWR1VuaXRUeXBlcyB7CiAgICAgICAg
IC8vIFVuaXQgVHlwZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1VOSVRfVFlQ
RV9VTktOT1dOICAgICAgICAgICA9IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNW
R19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UgICAgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YID0gMjsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaWRsCmluZGV4IDAzMmY0NTNlYTA5ZjE3
Nzc1YTA0MjE5M2JmYWJmZWJhZDMzMGFkOWMuLmI3ZTRhZDBiMWIxNzIxYjQxNTE0MjMzZTI0NzE4
YWE4OTIyZmM3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5pZGwKQEAgLTI1LDkg
KzI1LDkgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAg
ICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdVc2VFbGVtZW50IDogU1ZHRWxlbWVudCwKKyAg
ICBdIGludGVyZmFjZSBTVkdVc2VFbGVtZW50IDogU1ZHRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1Rlc3RzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTGFuZ1NwYWNl
LApAQCAtNDMsNCArNDMsNCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFNWR0VsZW1lbnRJbnN0YW5jZSBhbmltYXRlZEluc3RhbmNlUm9vdDsKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmlkbAppbmRleCA3ZmU4ZGMyOWM4
YWU0OGRlY2ZiNmM0NTRiYjAxNWJlMzY2MjIxOWFiLi42ZDk4ZDkyOTQ1MDQzNDA2YjZjYjA0YTgz
MmQxYzVlOWQxOTg2MTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5F
bGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmlkbApA
QCAtMTksOSArMTksOSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbCisgICAg
WwogICAgICAgICBDb25kaXRpb25hbD1TVkcmU1ZHX0ZPTlRTCi0gICAgXSBTVkdWS2VybkVsZW1l
bnQgOiBTVkdFbGVtZW50IHsKKyAgICBdIGludGVyZmFjZSBTVkdWS2VybkVsZW1lbnQgOiBTVkdF
bGVtZW50IHsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5p
ZGwKaW5kZXggMDRiMjQ1N2QzZmE2M2RkYzE1MmMwMzk1OWQ4ZThiZjEyMTc4YWY2Ni4uMDBmNGI3
YTEyNWJkNWI4YWMwNzkyNTgyNzY4ZGRiZGNjZDcxOTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld0VsZW1lbnQuaWRsCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHCi0gICAgXSBTVkdW
aWV3RWxlbWVudCA6IFNWR0VsZW1lbnQsCisgICAgXSBpbnRlcmZhY2UgU1ZHVmlld0VsZW1lbnQg
OiBTVkdFbGVtZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRml0VG9WaWV3Qm94LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1pvb21BbmRQYW4gewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHU3RyaW5nTGlzdCB2aWV3VGFyZ2V0OwogICAg
IH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMu
aWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmlkbAppbmRleCBlYzU0NWQxNGJk
ZDVlNjQxZGRjODc3NTA2OWFiYjUwNGYxZDk1Mzc2Li45ZTI2MmViYTRlODI4N2Y3YjA3YWExYTU1
MTc1MjFiMWE5ZTZkNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1Nw
ZWMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5pZGwKQEAgLTI3LDEw
ICsyNywxMCBAQCBtb2R1bGUgc3ZnIHsKIAogICAgIC8vIFNWR1ZpZXdTcGVjIGludGVudGlvbmFs
bHkgZG9lc24ndCBpbmhlcml0IGZyb20gU1ZHWm9vbUFuZFBhbiAmIFNWR0ZpdFRvVmlld0JveCBv
biB0aGUgSURMcy4KICAgICAvLyBJdCB3b3VsZCByZXF1aXJlIHRoYXQgYW55IG9mIHRob3NlIGNs
YXNzZXMgd291bGQgYmUgUmVmQ291bnRlZCwgYW5kIHdlIHdhbnQgdG8gYXZvaWQgdGhhdC4KLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9U1ZHLAogICAgICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gU1ZHVmlld1NwZWMgeworICAgIF0gaW50ZXJmYWNl
IFNWR1ZpZXdTcGVjIHsKICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHVHJhbnNmb3Jt
TGlzdCB0cmFuc2Zvcm07CiAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0VsZW1lbnQg
dmlld1RhcmdldDsKICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZpZXdC
b3hTdHJpbmc7CkBAIC00MCwxMSArNDAsMTEgQEAgbW9kdWxlIHN2ZyB7CiAKICAgICAgICAgICAv
LyBTVkdab29tQW5kUGFuCiAgICAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHpvb21B
bmRQYW4KLSAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICAgICAgICBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAgIC8vIFNWR0ZpdFRv
Vmlld0JveAogICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFJlY3Qgdmll
d0JveDsKICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvIHByZXNlcnZlQXNwZWN0UmF0aW87CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29tQW5kUGFuLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdab29tQW5kUGFuLmlkbAppbmRleCAzNzYyMWJiOGNiNmIyNmU0YTM3ZmE5MGIyNzQ1
YWI3NjZmYzc0NmRkLi4zODQ4OGRkNmUzZGQ4NDQ4N2Y4MTU1NzU4YmNlNjQzZDE3OTIzY2ViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUFuZFBhbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21BbmRQYW4uaWRsCkBAIC0yNiwxMSArMjYsMTEgQEAKIAog
bW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9u
YWw9U1ZHLAogICAgICAgICBPYmpDUHJvdG9jb2wsCiAgICAgICAgIFN1cHByZXNzVG9KU09iamVj
dAotICAgIF0gU1ZHWm9vbUFuZFBhbiB7CisgICAgXSBpbnRlcmZhY2UgU1ZHWm9vbUFuZFBhbiB7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19aT09NQU5EUEFOX1VOS05PV04gPSAw
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfWk9PTUFORFBBTl9ESVNBQkxFID0g
MTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1pPT01BTkRQQU5fTUFHTklGWSA9
IDI7CkBAIC0zOCw0ICszOCw0IEBAIG1vZHVsZSBzdmcgewogICAgICAgICBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgem9vbUFuZFBhbjsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1pvb21FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Wm9vbUV2ZW50LmlkbAppbmRleCBhMjg4MjM3OWExMWRmMjEwMTA2YTM1NjU0YjgzNzNiOGU5NDNi
NTkxLi45NWEyNmIxMmQzNDUwNDhiYzM0YmY4Zjg4MWE0MTQ4MGI1ZDVlM2JlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHWm9vbUV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHWm9vbUV2ZW50LmlkbApAQCAtMjUsMTQgKzI1LDE0IEBACiAKIG1vZHVsZSBzdmcg
ewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNWRwotICAg
IF0gU1ZHWm9vbUV2ZW50IDogVUlFdmVudCB7IAorICAgIF0gaW50ZXJmYWNlIFNWR1pvb21FdmVu
dCA6IFVJRXZlbnQgeyAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qgem9vbVJl
Y3RTY3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwcmV2aW91c1NjYWxl
OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUG9pbnQgcHJldmlv
dXNUcmFuc2xhdGU7CisgICAgICAgIFtJbW11dGFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQ
b2ludCBwcmV2aW91c1RyYW5zbGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0
IG5ld1NjYWxlOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUG9p
bnQgbmV3VHJhbnNsYXRlOworICAgICAgICBbSW1tdXRhYmxlXSByZWFkb25seSBhdHRyaWJ1dGUg
U1ZHUG9pbnQgbmV3VHJhbnNsYXRlOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAxOTY1ZjA1ZTdiNjgzNGZmNWM1ZDM4
Y2I4OTAxOGRiY2U2OGJjNGY2Li5lYjBmYmVmNWM4MmZhNDQ0OTA5Y2FjMzAxYWRhZmIzOGYzNmY5
ZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAg
LTI0LDkgKzI0LDkgQEAKICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBJbnRlcm5hbFNldHRpbmdzIHsK
KyAgICBdIGludGVyZmFjZSBJbnRlcm5hbFNldHRpbmdzIHsKICAgICAgICAgdm9pZCBzZXRJbnNw
ZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBsb25nIG1heGltdW1SZXNvdXJjZXNDb250
ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRF
bmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYzLDUgKzYzLDUgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoaW4gYm9vbGVhbiBjcmVhdGVz
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1c1Jlc3Ry
aWN0ZWQoaW4gYm9vbGVhbiByZXN0cmljdGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9
OwotfQorfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDJmMTdmNTU1
OGUyNTg1YmQyMmYyNjI3NmNkZWZlMmNiMGE3MDAzMzUuLjk4ODRkZWViYWZjMGVhMWQ0MDJhNjBj
ZjMyNTYzMTk2ZGZkNjgyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTI0LDkgKzI0LDkgQEAKICAqLwogCiBtb2R1bGUgd2luZG93IHsKLSAgICBpbnRlcmZhY2UgWwor
ICAgIFsKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBJbnRlcm5hbHMgeworICAgIF0g
aW50ZXJmYWNlIEludGVybmFscyB7CiAgICAgICAgIERPTVN0cmluZyBhZGRyZXNzKGluIE5vZGUg
bm9kZSk7CiAKICAgICAgICAgRE9NU3RyaW5nIGVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGluIEVs
ZW1lbnQgZWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC0xNjksNSArMTY5LDUgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2lu
Z0NvbnRlbnRTZWN1cml0eVBvbGljeShpbiBET01TdHJpbmcgc2NoZW1lKTsKICAgICAgICAgdm9p
ZCByZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xp
Y3koaW4gRE9NU3RyaW5nIHNjaGVtZSk7CiAgICAgfTsKLX0KK307CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwKaW5kZXggM2M5MGQxZWQ3OTdiZWQ4MTQwMzIxZmNi
ZjY1ZTdhOGJlM2IxYzQ3OS4uMTk3NzFkODQyMDU3NDEyMGU2NzViYjQ3MmI5OTQxZjc0ZmI1Nzdm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwKQEAgLTMxLDIz
ICszMSwyMyBAQAogCiBtb2R1bGUgdGhyZWFkcyB7CiAKLSAgICBpbnRlcmZhY2UgWworICAgIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9V09SS0VSUywKICAgICAgICAgQWN0aXZlRE9NT2JqZWN0LAog
ICAgICAgICBKU0N1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIEV2ZW50VGFyZ2V0Ci0gICAgXSBB
YnN0cmFjdFdvcmtlciB7CisgICAgXSBpbnRlcmZhY2UgQWJzdHJhY3RXb3JrZXIgewogCiAgICAg
ICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CiAKICAgICAgICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJlKTsKICAgICAg
ICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0
dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9v
bGVhbiB1c2VDYXB0dXJlKTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50
IGV2dCkKICAgICAgICAgICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29u
dGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQu
aWRsCmluZGV4IDQ4ZWNmZGNhZTI3ZmZmZTRmZWY0ZjlhNWI3MTZlMzMzODY1MDE5NWUuLjlmOWU4
Nzg1N2ZkYTI5NDcyMTYxNWVmNjY3MjQ4NDBkNjdjYTc0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmlkbApAQCAtMzAsMjQgKzMwLDI0
IEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAg
ICBDb25kaXRpb25hbD1XT1JLRVJTLAogICAgICAgICBFeHRlbmRzRE9NR2xvYmFsT2JqZWN0LAog
ICAgICAgICBJc1dvcmtlckNvbnRleHQsCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVj
dCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0g
ICAgXSBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0IDogV29ya2VyQ29udGV4dCB7CisgICAgXSBpbnRl
cmZhY2UgRGVkaWNhdGVkV29ya2VyQ29udGV4dCA6IFdvcmtlckNvbnRleHQgewogCiAjaWYgIWRl
ZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIFtDdXN0b21dIHZv
aWQgcG9zdE1lc3NhZ2UoaW4gYW55IG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJyYXkgbWVzc2Fn
ZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIGFueSBtZXNzYWdl
LCBbT3B0aW9uYWxdIGluIEFycmF5IG1lc3NhZ2VQb3J0cykKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9tXSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGlu
IGFueSBtZXNzYWdlLCBpbiBbT3B0aW9uYWxdIEFycmF5IHRyYW5zZmVyTGlzdCkKKyAgICAgICAg
W0N1c3RvbV0gdm9pZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBhbnkgbWVzc2FnZSwgW09wdGlvbmFs
XSBpbiBBcnJheSB0cmFuc2Zlckxpc3QpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICNlbHNlCiAgICAgICAgIC8vIFRoZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gZXhwb3NlIGFuIGFy
cmF5IHZpYSB0aGUgT2JqQyBiaW5kaW5ncywgc28gZm9yIG5vdyBqdXN0IGFsbG93IHBhc3Npbmcg
aW4gYSBzaW5nbGUgcG9ydC4KLSAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcg
bWVzc2FnZSwgaW4gW09wdGlvbmFsXSBNZXNzYWdlUG9ydCBtZXNzYWdlUG9ydCkKKyAgICAgICAg
dm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgW09wdGlvbmFsXSBpbiBNZXNz
YWdlUG9ydCBtZXNzYWdlUG9ydCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwog
I2VuZGlmCiAjZW5kaWYKQEAgLTU2LDQgKzU2LDQgQEAgbW9kdWxlIHRocmVhZHMgewogCiAgICAg
fTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29y
a2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAppbmRleCA0
MGNjZGQ0MDM0MWUwYmJkZWU1NDE5NDM1N2RmNDhkYzMxMzhiNGE4Li42NTU1ZDEwM2ZhZmM2YmJl
ZDBhOGVmNzllNTU2NDc0Mzk1ZTk4OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1NoYXJlZFdvcmtlci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRX
b3JrZXIuaWRsCkBAIC0zMSwxOCArMzEsMTggQEAKIAogbW9kdWxlIHRocmVhZHMgewogCi0gICAg
aW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNIQVJFRF9XT1JLRVJTLAog
ICAgICAgICBBY3RpdmVET01PYmplY3QsCiAgICAgICAgIEpTQ3VzdG9tQ29uc3RydWN0b3IsCi0g
ICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBzY3JpcHRVUkwsIGluIFtPcHRpb25hbD1E
ZWZhdWx0SXNOdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZSksCisgICAgICAgIENvbnN0cnVjdG9y
KGluIERPTVN0cmluZyBzY3JpcHRVUkwsIFtPcHRpb25hbD1EZWZhdWx0SXNOdWxsU3RyaW5nXSBp
biBET01TdHJpbmcgbmFtZSksCiAgICAgICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uLAogICAgICAgICBKU0N1c3Rv
bU1hcmtGdW5jdGlvbiwKICAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgICAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdAotICAgIF0gU2hhcmVkV29ya2VyIDogQWJzdHJhY3RXb3Jr
ZXIgeworICAgIF0gaW50ZXJmYWNlIFNoYXJlZFdvcmtlciA6IEFic3RyYWN0V29ya2VyIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0IHBvcnQ7CiAgICAgfTsKIAotfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuaWRsCmlu
ZGV4IDY3Njk4MTEyMjEyY2IxNjAxNmEzY2QxMjNkMzc2ZTUyNGY0MTg2OGUuLjYyZmZmODJlN2M5
ODJmZGIwY2QyZGQxMDIxZGUzNGQwODA1OTQ4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmlkbApAQCAtMzAsMTggKzMwLDE4IEBACiAKIG1vZHVs
ZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25h
bD1TSEFSRURfV09SS0VSUywKICAgICAgICAgRXh0ZW5kc0RPTUdsb2JhbE9iamVjdCwKICAgICAg
ICAgSXNXb3JrZXJDb250ZXh0LAogICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiAg
ICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvcgotICAgIF0g
U2hhcmVkV29ya2VyQ29udGV4dCA6IFdvcmtlckNvbnRleHQgeworICAgIF0gaW50ZXJmYWNlIFNo
YXJlZFdvcmtlckNvbnRleHQgOiBXb3JrZXJDb250ZXh0IHsKIAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dExpc3RlbmVyIG9uY29ubmVjdDsKIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlci5pZGwKaW5kZXggMDgzMzUzYzA0NjEyODM3OGIzYTkwYmFhNGEyOWVmYTczM2EwZDY1ZC4u
ZmY5ZjE0MjAyYzk3ZTc4YWQzMzVlZTQxNDRlMWY0M2I5ZTVlOWRjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyLmlkbApAQCAtMjcsNyArMjcsNyBAQAogCiBtb2R1bGUgdGhyZWFkcyB7CiAKLSAg
ICBpbnRlcmZhY2UgWworICAgIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V09SS0VSUywKICAgICAg
ICAgQWN0aXZlRE9NT2JqZWN0LAogICAgICAgICBKU0N1c3RvbUNvbnN0cnVjdG9yLApAQCAtMzYs
MjIgKzM2LDIyIEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAgQ29uc3RydWN0b3JSYWlzZXNF
eGNlcHRpb24sCiAgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICAgICAgSlNH
ZW5lcmF0ZVRvSlNPYmplY3QKLSAgICBdIFdvcmtlciA6IEFic3RyYWN0V29ya2VyIHsKKyAgICBd
IGludGVyZmFjZSBXb3JrZXIgOiBBYnN0cmFjdFdvcmtlciB7CiAKICAgICAgICAgYXR0cmlidXRl
IEV2ZW50TGlzdGVuZXIgb25tZXNzYWdlOwogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIFtDdXN0b21dIHZvaWQgcG9zdE1l
c3NhZ2UoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gQXJy
YXkgbWVzc2FnZVBvcnRzKQorICAgICAgICBbQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdlLCBbT3B0aW9uYWxdIGluIEFycmF5IG1lc3NhZ2VQ
b3J0cykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbQ3VzdG9t
XSB2b2lkIHdlYmtpdFBvc3RNZXNzYWdlKGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBtZXNzYWdl
LCBpbiBbT3B0aW9uYWxdIEFycmF5IG1lc3NhZ2VQb3J0cykKKyAgICAgICAgW0N1c3RvbV0gdm9p
ZCB3ZWJraXRQb3N0TWVzc2FnZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgW09w
dGlvbmFsXSBpbiBBcnJheSBtZXNzYWdlUG9ydHMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICNlbHNlCiAgICAgICAgIC8vIFRoZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gZXhwb3Nl
IGFuIGFycmF5IHZpYSB0aGUgT2JqQyBiaW5kaW5ncywgc28gZm9yIG5vdyBqdXN0IGFsbG93IHBh
c3NpbmcgaW4gYSBzaW5nbGUgcG9ydC4KLSAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJp
YWxpemVkU2NyaXB0VmFsdWUgbWVzc2FnZSwgaW4gW09wdGlvbmFsXSBNZXNzYWdlUG9ydCBtZXNz
YWdlUG9ydCkKKyAgICAgICAgdm9pZCBwb3N0TWVzc2FnZShpbiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUgbWVzc2FnZSwgW09wdGlvbmFsXSBpbiBNZXNzYWdlUG9ydCBtZXNzYWdlUG9ydCkKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCiAKICAgICAgICAgdm9pZCB0ZXJt
aW5hdGUoKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5pZGwKaW5kZXggNjVhNjRmZGMwZmQ2ZDc3NDg0OGNjZmViZDdjMTVkOTI4ZjVhODU0ZS4u
MDdiMDdlYjkwOTM5NWZiOTNiM2I1Mjc4NGUwMjEzZjI4ZjQ2N2RmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsCkBAIC0yNiw3ICsyNiw3IEBACiAKIG1vZHVsZSB0
aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25kaXRpb25hbD1X
T1JLRVJTLAogICAgICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgSlNDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yLApAQCAtMzcsMzYgKzM3LDM2IEBAIG1vZHVs
ZSB0aHJlYWRzIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgT21pdENvbnN0
cnVjdG9yLAogICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKLSAgICBdIFdvcmtlckNvbnRleHQg
eworICAgIF0gaW50ZXJmYWNlIFdvcmtlckNvbnRleHQgewogCiAgICAgICAgIC8vIFdvcmtlckds
b2JhbFNjb3BlCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9K
QVZBU0NSSVBUCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIFdvcmtl
ckNvbnRleHQgc2VsZjsKKyAgICAgICAgICAgICAgICAgW1JlcGxhY2VhYmxlXSBhdHRyaWJ1dGUg
V29ya2VyQ29udGV4dCBzZWxmOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
UmVwbGFjZWFibGVdIFdvcmtlckxvY2F0aW9uIGxvY2F0aW9uOworICAgICAgICAgICAgICAgICBb
UmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBXb3JrZXJMb2NhdGlvbiBsb2NhdGlvbjsKICAgICAgICAg
dm9pZCBjbG9zZSgpOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bmVycm9yOwogCiAgICAgICAgIC8vIFdvcmtlclV0aWxzCiAgICAgICAgIFtDdXN0b21dIHZvaWQg
aW1wb3J0U2NyaXB0cygvKltWYXJpYWRpY10gaW4gRE9NU3RyaW5nIHVybHMgKi8pOwotICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBXb3JrZXJOYXZpZ2F0b3IgbmF2aWdh
dG9yOworICAgICAgICAgICAgICAgICBbUmVwbGFjZWFibGVdIGF0dHJpYnV0ZSBXb3JrZXJOYXZp
Z2F0b3IgbmF2aWdhdG9yOwogCiAgICAgICAgIC8vIFRpbWVycwogICAgICAgICBbQ3VzdG9tXSBs
b25nIHNldFRpbWVvdXQoaW4gVGltZW91dEhhbmRsZXIgaGFuZGxlciwgaW4gbG9uZyB0aW1lb3V0
KTsKICAgICAgICAgLy8gW0N1c3RvbV0gbG9uZyBzZXRUaW1lb3V0KGluIERPTVN0cmluZyBjb2Rl
LCBpbiBsb25nIHRpbWVvdXQpOwotICAgICAgICB2b2lkIGNsZWFyVGltZW91dChpbiBbT3B0aW9u
YWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIGhhbmRsZSk7CisgICAgICAgIHZvaWQgY2xlYXJU
aW1lb3V0KFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIGxvbmcgaGFuZGxlKTsKICAg
ICAgICAgW0N1c3RvbV0gbG9uZyBzZXRJbnRlcnZhbChpbiBUaW1lb3V0SGFuZGxlciBoYW5kbGVy
LCBpbiBsb25nIHRpbWVvdXQpOwogICAgICAgICAvLyBbQ3VzdG9tXSBsb25nIHNldEludGVydmFs
KGluIERPTVN0cmluZyBjb2RlLCBpbiBsb25nIHRpbWVvdXQpOwotICAgICAgICB2b2lkIGNsZWFy
SW50ZXJ2YWwoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBoYW5kbGUpOwor
ICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0g
aW4gbG9uZyBoYW5kbGUpOwogCiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCiAg
ICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1
c2VDYXB0dXJlKTsKICAgICAgICAgdm9pZCByZW1vdmVFdmVudExpc3RlbmVyKGluIERPTVN0cmlu
ZyB0eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVu
ZXIgbGlzdGVuZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlv
bmFsXSBib29sZWFuIHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgW09wdGlvbmFsXSBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICBib29sZWFuIGRp
c3BhdGNoRXZlbnQoaW4gRXZlbnQgZXZ0KQogICAgICAgICAgICAgcmFpc2VzKEV2ZW50RXhjZXB0
aW9uKTsKIApAQCAtNzYsMjAgKzc2LDIwIEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAgYXR0
cmlidXRlIFdvcmtlckxvY2F0aW9uQ29uc3RydWN0b3IgV29ya2VyTG9jYXRpb247CiAKICNpZiBF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcKLSAgICAgICAgYXR0cmlidXRlIFtKU0N1c3RvbUdldHRl
cl0gTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvciBNZXNzYWdlQ2hhbm5lbDsKKyAgICAgICAgW0pT
Q3VzdG9tR2V0dGVyXSBhdHRyaWJ1dGUgTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvciBNZXNzYWdl
Q2hhbm5lbDsKICNlbmRpZgotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyXSBFdmVu
dFNvdXJjZUNvbnN0cnVjdG9yIEV2ZW50U291cmNlOwotICAgICAgICBhdHRyaWJ1dGUgW0pTQ3Vz
dG9tR2V0dGVyXSBYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yIFhNTEh0dHBSZXF1ZXN0OworICAg
ICAgICBbSlNDdXN0b21HZXR0ZXJdIGF0dHJpYnV0ZSBFdmVudFNvdXJjZUNvbnN0cnVjdG9yIEV2
ZW50U291cmNlOworICAgICAgICBbSlNDdXN0b21HZXR0ZXJdIGF0dHJpYnV0ZSBYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9yIFhNTEh0dHBSZXF1ZXN0OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVO
QUJMRV9CTE9CKSAmJiBFTkFCTEVfQkxPQgotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PUxFR0FDWV9XRUJLSVRfQkxPQl9CVUlMREVSXSBXZWJLaXRCbG9iQnVpbGRlckNvbnN0cnVjdG9y
IFdlYktpdEJsb2JCdWlsZGVyOworICAgICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQktJVF9C
TE9CX0JVSUxERVJdIGF0dHJpYnV0ZSBXZWJLaXRCbG9iQnVpbGRlckNvbnN0cnVjdG9yIFdlYktp
dEJsb2JCdWlsZGVyOwogICAgICAgICBhdHRyaWJ1dGUgQmxvYkNvbnN0cnVjdG9yIEJsb2I7CiAg
ICAgICAgIGF0dHJpYnV0ZSBGaWxlUmVhZGVyQ29uc3RydWN0b3IgRmlsZVJlYWRlcjsKICAgICAg
ICAgYXR0cmlidXRlIEZpbGVSZWFkZXJTeW5jQ29uc3RydWN0b3IgRmlsZVJlYWRlclN5bmM7CiAj
ZW5kaWYKIAotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUJMT0JdIERPTVVSTENvbnN0
cnVjdG9yIHdlYmtpdFVSTDsKKyAgICAgICAgW0NvbmRpdGlvbmFsPUJMT0JdIGF0dHJpYnV0ZSBE
T01VUkxDb25zdHJ1Y3RvciB3ZWJraXRVUkw7CiAKICAgICAgICAgYXR0cmlidXRlIEFycmF5QnVm
ZmVyQ29uc3RydWN0b3IgQXJyYXlCdWZmZXI7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgog
ICAgICAgICBhdHRyaWJ1dGUgSW50OEFycmF5Q29uc3RydWN0b3IgSW50OEFycmF5OyAvLyBVc2Fi
bGUgd2l0aCBuZXcgb3BlcmF0b3IKQEAgLTEwNCw0ICsxMDQsNCBAQCBtb2R1bGUgdGhyZWFkcyB7
CiAgICAgICAgIGF0dHJpYnV0ZSBEYXRhVmlld0NvbnN0cnVjdG9yIERhdGFWaWV3OyAvLyBVc2Fi
bGUgd2l0aCBuZXcgb3BlcmF0b3IKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckxvY2F0aW9uLmlkbAppbmRleCAzYjMwMmM0OTMyYmFkMWFmZjcwMWQ3N2I0NmEw
ZTQ5MTJiYTdjZTkzLi5lODczYzkwOWExZDUzODUzZGU0OTU3YjcwMDRhYmNmNmYyYWI4ODVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0aW9uLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvY2F0aW9uLmlkbApAQCAtMjgsMTEgKzI4
LDExIEBACiAKIG1vZHVsZSB0aHJlYWRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAg
ICAgICBDb25kaXRpb25hbD1XT1JLRVJTLAogICAgICAgICBKU0dlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbCwKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcwotICAgIF0gV29ya2VyTG9jYXRpb24gewor
ICAgIF0gaW50ZXJmYWNlIFdvcmtlckxvY2F0aW9uIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBocmVmOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHByb3RvY29sOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhvc3Q7CkBA
IC00NSw0ICs0NSw0IEBAIG1vZHVsZSB0aHJlYWRzIHsKICAgICAgICAgW05vdEVudW1lcmFibGVd
IERPTVN0cmluZyB0b1N0cmluZygpOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvRE9NUGFyc2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01QYXJz
ZXIuaWRsCmluZGV4IDVlNTFiYzFlNzA2ZTNmNmMwODQxNWZlNDIyMmJlZGUxNmMzYmU5ZTkuLmY4
OWQwY2Q4OWIyOGNkYzllNGQwODcwNzFlYWMwMTg2N2I4ZmE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9ET01QYXJzZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9ET01Q
YXJzZXIuaWRsCkBAIC0xOCwxMCArMTgsMTAgQEAKICAqLwogCiBtb2R1bGUgeHBhdGggewotICAg
IGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3RvcgotICAgIF0gRE9NUGFyc2Vy
IHsKLSAgICAgICAgRG9jdW1lbnQgcGFyc2VGcm9tU3RyaW5nKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBzdHIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNvbnRlbnRU
eXBlKTsKKyAgICBdIGludGVyZmFjZSBET01QYXJzZXIgeworICAgICAgICBEb2N1bWVudCBwYXJz
ZUZyb21TdHJpbmcoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHN0
ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBpbiBET01TdHJpbmcgY29udGVudFR5cGUpOwogICAgIH07Ci19Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKaW5kZXggMDk1ZjRkYzVjZjRmMmJhZGM5Yjk0
NWIwNGE3ZWM4OTQzOWQzN2M1MS4uMTk5OGJmMmU3YzMxNzFjNGNlOGEwOGNhMzhjYjZhOGM4ZjNl
ZGUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCkBAIC0yOCw3ICsyOCw3
IEBACiAKIG1vZHVsZSB4bWwgewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIEFj
dGl2ZURPTU9iamVjdCwKICAgICAgICAgQ29uc3RydWN0b3IsCiAgICAgICAgIENhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQsCkBAIC0zNiw3ICszNiw3IEBAIG1vZHVsZSB4bWwgewogICAg
ICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAg
IEpTTm9TdGF0aWNUYWJsZXMKLSAgICBdIFhNTEh0dHBSZXF1ZXN0IHsKKyAgICBdIGludGVyZmFj
ZSBYTUxIdHRwUmVxdWVzdCB7CiAgICAgICAgIC8vIEZyb20gWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldAogICAgICAgICAvLyBldmVudCBoYW5kbGVyIGF0dHJpYnV0ZXMKICAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKQEAgLTU5LDkgKzU5LDkgQEAgbW9kdWxlIHhtbCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOwog
CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHdpdGhDcmVkZW50aWFscwotICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSAgICAgICAgW0N1c3RvbV0gdm9pZCBvcGVuKGluIERPTVN0cmluZyBtZXRo
b2QsIGluIERPTVN0cmluZyB1cmwsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBhc3luYywgaW4gW09w
dGlvbmFsXSBET01TdHJpbmcgdXNlciwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgcGFzc3dvcmQp
CisgICAgICAgIFtDdXN0b21dIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBpbiBET01T
dHJpbmcgdXJsLCBbT3B0aW9uYWxdIGluIGJvb2xlYW4gYXN5bmMsIFtPcHRpb25hbF0gaW4gRE9N
U3RyaW5nIHVzZXIsIFtPcHRpb25hbF0gaW4gRE9NU3RyaW5nIHBhc3N3b3JkKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVy
KGluIERPTVN0cmluZyBoZWFkZXIsIGluIERPTVN0cmluZyB2YWx1ZSkKQEAgLTg5LDIwICs4OSwy
MCBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgZ2V0UmVzcG9u
c2VIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gRE9NU3Ry
aW5nIHJlc3BvbnNlVGV4dCAvLyBUaGUgY3VzdG9tIGdldHRlciBpbXBsZW1lbnRzIFRyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbAotICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHJlc3BvbnNlVGV4dCAvLyBUaGUgY3VzdG9tIGdldHRlciBpbXBsZW1lbnRzIFRyZWF0UmV0
dXJuZWROdWxsU3RyaW5nQXM9TnVsbAorICAgICAgICAgICAgZ2V0cmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCByZXNwb25zZVhNTAotICAg
ICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyByZXNwb25z
ZVR5cGUKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIE9iamVjdCByZXNwb25zZQotICAgICAg
ICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICAgICAgc2V0cmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBPYmplY3QgcmVzcG9uc2UKKyAgICAgICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwog
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBzdGF0dXMKLSAgICAg
ICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN0
YXR1c1RleHQKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgIGdldHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEV4dGVuc2lvbgog
ICAgICAgICB2b2lkIG92ZXJyaWRlTWltZVR5cGUoaW4gRE9NU3RyaW5nIG92ZXJyaWRlKTsKQEAg
LTExMCwxMiArMTEwLDEyIEBAIG1vZHVsZSB4bWwgewogICAgICAgICAvLyBFdmVudFRhcmdldCBp
bnRlcmZhY2UKICAgICAgICAgdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBl
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEV2ZW50TGlzdGVuZXIgbGlzdGVu
ZXIsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFu
IHVzZUNhcHR1cmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW09wdGlvbmFsXSBp
biBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIo
aW4gRE9NU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RXZlbnRMaXN0ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbT3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAg
IGJvb2xlYW4gZGlzcGF0Y2hFdmVudChpbiBFdmVudCBldnQpCiAgICAgICAgICAgICByYWlzZXMo
RXZlbnRFeGNlcHRpb24pOwogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAppbmRleCBhMGJlNDU4MjVmNGM5NjY0MjRhYjYx
MTc4ZGUyY2VjN2ViMmJlYWExLi5iOTliYTNjMTNjODczZTA0YjEwNzRjYWQ1MzgwYTRmN2FkYjVm
NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5p
ZGwKQEAgLTI4LDEwICsyOCwxMCBAQAogCiBtb2R1bGUgeG1sIHsKIAotICAgIGV4Y2VwdGlvbiBb
CisgICAgWwogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBEb05vdENoZWNrQ29u
c3RhbnRzCi0gICAgXSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRpb24g
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24gewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBzaG9ydCAgIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG5hbWU7CkBAIC00Nyw0ICs0Nyw0IEBAIG1vZHVsZSB4bWwgewogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBBQk9SVF9FUlIgPSAxMDI7CiAgICAgfTsKIAotfQorfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwK
aW5kZXggYjFjYTM1NTIyN2Q0MTBiMmRlOTVmYjY0OWE3NDQxZTQ4MDZhNDdkZi4uY2M1NTcyNTU5
NTg2ZmYyZjRjZmRjOWNkODU2NGI1YzFmNWM0YmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwKQEAgLTI1LDEyICsyNSwxMiBA
QAogCiBtb2R1bGUgZXZlbnRzIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBK
U05vU3RhdGljVGFibGVzCiAgICAgLy8gV2Ugc2hvdWxkIGFsc28gaW5oZXJpdCBmcm9tIExTUHJv
Z3Jlc3NFdmVudCB3aGVuIHRoZSBpZGwgaXMgYWRkZWQuCi0gICAgXSBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQgOiBQcm9ncmVzc0V2ZW50IHsKKyAgICBdIGludGVyZmFjZSBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQgOiBQcm9ncmVzc0V2ZW50IHsKICAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgcG9zaXRpb247CiAgICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsU2l6ZTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5pZGwKaW5kZXggNTg0YzI5
M2IzOWQ3ODE4ZDQyZGViZWMwNDBmN2FjODBjNTFlNmE2Ny4uNDZhZjZiZmFmOWIwZGFkZDg4YWZi
YjRkYWI1ODFlNWQ3ZmIxMmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0VXBsb2FkLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RVcGxvYWQuaWRsCkBAIC0yOCwxMSArMjgsMTEgQEAKIAogbW9kdWxlIHhtbCB7CiAKLSAgICBp
bnRlcmZhY2UgWworICAgIFsKICAgICAgICAgSlNHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwsCiAg
ICAgICAgIEV2ZW50VGFyZ2V0LAogICAgICAgICBKU05vU3RhdGljVGFibGVzCi0gICAgXSBYTUxI
dHRwUmVxdWVzdFVwbG9hZCB7CisgICAgXSBpbnRlcmZhY2UgWE1MSHR0cFJlcXVlc3RVcGxvYWQg
ewogICAgICAgICAvLyBGcm9tIFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQKICAgICAgICAgLy8g
ZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGVzCiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVy
IG9uYWJvcnQ7CkBAIC00NSwxMiArNDUsMTIgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIC8vIEV2
ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9N
U3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRMaXN0
ZW5lciBsaXN0ZW5lciwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
T3B0aW9uYWxdIGluIGJvb2xlYW4gdXNlQ2FwdHVyZSk7CiAgICAgICAgIHZvaWQgcmVtb3ZlRXZl
bnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLCAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1c2VDYXB0dXJlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbF0gaW4gYm9vbGVhbiB1c2VDYXB0dXJl
KTsKICAgICAgICAgYm9vbGVhbiBkaXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2dCkKICAgICAgICAg
ICAgIHJhaXNlcyhFdmVudEV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxTZXJpYWxpemVyLmlkbAppbmRleCA1ODMyN2NjMmE0NDI3NDRmZmU0YWFiZGMwMzc3Zjdh
NzNmOGQwYWQ3Li41YWM1ZDAwYzQ3NWUxN2NjMmY1YWZmNjNhM2QxZDkwZWMyM2E0OGEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaWRsCkBAIC0yMCwxMSArMjAsMTEgQEAKIAogbW9k
dWxlIHhwYXRoIHsKIAotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25zdHJ1Y3Rv
cgotICAgIF0gWE1MU2VyaWFsaXplciB7Ci0gICAgICAgIERPTVN0cmluZyBzZXJpYWxpemVUb1N0
cmluZyhpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIG5vZGUpCisgICAgXSBp
bnRlcmZhY2UgWE1MU2VyaWFsaXplciB7CisgICAgICAgIERPTVN0cmluZyBzZXJpYWxpemVUb1N0
cmluZyhbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBOb2RlIG5vZGUpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aEV2YWx1YXRvci5pZGwKaW5kZXggY2I5OTUwYzJhODk0NzM2MmVlZGI4Yjg0NGJmNDI4
Yzk2MWNjYjllMy4uMmVlMTJiMDZhZjJlYmRkYmY5MTBmZjgxNDcwYjM0MzBlNmI2YWU3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsCkBAIC0xOCwyMCArMTgsMjAgQEAKICAq
LwogCiBtb2R1bGUgeHBhdGggewotICAgIGludGVyZmFjZSBbCisgICAgWwogICAgICAgICBDb25z
dHJ1Y3RvcgotICAgIF0gWFBhdGhFdmFsdWF0b3IgewotICAgICAgICBYUGF0aEV4cHJlc3Npb24g
Y3JlYXRlRXhwcmVzc2lvbihpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJp
bmcgZXhwcmVzc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVy
KQorICAgIF0gaW50ZXJmYWNlIFhQYXRoRXZhbHVhdG9yIHsKKyAgICAgICAgWFBhdGhFeHByZXNz
aW9uIGNyZWF0ZUV4cHJlc3Npb24oW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9N
U3RyaW5nIGV4cHJlc3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFhQYXRoTlNSZXNvbHZlciByZXNv
bHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFhQYXRo
TlNSZXNvbHZlciBjcmVhdGVOU1Jlc29sdmVyKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIE5vZGUgbm9kZVJlc29sdmVyKTsKKyAgICAgICAgWFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5T
UmVzb2x2ZXIoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gTm9kZSBub2RlUmVzb2x2
ZXIpOwogCi0gICAgICAgIFhQYXRoUmVzdWx0IGV2YWx1YXRlKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBleHByZXNzaW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIGNvbnRleHROb2Rl
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gWFBhdGhOU1Jlc29sdmVyIHJlc29sdmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBzaG9ydCB0
eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9RGVmYXVsdElz
VW5kZWZpbmVkXSBYUGF0aFJlc3VsdCBpblJlc3VsdCkKKyAgICAgICAgWFBhdGhSZXN1bHQgZXZh
bHVhdGUoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIGV4cHJlc3Np
b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIE5vZGUgY29udGV4dE5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBpbiBYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRl
ZmluZWRdIGluIHVuc2lnbmVkIHNob3J0IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFhQYXRoUmVzdWx0IGluUmVzdWx0
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKLX0KK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAppbmRleCBjZWMwYzU0MWQ5MDUxNzY2ZGUxNzcz
ZGI2NTc4ZmM1MjE1NGE4Nzc4Li5mOGNhZjRiMGNlNjIwMDI5Mjc0NzYyNDhmOTI1ODA2NGM3NDg5
ZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwKQEAgLTI4LDkgKzI4LDkg
QEAKIAogbW9kdWxlIHhwYXRoIHsKIAotICAgIGV4Y2VwdGlvbiBbCisgICAgWwogICAgICAgICBE
b05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBYUGF0aEV4Y2VwdGlvbiB7CisgICAgXSBleGNlcHRp
b24gWFBhdGhFeGNlcHRpb24gewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCAgIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgIG5hbWU7CkBAIC00Niw0ICs0Niw0IEBAIG1vZHVsZSB4cGF0aCB7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFRZUEVfRVJSID0gNTI7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEV4cHJlc3Npb24uaWRsIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGwKaW5kZXggNWU2MDg0MGQyNzkwZjFmNTc0ZmNjYWEx
MTA4NDc1NTg2MGVmZjZlOS4uYTgwMWIyOTA1OWNjOWRhNzhmNjI4NzE1NjA1YjNlYzg5MmQyNWNl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoRXhwcmVzc2lvbi5pZGwKQEAgLTIxLDEwICsyMSwx
MCBAQAogbW9kdWxlIHhwYXRoIHsKIAogICAgIGludGVyZmFjZSBYUGF0aEV4cHJlc3Npb24gewot
ICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJhbWV0ZXJzXSBYUGF0aFJlc3VsdCBldmFsdWF0
ZShpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBOb2RlIGNvbnRleHROb2RlLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPURl
ZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgc2hvcnQgdHlwZSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmlu
ZWRdIFhQYXRoUmVzdWx0IGluUmVzdWx0KQorICAgICAgICBbT2JqQ0xlZ2FjeVVubmFtZWRQYXJh
bWV0ZXJzXSBYUGF0aFJlc3VsdCBldmFsdWF0ZShbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVk
XSBpbiBOb2RlIGNvbnRleHROb2RlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gdW5zaWduZWQgc2hv
cnQgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGluIFhQYXRoUmVzdWx0IGluUmVzdWx0KQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aE5TUmVzb2x2ZXIuaWRsIGIvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKaW5kZXggZTlmYTQxYmU0MjJmMDRkN2UzYTFmODRh
YTA2MWQ5ZjUxNjZmNjdiMC4uMjc3Y2JmMDliNDUyY2FhYzIxZGVkMjNlODllOTEyYjc5OWI5MmRm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKQEAgLTIwLDExICsyMCwx
MSBAQAogCiBtb2R1bGUgeHBhdGggewogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAg
IE9iakNQcm90b2NvbCwKICAgICAgICAgT21pdENvbnN0cnVjdG9yCi0gICAgXSBYUGF0aE5TUmVz
b2x2ZXIgewotICAgICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJp
bmcgbG9va3VwTmFtZXNwYWNlVVJJKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERP
TVN0cmluZyBwcmVmaXgpOworICAgIF0gaW50ZXJmYWNlIFhQYXRoTlNSZXNvbHZlciB7CisgICAg
ICAgIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIERPTVN0cmluZyBsb29rdXBOYW1l
c3BhY2VVUkkoW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gaW4gRE9NU3RyaW5nIHByZWZp
eCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCmluZGV4IDc3
YzViOGU3YzI0ODc4NWI3NWJjZjYyMjA1YjBiOTlmYTEyMThjNzcuLjIwMzg5ZTE4YTQxODczYzdl
MDdkMzRjZjdhNTI5ZDA1NjM4YWFmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFJlc3VsdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbApA
QCAtMTksOSArMTksOSBAQAogCiBtb2R1bGUgeHBhdGggewogCi0gICAgaW50ZXJmYWNlIFsKKyAg
ICBbCiAgICAgICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uCi0gICAgXSBYUGF0aFJlc3VsdCB7Cisg
ICAgXSBpbnRlcmZhY2UgWFBhdGhSZXN1bHQgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBBTllfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgPSAwOwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOVU1CRVJfVFlQRSAgICAgICAgICAgICAgICAgICAgPSAxOwogICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVFJJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgPSAyOwpA
QCAtMzUsMjUgKzM1LDI1IEBAIG1vZHVsZSB4cGF0aCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0ICByZXN1bHRUeXBlOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgZG91YmxlICAgICAgICAgIG51bWJlclZhbHVlCi0gICAgICAgICAgICBnZXR0ZXIgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICAgICAgZ2V0cmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICAgICAgCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgc3RyaW5nVmFsdWUKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisgICAgICAgICAgICBnZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBib29sZWFuVmFsdWUKLSAgICAgICAgICAgIGdl
dHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBnZXRyYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgICAgICAgICAgICBz
aW5nbGVOb2RlVmFsdWUKLSAgICAgICAgICAgIGdldHRlciByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisgICAgICAgICAgICBnZXRyYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICBpbnZhbGlkSXRlcmF0b3JTdGF0ZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgICBzbmFwc2hvdExlbmd0aAotICAg
ICAgICAgICAgZ2V0dGVyIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGdldHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgICAgIAogICAgICAgICBOb2RlIGl0ZXJhdGVO
ZXh0KCkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgTm9kZSBz
bmFwc2hvdEl0ZW0oaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9u
ZyBpbmRleCkKKyAgICAgICAgTm9kZSBzbmFwc2hvdEl0ZW0oW09wdGlvbmFsPURlZmF1bHRJc1Vu
ZGVmaW5lZF0gaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKICAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFRQcm9jZXNzb3IuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3Iu
aWRsCmluZGV4IDQ4ZWM2YzIwZTFkZDkwYmM4MDAwODE2ZDZmYmVhZjk1MDQ5MjEzMmQuLmVmYzEw
NmViZWVlOGE5ZTAwOWVjOGFlNmIyNmZmZGE1NzU1NDE3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3Nvci5pZGwKQEAgLTMyLDEwICszMiwxMCBAQCBtb2R1bGUgeG1sIHsKICAgICAvLyBo
dHRwOi8vbHhyLm1vemlsbGEub3JnL3NlYW1vbmtleS9zb3VyY2UvY29udGVudC94c2wvcHVibGlj
L25zSVhTTFRFeGNlcHRpb24uaWRsCiAgICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQ0NgogCi0gICAgaW50ZXJmYWNlIFsKKyAgICBbCiAgICAgICAgIENvbmRp
dGlvbmFsPVhTTFQsCiAgICAgICAgIENvbnN0cnVjdG9yCi0gICAgXSBYU0xUUHJvY2Vzc29yIHsK
KyAgICBdIGludGVyZmFjZSBYU0xUUHJvY2Vzc29yIHsKICAgICAgICAgCiAgICAgICAgIFtDdXN0
b21dIHZvaWQgaW1wb3J0U3R5bGVzaGVldChpbiBOb2RlIHN0eWxlc2hlZXQpOwogICAgICAgICBb
Q3VzdG9tXSBEb2N1bWVudEZyYWdtZW50IHRyYW5zZm9ybVRvRnJhZ21lbnQoaW4gTm9kZSBzb3Vy
Y2UsIGluIERvY3VtZW50IGRvY1ZhbCk7CkBAIC01MCw0ICs1MCw0IEBAIG1vZHVsZSB4bWwgewog
CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA3MTdmYjBiNTJiNGU3YjkxYTgwMTJiZmJhNWQ1YmU0MzE5MjFkMWNkLi42
OWY3MzVlYjA5Nzg4Zjc2OTNiMzg4ZjU1OTZjYWQ1MmZmNmVhZjc4IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTIt
MDctMDQgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIE1v
dmUgSURMIGV4dGVuZGVkIGF0dHJpYnV0ZXMgdG8gdGhlIGxvY2F0aW9uIHNwZWNpZmllZCBpbiBX
ZWJJREwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2
Mzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0dDQ29udHJv
bGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlkbDoKKyAgICAg
ICAgQWRkZWQgIjsiIHRvIG1vZHVsZSdzICJ9Ii4KKwogMjAxMi0wNy0wNCAgWW9zaGlmdW1pIElu
b3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0g
Z2FyZGVuaW5nLCBEaXNhYmxlIGFsd2F5cyBmYWlsZWQgcHl0aG9uIHRlc3RzIG9uIFdpbmRvd3Mu
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCmluZGV4
IDJkZjhjMjc5ZjliZDg4OTYxMjY3YTZiMGNjNDBiMGFiY2YxMTQ4ZDkuLjgzMjY2N2YwNTBlZjdh
N2MyYTQ2NDc1ZGNmZWY4ZGQ3MjgyY2VkZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCkBAIC00MCw0ICs0MCw0IEBAIG1vZHVsZSBXVFIgewog
ICAgICAgICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKICAgICB9OwogCi19Cit9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmlkbAppbmRleCA4
ODU1ODQ4MTU1YTgxM2UxZDU3YTRhN2ZlOTkwNzg2YmFkYzcxYjExLi5iNmFlZjk2MWM5NmQxMzBj
NDgyNzdiMDU4NGM4ZjY5OGI1NTBiN2IzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmlkbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vz
c2liaWxpdHlUZXh0TWFya2VyLmlkbApAQCAtMjksNCArMjksNCBAQCBtb2R1bGUgV1RSIHsKICAg
ICAgICAgYm9vbGVhbiBpc0VxdWFsKGluIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIG90aGVyTWFy
a2VyKTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmlk
bCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZS5pZGwKaW5kZXggNmMyYjYwZTU3MTgyZmVhNGQ5MjM5OWRi
MWU5MWI1OTU4ODdhMWJjZS4uYzk3MWNkODE4NDQ4NDYyZWNhZWUwYWM3OGEwNjVmNzBmMmVhM2Qy
OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmlkbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UuaWRsCkBAIC0yOSw0ICsyOSw0IEBAIG1vZHVsZSBXVFIgewogICAgICAgICBib29sZWFu
IGlzRXF1YWwoaW4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSBvdGhlck1hcmtlclJhbmdl
KTsKICAgICB9OwogCi19Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5pZGwKaW5kZXggYTFlOGEwNjJjNmU4ZTU2YjkzYmNiMmY5ZGYyZDY3NTI3ZTE4ZTFh
OC4uZTAzMDcxNmM5MDBkYmE0YmUxNGJiMjI5Yzk3ZjRmOGVmZGU3ZGMzNiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCkBAIC0xNjYsNCArMTY2LDQg
QEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIAogICAgIH07CiAKLX0KK307CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAppbmRleCA5MzRiZTZkNTc1ZjdiMjIy
MDM4YjMzNzYzZjBiYzBiYzFjYmQ1NmFiLi42YjU4MjA0OTU3NjJkMWYyZWY1NjZiNWExMzA5ODY0
NmQ5ZjAyMTA5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5pZGwKQEAgLTU4LDQgKzU4LDQgQEAgbW9kdWxlIFdUUiB7CiAjZW5kaWYKICAgICB9OwogCi19
Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9HQ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9HQ0NvbnRyb2xsZXIuaWRsCmluZGV4IGViM2RkZWU3YWFkMmQ0Nzkx
MmQ5NjcwMjhkZDgxYThhMzI4YmI3ODUuLjM0MDY0MmVmYzljZjBjOTYwMDBmNjU5NmE3MmQ2YmM2
MWI3MGVhYTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvR0NDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0dDQ29udHJvbGxlci5pZGwKQEAgLTMxLDQgKzMxLDQg
QEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBnZXRKU09iamVjdENv
dW50KCk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29u
dHJvbGxlci5pZGwKaW5kZXggN2EyYTQ4OGViZWYxMDdjN2I0NWU0NWYxODdiMGI4M2QxYTJmMDg3
NC4uYjkxMmY5MDJlZTk3ZDk0YmNjYjQwNmU1ZWMyOTNjNWVmYTA1ODlmMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0
Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKQEAgLTE1Myw0ICsxNTMsNCBAQCBt
b2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCBzZXRIYXNDdXN0b21GdWxsU2NyZWVuQmVoYXZpb3Io
aW4gYm9vbGVhbiB2YWx1ZSk7CiAgICAgfTsKIAotfQorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGV4dElucHV0Q29udHJvbGxl
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
eHRJbnB1dENvbnRyb2xsZXIuaWRsCmluZGV4IGNlYjNhMDA0ZWEyZGY5ZDIxZDQ3MmI0NGZkMTQx
ZTc2NjkxNzU4MTUuLmQ3MjYyODAxMDVjMTkzN2M4OTFmOGZkN2Q1YzUzNjRlNTNmNDBmZmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGV4dElucHV0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlkbApAQCAtMzIsNSArMzIs
NSBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCBpbnNlcnRUZXh0KGluIERPTVN0cmluZyBz
dHJpbmcpOwogICAgIH07CiAKLX0KK307CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151681</attachid>
            <date>2012-07-11 04:57:05 -0700</date>
            <delta_ts>2012-08-10 00:52:06 -0700</delta_ts>
            <desc>IDL Parser Template Code Generator</desc>
            <filename>ParserTemplateGenertor.py</filename>
            <type>text/plain</type>
            <size>13215</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCByZQppbXBvcnQgc3RyaW5nCmltcG9ydCBzeXMKCl9M
SU5FX1BBVFRFUk4gPSByZS5jb21waWxlKHInKFteXG5dKilcbicpCl9SVUxFX1NUQVJUX0xJTkVf
UEFUVEVSTiA9IHJlLmNvbXBpbGUocideKC4qPylceGUyXHg4Nlx4OTIoLiopJCcpCl9MRUZUX0VY
UFJfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKFxbW15bXStcXSk/XHMqKFtBLVphLXowLTlfXSsp
XHMqJykKX1JJR0hUX0VYUFJTX1BBVFRFUk4gPSByZS5jb21waWxlKHInKChbXnwiXSsoXCJbXiJd
KlwiKT8pKyknKQoKX0VNUFRZX1NZTUJPTCA9ICdceGNlXHhiNScKX0VNUFRZX1NZTUJPTF9TRVQg
PSBzZXQoW19FTVBUWV9TWU1CT0xdKQpfRU1QVFlfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKFx4
Y2VceGI1KSQnKQpfU1RSSU5HX1BBVFRFUk4gPSByZS5jb21waWxlKHInXiIoW14iXSspIiQnKQoK
CmRlZiBpc0VtcHR5KHZhbHVlKToKICAgIHJldHVybiBfRU1QVFlfUEFUVEVSTi5tYXRjaCh2YWx1
ZSkKCgpkZWYgaGFzRW1wdHkodmFsdWUpOgogICAgcmV0dXJuIF9FTVBUWV9TWU1CT0wgaW4gdmFs
dWUKCgpkZWYgaXNTeW1ib2wodmFsdWUpOgogICAgcmV0dXJuIHJlLm1hdGNoKHInXltBLVpdJywg
dmFsdWUpCgoKZGVmIGdlbmVyYXRlRGlyZWN0b3IocnVsZXNldCwgZmlyc3QsIGZvbGxvdyk6CiAg
ICBkaXJlY3RvciA9IHt9CiAgICBmb3Igc291cmNlLCBkZXN0aW5hdGlvbnMgaW4gcnVsZXNldC5p
dGVyaXRlbXMoKToKICAgICAgICBkaXJlY3Rvcltzb3VyY2VdID0gW10KICAgICAgICAjIFNvdXJj
ZSAtPiBEZXN0aW5hdGlvbnMKICAgICAgICAjICAgICAgICAtPiBEZXN0aW5hdGlvbjAgfCBEZXN0
aW5hdGlvbjEgfCAuLi4gfCBEZXN0aW5hdGlvbk4KICAgICAgICBmb3IgZGVzdGluYXRpb24gaW4g
ZGVzdGluYXRpb25zOgogICAgICAgICAgICBkaXJlY3RvckZvciA9IHNldCgpCiAgICAgICAgICAg
ICMgSWYgU291cmNlIDotPiBEZXN0aW5hdGlvblgKICAgICAgICAgICAgaWYgaXNTeW1ib2woZGVz
dGluYXRpb25bMF0pOgogICAgICAgICAgICAgICAgZGlyZWN0b3JGb3IgfD0gZmlyc3RbZGVzdGlu
YXRpb25bMF1dCiAgICAgICAgICAgICAgICBpZiBoYXNFbXB0eShmaXJzdFtkZXN0aW5hdGlvblsw
XV0pOgogICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yRm9yIHw9IGZvbGxvd1tkZXN0aW5hdGlv
blswXV0KICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGRpcmVjdG9yRm9yLmFkZChk
ZXN0aW5hdGlvblswXSkKICAgICAgICAgICAgZGlyZWN0b3Jbc291cmNlXS5hcHBlbmQoKGRlc3Rp
bmF0aW9uLCBkaXJlY3RvckZvcikpCiAgICByZXR1cm4gZGlyZWN0b3IKCgpkZWYgZ2VuZXJhdGVG
b2xsb3cocnVsZXNldCwgZmlyc3QpOgogICAgZm9sbG93ID0ge30KICAgIHVwZGF0ZWQgPSBUcnVl
CiAgICB3aGlsZSB1cGRhdGVkOgogICAgICAgIHVwZGF0ZWQgPSBGYWxzZQogICAgICAgIGZvciBr
ZXksIHJ1bGVzIGluIHJ1bGVzZXQuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgIGZvciBydWxlIGlu
IHJ1bGVzOgogICAgICAgICAgICAgICAgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShydWxlKToK
ICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNTeW1ib2wodmFsdWUpOgogICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50Rm9sbG93ID0gZm9sbG93LnNldGRlZmF1bHQocnVsZVtpXSwgc2V0KCkpCiAgICAgICAgICAg
ICAgICAgICAgZm9sbG93U2l6ZSA9IGxlbihjdXJyZW50Rm9sbG93KQogICAgICAgICAgICAgICAg
ICAgIGZvciBuZXh0IGluIHJ1bGVbaSsxOl06CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBpc1N5bWJvbChuZXh0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2xs
b3cuYWRkKG5leHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rm9sbG93IHw9IChmaXJz
dFtuZXh0XSAtIF9FTVBUWV9TWU1CT0xfU0VUKQogICAgICAgICAgICAgICAgICAgICAgICBpZiBu
b3QgaGFzRW1wdHkoZmlyc3RbbmV4dF0pOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWsKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50Rm9sbG93IHw9IGZvbGxvdy5zZXRkZWZhdWx0KGtleSwgc2V0KCkpCgogICAgICAgICAgICAg
ICAgICAgIGlmIGZvbGxvd1NpemUgPCBsZW4oY3VycmVudEZvbGxvdyk6CiAgICAgICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZWQgPSBUcnVlCgogICAgcmV0dXJuIGZvbGxvdwoKCmRlZiBnZW5lcmF0
ZUZpcnN0KHJ1bGVzZXQsIHJ1bGVvcmRlcik6CiAgICBmaXJzdCA9IHt9CiAgICBmb3Iga2V5IGlu
IHJldmVyc2VkKHJ1bGVvcmRlcik6CiAgICAgICAgZmlyc3Rba2V5XSA9IHNldCgpCiAgICAgICAg
Zm9yIHZhbHVlcyBpbiBydWxlc2V0W2tleV06CiAgICAgICAgICAgIGlmIGlzU3ltYm9sKHZhbHVl
c1swXSk6CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgICAgZmlyc3Rba2V5XS5hZGQodmFsdWVzWzBdKQoKICAgIHVwZGF0ZWQgPSBUcnVlCiAg
ICB3aGlsZSB1cGRhdGVkOgogICAgICAgIHVwZGF0ZWQgPSBGYWxzZQogICAgICAgIGZvciBrZXkg
aW4gcmV2ZXJzZWQocnVsZW9yZGVyKToKICAgICAgICAgICAga2V5c2l6ZSA9IGxlbihmaXJzdFtr
ZXldKQogICAgICAgICAgICBmb3IgdmFsdWVzIGluIHJ1bGVzZXRba2V5XToKICAgICAgICAgICAg
ICAgIGlmIG5vdCBpc1N5bWJvbCh2YWx1ZXNbMF0pOgogICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCiAgICAgICAgICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgogICAgICAgICAgICAgICAg
ICAgIGlmIGlzU3ltYm9sKHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhh
c0VtcHR5KGZpcnN0W3ZhbHVlXSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFtr
ZXldIHw9IGZpcnN0W3ZhbHVlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3Rba2V5XSB8PSAoZmlyc3RbdmFsdWVdIC0gX0VNUFRZ
X1NZTUJPTF9TRVQpCiAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAg
ICAgICAgZmlyc3Rba2V5XS5hZGQodmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
CiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGZpcnN0W2tleV0gfD0g
X0VNUFRZX1NZTUJPTF9TRVQ7CiAgICAgICAgICAgIGlmIGtleXNpemUgPCBsZW4oZmlyc3Rba2V5
XSk6CiAgICAgICAgICAgICAgICB1cGRhdGVkID0gVHJ1ZQoKICAgIHJldHVybiBmaXJzdAoKCmRl
ZiBnZW5lcmF0ZURpZU1lc3NhZ2Uoc291cmNlLCBydWxlKToKICAgIHJldHVybiAnIlVuZXhwZWN0
ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTog
JXMgLT4gJXMgYXQgIiAuICRzZWxmLT57TGluZX0nICUgKHNvdXJjZSwgJ3wnLmpvaW4oWycgJy5q
b2luKHZhbHVlKSBmb3IgdmFsdWUgaW4gcnVsZV0pLnJlcGxhY2UoJyInLCAnXFwiJykpCgoKZGVm
IGdlbmVyYXRlTWVzc2FnZUZvclNob3VsZFRva2VuKHNvdXJjZSwgcnVsZSwgaW5kZXgpOgogICAg
YnVmZmVyID0gWyclcyAtPicgJSBzb3VyY2VdCiAgICBmb3IgY291bnQsIHZhbHVlIGluIGVudW1l
cmF0ZShydWxlKToKICAgICAgICBpZiBjb3VudCA9PSBpbmRleDoKICAgICAgICAgICAgYnVmZmVy
LmFwcGVuZCgnJXNeXl5eJyAlIHJlLmVzY2FwZSh2YWx1ZSkpCiAgICAgICAgZWxzZToKICAgICAg
ICAgICAgYnVmZmVyLmFwcGVuZChyZS5lc2NhcGUodmFsdWUpKQogICAgcmV0dXJuICcid2hpbGUg
cGFyc2luZyB0aGUgcnVsZTogJXMgYXQgbGluZTogXFwiIiAuICRzZWxmLT57TGluZX0gLiAiXFwi
IicgJSAnICcuam9pbihidWZmZXIpCgoKZGVmIHdyaXRlUnVsZShydWxlLCBpbmRlbnQsIHNvdXJj
ZSk6CiAgICBmb3IgY291bnQsIHZhbHVlIGluIGVudW1lcmF0ZShydWxlKToKICAgICAgICBpZiBp
c1N5bWJvbCh2YWx1ZSk6CiAgICAgICAgICAgIHByaW50ICIlcyRzZWxmLT5wYXJzZSVzKCk7IiAl
ICgnICcgKiBpbmRlbnQsIHZhbHVlKQogICAgICAgIGVsaWYgX1NUUklOR19QQVRURVJOLm1hdGNo
KHZhbHVlKToKICAgICAgICAgICAgcHJpbnQgKCIlc3Nob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNl
bGYtPmdldFRva2VuKCksICIKICAgICAgICAgICAgICAgICAgICIlcywgJXMpOyIpICUgKAogICAg
ICAgICAgICAgICAgJyAnICogaW5kZW50LCB2YWx1ZSwKICAgICAgICAgICAgICAgIGdlbmVyYXRl
TWVzc2FnZUZvclNob3VsZFRva2VuKHNvdXJjZSwgcnVsZSwgY291bnQpKQogICAgICAgIGVsaWYg
cmUubWF0Y2gocideW2Etel0nLCB2YWx1ZSk6CiAgICAgICAgICAgIHByaW50ICgiJXNzaG91bGRU
b2tlblR5cGVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICIKICAgICAgICAgICAgICAgICAgICIl
c1Rva2VuLCAlcyk7IikgJSAoCiAgICAgICAgICAgICAgICAnICcgKiBpbmRlbnQsIHZhbHVlLmNh
cGl0YWxpemUoKSwKICAgICAgICAgICAgICAgIGdlbmVyYXRlTWVzc2FnZUZvclNob3VsZFRva2Vu
KHNvdXJjZSwgcnVsZSwgY291bnQpKQogICAgcHJpbnQgIiVzcmV0dXJuOyIgJSAoJyAnICogaW5k
ZW50KQoKCmRlZiBzb3J0Q29uZGl0aW9uKGRlc3RpbmF0aW9ucyk6CiAgICByZXN1bHQgPSB7ICdm
aXJzdCc6IFtdLCAnc2Vjb25kJzogW10sICdsYXN0JzogW10gfQogICAgZm9yIHJ1bGUsIHRva2Vu
cyBpbiBkZXN0aW5hdGlvbnM6CiAgICAgICAgaWYgbGVuKHRva2VucykgPT0gMSBhbmQgaXNFbXB0
eShsaXN0KHRva2VucylbMF0pOgogICAgICAgICAgICByZXN1bHRbJ2xhc3QnXS5hcHBlbmQoKHJ1
bGUsIHRva2VucykpCiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZm9yIHRva2VuIGluIHRv
a2VuczoKICAgICAgICAgICAgaWYgcmUubWF0Y2gocideW2Etel0nLCB0b2tlbik6CiAgICAgICAg
ICAgICAgICByZXN1bHRbJ3NlY29uZCddLmFwcGVuZCgocnVsZSwgdG9rZW5zKSkKICAgICAgICAg
ICAgICAgIGJyZWFrCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmVzdWx0WydmaXJzdCddLmFw
cGVuZCgocnVsZSwgdG9rZW5zKSkKCiAgICByZXR2YWwgPSByZXN1bHRbJ2ZpcnN0J10KICAgIHJl
dHZhbC5leHRlbmQocmVzdWx0WydzZWNvbmQnXSkKICAgIHJldHZhbC5leHRlbmQocmVzdWx0Wyds
YXN0J10pCiAgICByZXR1cm4gcmV0dmFsCgoKIyBHZW5lcmF0ZSBwZXJsIGNvZGUKZGVmIHdyaXRl
UGF0dGVybihkaXJlY3RvciwgcnVsZXNldCwgcnVsZW9yZGVyLCBzdGFydCk6CiAgICBwcmludCAi
IiIKcGFja2FnZSBJRExQYXJzZXI7Cgp1c2UgQ2xhc3M6OlN0cnVjdDsKCnVzZSBzdHJpY3Q7CnVz
ZSBjb25zdGFudCBTdHJpbmdUb2tlbiA9PiAwOwp1c2UgY29uc3RhbnQgSW50ZWdlclRva2VuID0+
IDE7CnVzZSBjb25zdGFudCBGbG9hdFRva2VuID0+IDI7CnVzZSBjb25zdGFudCBJZGVudGlmaWVy
VG9rZW4gPT4gMzsKdXNlIGNvbnN0YW50IE90aGVyVG9rZW4gPT4gNDsKdXNlIGNvbnN0YW50IEVt
cHR5VG9rZW4gPT4gNTsKCnVzZSBjb25zdGFudCBUcnVlID0+IDE7CnVzZSBjb25zdGFudCBGYWxz
ZSA9PiAwOwoKdXNlIHByZXByb2Nlc3NvcjsKCnN0cnVjdCggVG9rZW4gPT4gewogICAgdHlwZSA9
PiAnJCcsICMgdHlwZSBvZiB0b2tlbgogICAgdmFsdWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4K
fSk7CgpteSAkYmVRdWlldCA9IDA7CgpzdWIgbmV3IHsKICAgIG15ICRjbGFzcyA9IHNoaWZ0OwoK
ICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4tPm5ldygpOwogICAgJGVtcHR5VG9rZW4tPnR5cGUo
RW1wdHlUb2tlbik7CiAgICAkZW1wdHlUb2tlbi0+dmFsdWUoImVtcHR5Iik7CgogICAgbXkgJHNl
bGYgPSB7CglEb2N1bWVudENvbnRlbnQgPT4gIiIsCglFbXB0eVRva2VuID0+ICRlbXB0eVRva2Vu
LAoJTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAoJVG9rZW4gPT4gJGVtcHR5VG9rZW4KICAgIH07
CiAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKfQoKc3ViIHNob3VsZFRva2VuVmFsdWVF
cXVhbHMKewogICAgbXkgJHRva2VuID0gc2hpZnQ7CiAgICBteSAkdmFsdWUgPSBzaGlmdDsKICAg
IG15ICRsaW5lID0gc2hpZnQ7CiAgICBkaWUgIk5leHQgdG9rZW4gc2hvdWxkIGJlICIgLiAkdmFs
dWUgLiAiLCBidXQgIiAuICR0b2tlbi0+dmFsdWUoKSAuICIgIiAuICRsaW5lIHVubGVzcyAkdG9r
ZW4tPnZhbHVlKCkgZXEgJHZhbHVlOwp9CgpzdWIgc2hvdWxkVG9rZW5UeXBlRXF1YWxzCnsKICAg
IG15ICR0b2tlbiA9IHNoaWZ0OwogICAgbXkgJHR5cGUgPSBzaGlmdDsKICAgIG15ICRsaW5lID0g
c2hpZnQ7CiAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAi
LCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiAiIC4gJGxpbmUgdW5sZXNzICR0b2tlbi0+dHlw
ZSgpIGVxICR0eXBlOwp9CgpzdWIgUGFyc2UKewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIG15
ICRmaWxlTmFtZSA9IHNoaWZ0OwogICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKICAgIG15ICRwcmVw
cm9jZXNzb3IgPSBzaGlmdDsKCiAgICBwcmludCAiIHwgKioqIFN0YXJ0aW5nIHRvIHBhcnNlICRm
aWxlTmFtZS4uLlxcbiB8XFxuIiB1bmxlc3MgJGJlUXVpZXQ7CgogICAgbXkgQGxpbmVzID0gYXBw
bHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CiAgICAk
c2VsZi0+e0xpbmV9ID0gJGxpbmVzWzBdOwogICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID0g
am9pbignICcsIEBsaW5lcyk7CgogICAgJHNlbGYtPmdldFRva2VuKCk7CiAgICBldmFsIHsKCSRz
ZWxmLT5wYXJzZSVzKCk7CgogICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwog
ICAgICAgIGlmICgkbmV4dC0+dHlwZSgpICE9IEVtcHR5VG9rZW4pIHsKICAgICAgICAgICAgZGll
ICJFeHBlY3QgRU9GLCBidXQgZm91bmQgIiAuICRuZXh0LT52YWx1ZSgpOwogICAgICAgIH0KICAg
IH07CiAgICBpZiAoJEApIHsKICAgICAgICBkaWUgJEA7CiAgICB9CiAgICBwcmludCAiIHwgKioq
IEZpbmlzaGVkIHBhcnNpbmchXFxuIiB1bmxlc3MgJGJlUXVpZXQ7Cn0KCnN1YiBuZXh0VG9rZW4K
ewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIHJldHVybiAkc2VsZi0+e05leHRUb2tlbn07Cn0K
CnN1YiBnZXRUb2tlbgp7CiAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgJHNlbGYtPntUb2tlbn0g
PSAkc2VsZi0+e05leHRUb2tlbn07CiAgICAkc2VsZi0+e05leHRUb2tlbn0gPSAkc2VsZi0+Z2V0
VG9rZW5JbnRlcm5hbCgpOwogICAgcmV0dXJuICRzZWxmLT57VG9rZW59Owp9CgpzdWIgZ2V0VG9r
ZW5JbnRlcm5hbAp7CiAgICBteSAkc2VsZiA9IHNoaWZ0OwoKICAgIGlmICgkc2VsZi0+e0RvY3Vt
ZW50Q29udGVudH0gPX4gbS9eW1xcdFxcblxcciBdKltcXG5cXHJdLykgewogICAgICAgICRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiBzL15bXFx0XFxuXFxyIF0qW1xcblxccl0vL2c7CiAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IG0vXihbXlxcblxccl0rKS87CiAgICAgICAg
IyBMaW5lIGlzIHVzZWQgZm9yIGVycm9yIG91dHB1dC4KICAgICAgICBpZiAoZGVmaW5lZCgkMSkp
IHsKICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICQxOwogICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICRzZWxmLT57TGluZX0gPSAiIjsKICAgICAgICB9CiAgICB9CiAgICAkc2VsZi0+e0Rv
Y3VtZW50Q29udGVudH0gPX4gcy9eKFtcXHRcXG5cXHIgXSspLy9nOwogICAgaWYgKGxlbmd0aCgk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0pIDw9IDApIHsKICAgICAgICByZXR1cm4gJHNlbGYtPntF
bXB0eVRva2VufTsKICAgIH0KCiAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7CiAgICBpZiAo
JHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IG0vXigtPygoWzAtOV0rXFwuWzAtOV0qfFswLTld
KlxcLlswLTldKykoW0VlXVsrLV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSkvKSB7
CgkkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CgkkdG9rZW4tPnZhbHVlKCQxKTsKICAgICAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKC0/KChbMC05XStcXC5bMC05XSp8WzAtOV0q
XFwuWzAtOV0rKShbRWVdWystXT9bMC05XSspP3xbMC05XStbRWVdWystXT9bMC05XSspKS8vOwog
ICAgICAgIHJldHVybiAkdG9rZW47CiAgICB9CiAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IG0vXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKS8p
IHsKCSR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOwoJJHRva2VuLT52YWx1ZSgkMSk7CiAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvXigtP1sxLTldWzAtOV0qfC0/MFtYeF1b
MC05QS1GYS1mXSt8LT8wWzAtN10qKS8vOwogICAgICAgIHJldHVybiAkdG9rZW47CiAgICB9CiAg
ICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IG0vXihcXCJbXlxcIl0qXFwiKS8pIHsK
CSR0b2tlbi0+dHlwZShTdHJpbmdUb2tlbik7CgkkdG9rZW4tPnZhbHVlKCQxKTsKICAgICAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKFxcIlteXFwiXSpcXCIpLy87CiAgICAgICAg
cmV0dXJuICR0b2tlbjsKICAgIH0KICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4g
bS9eKFtBLVpfYS16XVswLTlBLVpfYS16XSopLykgewoJJHRva2VuLT50eXBlKElkZW50aWZpZXJU
b2tlbik7CgkkdG9rZW4tPnZhbHVlKCQxKTsKICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVu
dH0gPX4gcy9eKFtBLVpfYS16XVswLTlBLVpfYS16XSopLy87CiAgICAgICAgcmV0dXJuICR0b2tl
bjsKICAgIH0KICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gbS9eKDo6fFxcLlxc
LlxcLnxbXlxcdFxcblxcciAwLTlBLVpfYS16XSkvKSB7CgkkdG9rZW4tPnR5cGUoT3RoZXJUb2tl
bik7CgkkdG9rZW4tPnZhbHVlKCQxKTsKICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0g
PX4gcy9eKDo6fFxcLlxcLlxcLnxbXlxcdFxcblxcciAwLTlBLVpfYS16XSkvLzsKICAgICAgICBy
ZXR1cm4gJHRva2VuOwogICAgfQogICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBhdCAiIC4g
JHNlbGYtPntEb2N1bWVudENvbnRlbnR9Owp9ClxuIiIiICUgc3RhcnQKICAgIGZvciBrZXkgaW4g
cnVsZW9yZGVyOgogICAgICAgIHByaW50ICJzdWIgcGFyc2Ulc1xueyIgJSBrZXkKICAgICAgICBw
cmludCAiICAgIG15ICRzZWxmID0gc2hpZnQ7IgogICAgICAgIHByaW50ICIgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7IgogICAgICAgIGRlc3RpbmF0aW9ucyA9IGRpcmVjdG9yW2tl
eV0KICAgICAgICBkZWZhdWx0UnVsZSA9IE5vbmUKCiAgICAgICAgZm9yIHJ1bGUsIHRva2VucyBp
biBzb3J0Q29uZGl0aW9uKGRlc3RpbmF0aW9ucyk6CiAgICAgICAgICAgIGNvbmRpdGlvbiA9IFtd
CiAgICAgICAgICAgIHZhbHVlQ29uZGl0aW9uID0gW10KCiAgICAgICAgICAgIGlmIGxlbih0b2tl
bnMpID09IDEgYW5kIGlzRW1wdHkobGlzdCh0b2tlbnMpWzBdKToKICAgICAgICAgICAgICAgIGlm
IGRlZmF1bHRSdWxlOgogICAgICAgICAgICAgICAgICAgIHByaW50ID4+c3lzLnN0ZGVyciwgIk5v
dCBMTCgxKTogIiwgZGVmYXVsdFJ1bGUKICAgICAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQog
ICAgICAgICAgICAgICAgZGVmYXVsdFJ1bGUgPSBydWxlCiAgICAgICAgICAgICAgICBjb250aW51
ZQoKICAgICAgICAgICAgZm9yIHRva2VuIGluIHRva2VuczoKICAgICAgICAgICAgICAgIGlmIGlz
RW1wdHkodG9rZW4pOgogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAg
ICBpZiBfU1RSSU5HX1BBVFRFUk4ubWF0Y2godG9rZW4pOgogICAgICAgICAgICAgICAgICAgIHZh
bHVlQ29uZGl0aW9uLmFwcGVuZChyZS5lc2NhcGUodG9rZW5bMTotMV0pKQogICAgICAgICAgICAg
ICAgZWxpZiByZS5tYXRjaChyJ15bYS16XScsIHRva2VuKToKICAgICAgICAgICAgICAgICAgICBj
b25kaXRpb24uYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICAgICAnJG5leHQtPnR5cGUoKSA9
PSAlc1Rva2VuJyAlIHRva2VuLmNhcGl0YWxpemUoKSkKICAgICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgICAgIyBlcnJvcgogICAgICAgICAgICAgICAgICAgIHByaW50ID4+c3lz
LnN0ZGVyciwgJ0ludmFsaWQgdG9rZW46ICVzJyAlIHRva2VuCgogICAgICAgICAgICBpbmRlbnQg
PSA0CiAgICAgICAgICAgIGlmIHZhbHVlQ29uZGl0aW9uOgogICAgICAgICAgICAgICAgY29uZGl0
aW9uLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAiJG5leHQtPnZhbHVlKCkgPX4gL14oJXMp
JC8iICUgJ3wnLmpvaW4odmFsdWVDb25kaXRpb24pKQogICAgICAgICAgICBpZiBjb25kaXRpb246
CiAgICAgICAgICAgICAgICBpbmRlbnQgKz0gNAogICAgICAgICAgICAgICAgaWYgbGVuKGNvbmRp
dGlvbikgPiAxOgogICAgICAgICAgICAgICAgICAgIHByaW50ICIgICAgaWYgKCglcykpIHsiICUg
JykgfHwgKCcuam9pbihjb25kaXRpb24pCiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgICAgIHByaW50ICIgICAgaWYgKCVzKSB7IiAlIGNvbmRpdGlvblswXQoKICAgICAgICAg
ICAgd3JpdGVSdWxlKHJ1bGUsIGluZGVudCwga2V5KQoKICAgICAgICAgICAgaWYgY29uZGl0aW9u
OgogICAgICAgICAgICAgICAgcHJpbnQgIiAgICB9IgoKICAgICAgICBpZiBkZWZhdWx0UnVsZToK
ICAgICAgICAgICAgd3JpdGVSdWxlKGRlZmF1bHRSdWxlLCA0LCBrZXkpCiAgICAgICAgZWxzZToK
ICAgICAgICAgICAgcHJpbnQgJyAgICBkaWUgJXM7JyAlIGdlbmVyYXRlRGllTWVzc2FnZShrZXks
IHJ1bGVzZXRba2V5XSkKICAgICAgICBwcmludCAifVxuIgogICAgcHJpbnQgIlxuMTtcbiI7CgoK
ZGVmIGR1bXBGb2xsb3coZm9sbG93LCBydWxlT3JkZXIpOgogICAgZm9yIGtleSBpbiBydWxlT3Jk
ZXI6CiAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnZm9sbG93KCVzKSA9ICcgJSBrZXksICc9
JywgZm9sbG93W2tleV0KCgpkZWYgZHVtcEZpcnN0KGZpcnN0LCBydWxlT3JkZXIpOgogICAgZm9y
IGtleSBpbiBydWxlT3JkZXI6CiAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnZmlyc3QoJXMp
ID0gJyAlIGtleSwgZmlyc3Rba2V5XQoKCmRlZiBkdW1wRGlyZWN0b3IoZGlyZWN0b3IsIHJ1bGVP
cmRlcik6CiAgICBmb3Iga2V5IGluIHJ1bGVPcmRlcjoKICAgICAgICBpZiBrZXkgbm90IGluIGRp
cmVjdG9yOgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIHZhbHVlcyA9IGRpcmVjdG9yW2tl
eV0KICAgICAgICBmb3IgZGVzdGluYXRpb24sIGRpcmVjdG9yRm9yIGluIHZhbHVlczoKICAgICAg
ICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnZGlyZWN0b3IoJXMsICVzKSA9IFslc10nICUgKGtl
eSwgJyAnLmpvaW4oZGVzdGluYXRpb24pLCAnLCAnLmpvaW4oZGlyZWN0b3JGb3IpKQoKCmRlZiBt
YWluKCk6CiAgICBpbnB1dCA9IG9wZW4oc3lzLmFyZ3ZbMV0sICdyJykKICAgIHRyeToKICAgICAg
ICB0ZXh0ID0gaW5wdXQucmVhZCgpCiAgICBmaW5hbGx5OgogICAgICAgIGlucHV0LmNsb3NlKCkK
CiAgICBydWxlcyA9IFtdCiAgICBydWxlID0gW10KICAgIGxlZnRTeW1ib2wgPSBOb25lCiAgICBm
b3IgbGluZU1hdGNoIGluIF9MSU5FX1BBVFRFUk4uZmluZGl0ZXIodGV4dCk6CiAgICAgICAgbSA9
IF9SVUxFX1NUQVJUX0xJTkVfUEFUVEVSTi5tYXRjaChsaW5lTWF0Y2guZ3JvdXAoMSkpCiAgICAg
ICAgaWYgbToKICAgICAgICAgICAgaWYgcnVsZSBhbmQgbGVmdFN5bWJvbDoKICAgICAgICAgICAg
ICAgIHJ1bGVzLmFwcGVuZCgobGVmdFN5bWJvbCwgJyAnLmpvaW4ocnVsZSkpKQoKICAgICAgICAg
ICAgbGVmdFN5bWJvbCA9IG0uZ3JvdXAoMSkKICAgICAgICAgICAgcnVsZSA9IFttLmdyb3VwKDIp
XQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJ1bGUuYXBwZW5kKGxpbmVNYXRjaC5ncm91cCgx
KSkKCiAgICBpZiBydWxlIGFuZCBsZWZ0U3ltYm9sOgogICAgICAgIHJ1bGVzLmFwcGVuZCgobGVm
dFN5bWJvbCwgJyAnLmpvaW4ocnVsZSkpKQoKICAgIHJ1bGVPcmRlciA9IFtdCiAgICBydWxlc2V0
ID0ge30KICAgIGZvciBsZWZ0RXhwclRleHQsIHJpZ2h0RXhwclRleHQgaW4gcnVsZXM6CiAgICAg
ICAgbSA9IF9MRUZUX0VYUFJfUEFUVEVSTi5tYXRjaChsZWZ0RXhwclRleHQpCiAgICAgICAgaWYg
bm90IG06CiAgICAgICAgICAgIGNvbnRpbnVlCgogICAgICAgIHJpZ2h0RXhwcmVzc2lvbnMgPSBb
XQogICAgICAgIGZvciBpdGVtIGluIF9SSUdIVF9FWFBSU19QQVRURVJOLmZpbmRhbGwocmlnaHRF
eHByVGV4dCk6CiAgICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvbnMuYXBwZW5kKAogICAgICAgICAg
ICAgICAgW3ggZm9yIHggaW4gcmUuc3BsaXQocicoXHN8XHhjMlx4YTApKycsIGl0ZW1bMF0pCiAg
ICAgICAgICAgICAgICAgaWYgeCBhbmQgbm90IHJlLm1hdGNoKHInKFxzfFx4YzJceGEwKSsnLCB4
KV0pCiAgICAgICAgcnVsZXNldFttLmdyb3VwKDIpXSA9IHJpZ2h0RXhwcmVzc2lvbnMKICAgICAg
ICBydWxlT3JkZXIuYXBwZW5kKG0uZ3JvdXAoMikpCgogICAgZmlyc3QgPSBnZW5lcmF0ZUZpcnN0
KHJ1bGVzZXQsIHJ1bGVPcmRlcikKICAgIGZvbGxvdyA9IGdlbmVyYXRlRm9sbG93KHJ1bGVzZXQs
IGZpcnN0KQogICAgZGlyZWN0b3IgPSBnZW5lcmF0ZURpcmVjdG9yKHJ1bGVzZXQsIGZpcnN0LCBm
b2xsb3cpCgogICAgZHVtcEZpcnN0KGZpcnN0LCBydWxlT3JkZXIpCiAgICBkdW1wRm9sbG93KGZv
bGxvdywgcnVsZU9yZGVyKQogICAgZHVtcERpcmVjdG9yKGRpcmVjdG9yLCBydWxlT3JkZXIpCiAg
ICAKICAgIHdyaXRlUGF0dGVybihkaXJlY3RvciwgcnVsZXNldCwgcnVsZU9yZGVyLCAiRGVmaW5p
dGlvbnMiKQoKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBtYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151682</attachid>
            <date>2012-07-11 04:58:40 -0700</date>
            <delta_ts>2012-08-10 00:51:28 -0700</delta_ts>
            <desc>IDL Grammar used by WebKit IDL files</desc>
            <filename>WebKitIDLGrammar.txt</filename>
            <type>text/plain</type>
            <size>4423</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">WzFdCURlZmluaXRpb25zCeKGkglEZWZpbml0aW9uIERlZmluaXRpb25zIAogfCDOtQpbMl0JRGVm
aW5pdGlvbgnihpIJTm9ybWFsRGVmaW5pdGlvbiAKIHwgUGFydGlhbEludGVyZmFjZQpbM10JTm9y
bWFsRGVmaW5pdGlvbgnihpIJTW9kdWxlIAogfCBJbnRlcmZhY2UgCiB8IERpY3Rpb25hcnkgCiB8
IEV4Y2VwdGlvbiAKIHwgVHlwZWRlZiAKIHwgSW1wbGVtZW50c1N0YXRlbWVudApbNF0JTW9kdWxl
CeKGkgkibW9kdWxlIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRlbnRpZmllciAieyIgRGVmaW5p
dGlvbnMgIn0iIE9wdGlvbmFsU2VtaWNvbG9uCls1XQlJbnRlcmZhY2UJ4oaSCSJpbnRlcmZhY2Ui
IEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIEluaGVyaXRhbmNlICJ7IiBJbnRlcmZh
Y2VNZW1iZXJzICJ9IiAiOyIKWzZdCVBhcnRpYWxJbnRlcmZhY2UJ4oaSCSJwYXJ0aWFsIiAiaW50
ZXJmYWNlIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRlbnRpZmllciAieyIgSW50ZXJmYWNlTWVt
YmVycyAifSIgIjsiCls3XQlJbmhlcml0YW5jZQnihpIJIjoiIFNjb3BlZE5hbWVMaXN0IAogfCDO
tQpbOF0JSW50ZXJmYWNlTWVtYmVycwnihpIJSW50ZXJmYWNlTWVtYmVyIEludGVyZmFjZU1lbWJl
cnMgCiB8IM61Cls5XQlJbnRlcmZhY2VNZW1iZXIJ4oaSCUV4dGVuZGVkQXR0cmlidXRlTGlzdCBD
b25zdE9yT3BlcmF0aW9uIAogfCBBdHRyaWJ1dGUKWzEwXQlEaWN0aW9uYXJ5CeKGkgkiZGljdGlv
bmFyeSIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIERp
Y3Rpb25hcnlNZW1iZXJzICJ9IiAiOyIKWzExXQlEaWN0aW9uYXJ5TWVtYmVycwnihpIJRGljdGlv
bmFyeU1lbWJlciBEaWN0aW9uYXJ5TWVtYmVycyAKIHwgzrUKWzEyXQlEaWN0aW9uYXJ5TWVtYmVy
CeKGkglUeXBlIGlkZW50aWZpZXIgRGVmYXVsdFZhbHVlICI7IgpbMTNdCURlZmF1bHRWYWx1ZQni
hpIJIj0iIENvbnN0RXhwciAKIHwgzrUKWzE0XQlFeGNlcHRpb24J4oaSCSJleGNlcHRpb24iIEV4
dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIEluaGVyaXRhbmNlICJ7IiBFeGNlcHRpb25N
ZW1iZXJzICJ9IiAiOyIKWzE1XQlFeGNlcHRpb25NZW1iZXJzCeKGkglFeGNlcHRpb25NZW1iZXIg
RXhjZXB0aW9uTWVtYmVycyAKIHwgzrUKWzE2XQlUeXBlZGVmCeKGkgkidHlwZWRlZiIgVHlwZSBp
ZGVudGlmaWVyICI7IgpbMTddCUltcGxlbWVudHNTdGF0ZW1lbnQJ4oaSCVNjb3BlZE5hbWUgImlt
cGxlbWVudHMiIFNjb3BlZE5hbWUgIjsiClsxOF0JQ29uc3QJ4oaSCSJjb25zdCIgQ29uc3RUeXBl
IGlkZW50aWZpZXIgIj0iIENvbnN0RXhwciAiOyIKWzE5XQlDb25zdEV4cHIJ4oaSCUJvb2xlYW5M
aXRlcmFsIAogfCBpbnRlZ2VyIAogfCBmbG9hdCAKIHwgc3RyaW5nIAogfCAibnVsbCIKWzIwXQlC
b29sZWFuTGl0ZXJhbAnihpIJInRydWUiIAogfCAiZmFsc2UiClsyMV0gICAgQ29uc3RPck9wZXJh
dGlvbiDihpIJQ29uc3QKIHwgT3BlcmF0aW9uClsyM10JQXR0cmlidXRlCeKGkglSZWFkT25seSAi
YXR0cmlidXRlIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgQXR0cmlidXRlVHlwZSBpZGVudGlmaWVy
IFNldEdldFJhaXNlcyAiOyIKWzI0XQlSZWFkT25seQnihpIJInJlYWRvbmx5IiAKIHwgzrUKWzI1
XQlTZXRHZXRSYWlzZXMJ4oaSCVNldFJhaXNlcyBHZXRSYWlzZXMyCiB8IEdldFJhaXNlcwpbMjdd
CUdldFJhaXNlcwnihpIJImdldHRlciIgInJhaXNlcyIgRXhjZXB0aW9uTGlzdAogfCDOtQpbMjcu
NV0JR2V0UmFpc2VzMgnihpIJIiwiICJnZXR0ZXIiICJyYWlzZXMiIEV4Y2VwdGlvbkxpc3QKIHwg
zrUKWzI4XQlTZXRSYWlzZXMJ4oaSCSJzZXR0ZXIiICJyYWlzZXMiIEV4Y2VwdGlvbkxpc3QgClsy
OV0JT3BlcmF0aW9uCeKGkglRdWFsaWZpZXJzIE9wZXJhdGlvblJlc3QKWzMwXQlRdWFsaWZpZXJz
CeKGkgkic3RhdGljIiAKIHwgIm9taXR0YWJsZSIgU3BlY2lhbHMgCiB8IFNwZWNpYWxzClszMV0J
U3BlY2lhbHMJ4oaSCVNwZWNpYWwgU3BlY2lhbHMgCiB8IM61ClszMl0JU3BlY2lhbAnihpIJImdl
dHRlciIgCiB8ICJzZXR0ZXIiIAogfCAiY3JlYXRvciIgCiB8ICJkZWxldGVyIiAKIHwgImNhbGxl
ciIKWzMzXQlPcGVyYXRpb25SZXN0CeKGkglSZXR1cm5UeXBlIE9wdGlvbmFsSWRlbnRpZmllciAi
KCIgQXJndW1lbnRMaXN0ICIpIiBSYWlzZXMgIjsiClszNF0JT3B0aW9uYWxJZGVudGlmaWVyCeKG
kglpZGVudGlmaWVyIAogfCDOtQpbMzVdCVJhaXNlcwnihpIJInJhaXNlcyIgRXhjZXB0aW9uTGlz
dCAKIHwgzrUKWzM2XQlFeGNlcHRpb25MaXN0CeKGkgkiKCIgU2NvcGVkTmFtZUxpc3QgIikiClsz
N10JQXJndW1lbnRMaXN0CeKGkglBcmd1bWVudCBBcmd1bWVudHMgCiB8IM61ClszOF0JQXJndW1l
bnRzCeKGkgkiLCIgQXJndW1lbnQgQXJndW1lbnRzIAogfCDOtQpbMzldCUFyZ3VtZW50CeKGkglJ
biBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgT3B0aW9uYWwgVHlwZSBFbGxpcHNpcyBPcHRpb25hbElk
ZW50aWZpZXIKWzQwXQlJbgnihpIJImluIiAKIHwgzrUKWzQxXQlPcHRpb25hbAnihpIJIm9wdGlv
bmFsIiAKIHwgzrUKWzQyXQlFbGxpcHNpcwnihpIJIi4uLiIgCiB8IM61Cls0M10JRXhjZXB0aW9u
TWVtYmVyCeKGkglDb25zdCAKIHwgRXhjZXB0aW9uRmllbGQKWzQ0XQlFeGNlcHRpb25GaWVsZAni
hpIJQXR0cmlidXRlVHlwZSBpZGVudGlmaWVyICI7IgpbNDVdCUV4dGVuZGVkQXR0cmlidXRlTGlz
dAnihpIJIlsiIEV4dGVuZGVkQXR0cmlidXRlIEV4dGVuZGVkQXR0cmlidXRlcyAiXSIgCiB8IM61
Cls0Nl0JRXh0ZW5kZWRBdHRyaWJ1dGVzCeKGkgkiLCIgRXh0ZW5kZWRBdHRyaWJ1dGUyIEV4dGVu
ZGVkQXR0cmlidXRlcyAKIHwgzrUKWzQ3XQlFeHRlbmRlZEF0dHJpYnV0ZQnihpIJIGlkZW50aWZp
ZXIgRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Cls0N10JRXh0ZW5kZWRBdHRyaWJ1dGUyCeKGkgkgaWRl
bnRpZmllciBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QKIHwgzrUKWzQ4XSAgICBFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QgICDihpIJICIoIiBBcmd1bWVudExpc3QgIikiCiB8ICI9IiBFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QyCiB8IM61Cls0OV0gICAgRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MiAg4oaSIGlkZW50
aWZpZXIgRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MwogfCBpbnRlZ2VyCls1MF0gICAgRXh0ZW5kZWRB
dHRyaWJ1dGVSZXN0MyAg4oaSICImIiBpZGVudGlmaWVyCiB8ICJ8IiBpZGVudGlmaWVyCiB8ICIo
IiBBcmd1bWVudExpc3QgIikiCiB8IM61Cls1Ml0JVHlwZQnihpIJQXR0cmlidXRlVHlwZSAKIHwg
InNlcXVlbmNlIiAiPCIgVHlwZSAiPiIgTnVsbApbNTNdCUF0dHJpYnV0ZVR5cGUJ4oaSCVByaW1p
dGl2ZU9yU3RyaW5nVHlwZSBUeXBlU3VmZml4IAogfCBTY29wZWROYW1lIFR5cGVTdWZmaXggCiB8
ICJvYmplY3QiIFR5cGVTdWZmaXggCiB8ICJEYXRlIiBUeXBlU3VmZml4IAogfCAiYW55IiBUeXBl
U3VmZml4U3RhcnRpbmdXaXRoQXJyYXkKWzU0XQlDb25zdFR5cGUJ4oaSCVByaW1pdGl2ZU9yU3Ry
aW5nVHlwZSBOdWxsCls1NV0JUHJpbWl0aXZlT3JTdHJpbmdUeXBlCeKGkglVbnNpZ25lZEludGVn
ZXJUeXBlIAogfCAiYm9vbGVhbiIgCiB8ICJieXRlIiAKIHwgIm9jdGV0IiAKIHwgImZsb2F0IiAK
IHwgImRvdWJsZSIgCiB8ICJET01TdHJpbmciCls1Nl0JVW5zaWduZWRJbnRlZ2VyVHlwZQnihpIJ
InVuc2lnbmVkIiBJbnRlZ2VyVHlwZSAKIHwgSW50ZWdlclR5cGUKWzU3XQlJbnRlZ2VyVHlwZQni
hpIJInNob3J0IiAKIHwgImxvbmciIE9wdGlvbmFsTG9uZwpbNThdCU9wdGlvbmFsTG9uZwnihpIJ
ImxvbmciIAogfCDOtQpbNTldCVR5cGVTdWZmaXgJ4oaSCSJbIiAiXSIgVHlwZVN1ZmZpeCAKIHwg
Ij8iIFR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSAKIHwgzrUKWzYwXQlUeXBlU3VmZml4U3Rh
cnRpbmdXaXRoQXJyYXkJ4oaSCSJbIiAiXSIgVHlwZVN1ZmZpeCAKIHwgzrUKWzYxXQlOdWxsCeKG
kgkiPyIgCiB8IM61Cls2Ml0JUmV0dXJuVHlwZQnihpIJVHlwZSAKIHwgInZvaWQiCls2M10JU2Nv
cGVkTmFtZUxpc3QJ4oaSCVNjb3BlZE5hbWUgU2NvcGVkTmFtZXMKWzY0XQlTY29wZWROYW1lcwni
hpIJIiwiIFNjb3BlZE5hbWUgU2NvcGVkTmFtZXMgCiB8IM61Cls2NV0JU2NvcGVkTmFtZQnihpIJ
QWJzb2x1dGVTY29wZWROYW1lIAogfCBSZWxhdGl2ZVNjb3BlZE5hbWUKWzY2XQlBYnNvbHV0ZVNj
b3BlZE5hbWUJ4oaSCSI6OiIgaWRlbnRpZmllciBTY29wZWROYW1lUGFydHMKWzY3XQlSZWxhdGl2
ZVNjb3BlZE5hbWUJ4oaSCWlkZW50aWZpZXIgU2NvcGVkTmFtZVBhcnRzCls2OF0JU2NvcGVkTmFt
ZVBhcnRzCeKGkgkiOjoiIGlkZW50aWZpZXIgU2NvcGVkTmFtZVBhcnRzIAogfCDOtQpbNjldICAg
ICBPcHRpb25hbFNlbWljb2xvbiDihpIgIjsiCiB8IM61Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151686</attachid>
            <date>2012-07-11 05:00:44 -0700</date>
            <delta_ts>2012-08-10 00:51:44 -0700</delta_ts>
            <desc>Modified WebIDL Grammar based on 20110712</desc>
            <filename>WebIDL20110712Grammar2.txt</filename>
            <type>text/plain</type>
            <size>4452</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">WzFdCURlZmluaXRpb25zCeKGkglEZWZpbml0aW9uIERlZmluaXRpb25zIAogfCDOtQpbMl0JRGVm
aW5pdGlvbgnihpIJRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IE5vcm1hbERlZmluaXRpb24gCiB8IFBh
cnRpYWxJbnRlcmZhY2UKWzNdCU5vcm1hbERlZmluaXRpb24J4oaSCU1vZHVsZSAKIHwgSW50ZXJm
YWNlIAogfCBEaWN0aW9uYXJ5IAogfCBFeGNlcHRpb24gCiB8IFR5cGVkZWYgCiB8IEltcGxlbWVu
dHNTdGF0ZW1lbnQKWzRdCU1vZHVsZQnihpIJIm1vZHVsZSIgaWRlbnRpZmllciAieyIgRGVmaW5p
dGlvbnMgIn0iIE9wdGlvbmFsU2VtaWNvbG9uCls1XQlJbnRlcmZhY2UJ4oaSCSJpbnRlcmZhY2Ui
IGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIEludGVyZmFjZU1lbWJlcnMgIn0iICI7IgpbNl0J
UGFydGlhbEludGVyZmFjZQnihpIJInBhcnRpYWwiICJpbnRlcmZhY2UiIGlkZW50aWZpZXIgInsi
IEludGVyZmFjZU1lbWJlcnMgIn0iICI7IgpbN10JSW5oZXJpdGFuY2UJ4oaSCSI6IiBTY29wZWRO
YW1lTGlzdCAKIHwgzrUKWzhdCUludGVyZmFjZU1lbWJlcnMJ4oaSCUV4dGVuZGVkQXR0cmlidXRl
TGlzdCBJbnRlcmZhY2VNZW1iZXIgSW50ZXJmYWNlTWVtYmVycyAKIHwgzrUKWzldCUludGVyZmFj
ZU1lbWJlcgnihpIJQ29uc3QgCiB8IEF0dHJpYnV0ZU9yT3BlcmF0aW9uClsxMF0JRGljdGlvbmFy
eQnihpIJImRpY3Rpb25hcnkiIGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIERpY3Rpb25hcnlN
ZW1iZXJzICJ9IiAiOyIKWzExXQlEaWN0aW9uYXJ5TWVtYmVycwnihpIJRXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0IERpY3Rpb25hcnlNZW1iZXIgRGljdGlvbmFyeU1lbWJlcnMgCiB8IM61ClsxMl0JRGlj
dGlvbmFyeU1lbWJlcgnihpIJVHlwZSBpZGVudGlmaWVyIERlZmF1bHRWYWx1ZSAiOyIKWzEzXQlE
ZWZhdWx0VmFsdWUJ4oaSCSI9IiBDb25zdEV4cHIgCiB8IM61ClsxNF0JRXhjZXB0aW9uCeKGkgki
ZXhjZXB0aW9uIiBpZGVudGlmaWVyIEluaGVyaXRhbmNlICJ7IiBFeGNlcHRpb25NZW1iZXJzICJ9
IiAiOyIKWzE1XQlFeGNlcHRpb25NZW1iZXJzCeKGkglFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgRXhj
ZXB0aW9uTWVtYmVyIEV4Y2VwdGlvbk1lbWJlcnMgCiB8IM61ClsxNl0JVHlwZWRlZgnihpIJInR5
cGVkZWYiIFR5cGUgaWRlbnRpZmllciAiOyIKWzE3XQlJbXBsZW1lbnRzU3RhdGVtZW50CeKGkglT
Y29wZWROYW1lICJpbXBsZW1lbnRzIiBTY29wZWROYW1lICI7IgpbMThdCUNvbnN0CeKGkgkiY29u
c3QiIENvbnN0VHlwZSBpZGVudGlmaWVyICI9IiBDb25zdEV4cHIgIjsiClsxOV0JQ29uc3RFeHBy
CeKGkglCb29sZWFuTGl0ZXJhbCAKIHwgaW50ZWdlciAKIHwgZmxvYXQgCiB8IHN0cmluZyAKIHwg
Im51bGwiClsyMF0JQm9vbGVhbkxpdGVyYWwJ4oaSCSJ0cnVlIiAKIHwgImZhbHNlIgpbMjFdCUF0
dHJpYnV0ZU9yT3BlcmF0aW9uCeKGkgkic3RyaW5naWZpZXIiIFN0cmluZ2lmaWVyQXR0cmlidXRl
T3JPcGVyYXRpb24gCiB8IEF0dHJpYnV0ZSAKIHwgT3BlcmF0aW9uClsyMl0JU3RyaW5naWZpZXJB
dHRyaWJ1dGVPck9wZXJhdGlvbgnihpIJQXR0cmlidXRlIAogfCBPcGVyYXRpb25SZXN0IAogfCAi
OyIKWzIzXQlBdHRyaWJ1dGUJ4oaSCVJlYWRPbmx5ICJhdHRyaWJ1dGUiIEF0dHJpYnV0ZVR5cGUg
aWRlbnRpZmllciBHZXQgU2V0UmFpc2VzICI7IgpbMjRdCVJlYWRPbmx5CeKGkgkicmVhZG9ubHki
IAogfCDOtQpbMjVdCUdldAnihpIJSW5oZXJpdHNHZXR0ZXIgCiB8IEdldFJhaXNlcyAKIHwgzrUK
WzI2XQlJbmhlcml0c0dldHRlcgnihpIJImluaGVyaXRzIiAiZ2V0dGVyIgpbMjddCUdldFJhaXNl
cwnihpIJImdldHJhaXNlcyIgRXhjZXB0aW9uTGlzdApbMjhdCVNldFJhaXNlcwnihpIJInNldHJh
aXNlcyIgRXhjZXB0aW9uTGlzdCAKIHwgzrUKWzI5XQlPcGVyYXRpb24J4oaSCVF1YWxpZmllcnMg
T3BlcmF0aW9uUmVzdApbMzBdCVF1YWxpZmllcnMJ4oaSCSJzdGF0aWMiIAogfCAib21pdHRhYmxl
IiBTcGVjaWFscyAKIHwgU3BlY2lhbHMKWzMxXQlTcGVjaWFscwnihpIJU3BlY2lhbCBTcGVjaWFs
cyAKIHwgzrUKWzMyXQlTcGVjaWFsCeKGkgkiZ2V0dGVyIiAKIHwgInNldHRlciIgCiB8ICJjcmVh
dG9yIiAKIHwgImRlbGV0ZXIiIAogfCAiY2FsbGVyIgpbMzNdCU9wZXJhdGlvblJlc3QJ4oaSCVJl
dHVyblR5cGUgT3B0aW9uYWxJZGVudGlmaWVyICIoIiBBcmd1bWVudExpc3QgIikiIFJhaXNlcyAi
OyIKWzM0XQlPcHRpb25hbElkZW50aWZpZXIJ4oaSCWlkZW50aWZpZXIgCiB8IM61ClszNV0JUmFp
c2VzCeKGkgkicmFpc2VzIiBFeGNlcHRpb25MaXN0IAogfCDOtQpbMzZdCUV4Y2VwdGlvbkxpc3QJ
4oaSCSIoIiBTY29wZWROYW1lTGlzdCAiKSIKWzM3XQlBcmd1bWVudExpc3QJ4oaSCUFyZ3VtZW50
IEFyZ3VtZW50cyAKIHwgzrUKWzM4XQlBcmd1bWVudHMJ4oaSCSIsIiBBcmd1bWVudCBBcmd1bWVu
dHMgCiB8IM61ClszOV0JQXJndW1lbnQJ4oaSCUV4dGVuZGVkQXR0cmlidXRlTGlzdCBJbiBPcHRp
b25hbCBUeXBlIEVsbGlwc2lzIE9wdGlvbmFsSWRlbnRpZmllcgpbNDBdCUluCeKGkgkiaW4iIAog
fCDOtQpbNDFdCU9wdGlvbmFsCeKGkgkib3B0aW9uYWwiIAogfCDOtQpbNDJdCUVsbGlwc2lzCeKG
kgkiLi4uIiAKIHwgzrUKWzQzXQlFeGNlcHRpb25NZW1iZXIJ4oaSCUNvbnN0IAogfCBFeGNlcHRp
b25GaWVsZApbNDRdCUV4Y2VwdGlvbkZpZWxkCeKGkglBdHRyaWJ1dGVUeXBlIGlkZW50aWZpZXIg
IjsiCls0NV0JRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0CeKGkgkiWyIgRXh0ZW5kZWRBdHRyaWJ1dGUg
RXh0ZW5kZWRBdHRyaWJ1dGVzICJdIiAKIHwgzrUKWzQ2XQlFeHRlbmRlZEF0dHJpYnV0ZXMJ4oaS
CSIsIiBFeHRlbmRlZEF0dHJpYnV0ZTIgRXh0ZW5kZWRBdHRyaWJ1dGVzIAogfCDOtQpbNDddCUV4
dGVuZGVkQXR0cmlidXRlCeKGkgkgaWRlbnRpZmllciBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QKWzQ3
XQlFeHRlbmRlZEF0dHJpYnV0ZTIJ4oaSCSBpZGVudGlmaWVyIEV4dGVuZGVkQXR0cmlidXRlUmVz
dAogfCDOtQpbNDhdICAgIEV4dGVuZGVkQXR0cmlidXRlUmVzdCAgIOKGkgkgIigiIEFyZ3VtZW50
TGlzdCAiKSIKIHwgIj0iIEV4dGVuZGVkQXR0cmlidXRlUmVzdDIKIHwgzrUKWzQ5XSAgICBFeHRl
bmRlZEF0dHJpYnV0ZVJlc3QyICDihpIgaWRlbnRpZmllciBFeHRlbmRlZEF0dHJpYnV0ZVJlc3Qz
CiB8IGludGVnZXIKWzUwXSAgICBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzICDihpIgIiYiIGlkZW50
aWZpZXIKIHwgInwiIGlkZW50aWZpZXIKIHwgIigiIEFyZ3VtZW50TGlzdCAiKSIKIHwgzrUKWzUy
XQlUeXBlCeKGkglBdHRyaWJ1dGVUeXBlIAogfCAic2VxdWVuY2UiICI8IiBUeXBlICI+IiBOdWxs
Cls1M10JQXR0cmlidXRlVHlwZQnihpIJUHJpbWl0aXZlT3JTdHJpbmdUeXBlIFR5cGVTdWZmaXgg
CiB8IFNjb3BlZE5hbWUgVHlwZVN1ZmZpeCAKIHwgIm9iamVjdCIgVHlwZVN1ZmZpeCAKIHwgIkRh
dGUiIFR5cGVTdWZmaXggCiB8ICJhbnkiIFR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQpbNTRd
CUNvbnN0VHlwZQnihpIJUHJpbWl0aXZlT3JTdHJpbmdUeXBlIE51bGwKWzU1XQlQcmltaXRpdmVP
clN0cmluZ1R5cGUJ4oaSCVVuc2lnbmVkSW50ZWdlclR5cGUgCiB8ICJib29sZWFuIiAKIHwgImJ5
dGUiIAogfCAib2N0ZXQiIAogfCAiZmxvYXQiIAogfCAiZG91YmxlIiAKIHwgIkRPTVN0cmluZyIK
WzU2XQlVbnNpZ25lZEludGVnZXJUeXBlCeKGkgkidW5zaWduZWQiIEludGVnZXJUeXBlIAogfCBJ
bnRlZ2VyVHlwZQpbNTddCUludGVnZXJUeXBlCeKGkgkic2hvcnQiIAogfCAibG9uZyIgT3B0aW9u
YWxMb25nCls1OF0JT3B0aW9uYWxMb25nCeKGkgkibG9uZyIgCiB8IM61Cls1OV0JVHlwZVN1ZmZp
eAnihpIJIlsiICJdIiBUeXBlU3VmZml4IAogfCAiPyIgVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFy
cmF5IAogfCDOtQpbNjBdCVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQnihpIJIlsiICJdIiBU
eXBlU3VmZml4IAogfCDOtQpbNjFdCU51bGwJ4oaSCSI/IiAKIHwgzrUKWzYyXQlSZXR1cm5UeXBl
CeKGkglUeXBlIAogfCAidm9pZCIKWzYzXQlTY29wZWROYW1lTGlzdAnihpIJU2NvcGVkTmFtZSBT
Y29wZWROYW1lcwpbNjRdCVNjb3BlZE5hbWVzCeKGkgkiLCIgU2NvcGVkTmFtZSBTY29wZWROYW1l
cyAKIHwgzrUKWzY1XQlTY29wZWROYW1lCeKGkglBYnNvbHV0ZVNjb3BlZE5hbWUgCiB8IFJlbGF0
aXZlU2NvcGVkTmFtZQpbNjZdCUFic29sdXRlU2NvcGVkTmFtZQnihpIJIjo6IiBpZGVudGlmaWVy
IFNjb3BlZE5hbWVQYXJ0cwpbNjddCVJlbGF0aXZlU2NvcGVkTmFtZQnihpIJaWRlbnRpZmllciBT
Y29wZWROYW1lUGFydHMKWzY4XQlTY29wZWROYW1lUGFydHMJ4oaSCSI6OiIgaWRlbnRpZmllciBT
Y29wZWROYW1lUGFydHMgCiB8IM61Cls2OV0gICAgIE9wdGlvbmFsU2VtaWNvbG9uCeKGkgkiOyIK
IHwgzrUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151870</attachid>
            <date>2012-07-12 00:22:21 -0700</date>
            <delta_ts>2012-07-25 02:46:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120712162220.patch</filename>
            <type>text/plain</type>
            <size>120092</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTlhMGVmMTFkOGU2Zjk0
YzVjZmRlY2E2MGRmZjkzNzlkZTIyYjQ2ZS4uMGM4MDE5YmZlYzMwODFjZjA2MjkyZDhiYTMyZDM5
ZTcwMzA4NTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5NSBAQAorMjAxMi0wNy0xMSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAxMS9XRC1XZWJJREwtMjAxMTA3MTIvI2lkbC1ncmFtbWFyCisgICAgICAg
IFRoZSBncmFtbWFyIGFuZCB0aGUgb2xkIGdyYW1tYXIgd2VyZSB1cGxvYWRlZCB0byBidWdzLndl
YmtpdC5vcmcuCisKKyAgICAgICAgRmlyc3RseSB0ZW1wbGF0ZSBJREwgcGFyc2VyIHdhcyBnZW5l
cmF0ZWQgYnkgdXBsb2FkZWQgcHl0aG9uIHNjcmlwdCwKKyAgICAgICAgYW5kIG1vZGlmaWVkIHRv
IGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dHMgYXMgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4K
KyAgICAgICAgVG8gc2VwYXJhdGUgSURMIGZpbGVzJyBjaGFuZ2VzIGZyb20gdGhpcyBwYXRjaCwg
dGhlIGludGVybmFsIHZhcmlhYmxlOgorICAgICAgICAkYmFja3dhcmRDb21wYXRpYmxlTW9kZSBk
ZWZpbmVkIGluIElETFBhcnNlci5wbSBpcyB1c2VkLiBJZiBpdHMgdmFsdWUKKyAgICAgICAgaXMg
MSwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURMIGZpbGVzIGdlbmVyYXRlZCBieSBjdXJyZW50IFdl
YktpdCBJREwKKyAgICAgICAgZ3JhbW1hci4gSWYgMCwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURM
IGZpbGVzIHdob3NlIGV4dGVuZGVkIGF0dHJpYnV0ZXMKKyAgICAgICAgYXJlIG1vdmVkIHRvIHRo
ZSBsb2NhdGlvbiBzcGVjaWZpZWQgaW4gV2ViSURMLgorICAgICAgICBUbyBpbXBsZW1lbnQgdGhl
IG1vZGUsIHR3byBkaWZmZXJlbnQgV2ViSURMIGdyYW1tYXJzIHdlcmUgdXNlZCB0bworICAgICAg
ICBnZW5lYXJldGUgdGhpcyBJRExQYXJzZXIucG0uIFRoZSB0d28gZ2VuZXJhdGVkIHRlbXBhbGF0
ZSBwYXJzZXJzIHdlcmUKKyAgICAgICAgbWVyZ2VkIG1hbnVhbGx5LgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGVzdGVkIGJ5IGNvbXBhcmluZyB3aXRoIHNvdXJjZXMgZ2VuZXJhdGVkIGJ5Cisg
ICAgICAgIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0uCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKG5ldyk6CisgICAgICAgIChzaG91bGRUb2tl
blZhbHVlRXF1YWxzKToKKyAgICAgICAgKHNob3VsZFRva2VuVHlwZUVxdWFscyk6CisgICAgICAg
IChQYXJzZSk6CisgICAgICAgIEEgbWV0aG9kIHRvIHN0YXJ0IHBhcnNpbmcgYSBJREwgZmlsZS4g
QXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzIGFyZQorICAgICAgICB0aGUgc2FtZSBhcyB0aGUg
cHJldmlvdXMgSURMUGFyc2VyLnBtJ3MgUGFyc2UgbWV0aG9kLgorICAgICAgICAobmV4dFRva2Vu
KToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gc2VlIGEgbmV4dCB0b2tlbiwgYmVjYXVzZSBvZiBM
TCgxKS4KKyAgICAgICAgKGdldFRva2VuKToKKyAgICAgICAgUmV0dXJucyBjdXJyZW50IHRva2Vu
LCBhbmQgdXBkYXRlIG5leHQgYW5kIGN1cnJlbnQgdG9rZW4uCisgICAgICAgIChnZXRUb2tlbklu
dGVybmFsKToKKyAgICAgICAgQWNjb3JkaW5nIHRvIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGRl
ZmluZWQgaW4gV2ViSURMIHNwZWMsIGV4dHJhY3RzCisgICAgICAgIG9uZSBuZXcgdG9rZW4gZnJv
bSBhIHRleHQgc3RyaW5nLiBUaGUgb3JkZXIgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAg
ICAgICAgdG8gYmUgdGVzdGVkIGlzIGltcG9ydGFudCwgaS5lLiAiMC4iIHNob3VsZCBiZSBjb25z
aWRlcmVkIGFzIGEgZmxvYXQKKyAgICAgICAgdG9rZW4sIGJ1dCBpZiBmaXJzdGx5IGNoZWNrcyB0
aGUgaW50ZWdlciByZWd1bGFyIGV4cHJlc3Npb24sICIwLiIgaXMKKyAgICAgICAgY29uc2lkZXJl
ZCBhcyAiMCIgYW5kICIuIi4KKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbnMpOgorICAgICAgICAo
cGFyc2VEZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlTm9ybWFsRGVmaW5pdGlvbik6CisgICAg
ICAgIChwYXJzZU1vZHVsZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIGFjY2VwdCB0aGUgY2FzZTog
bWlzc2luZyAiOyIuCisgICAgICAgIChwYXJzZUludGVyZmFjZSk6CisgICAgICAgIEEgd3JhcHBl
ciBtZXRob2QgdG8gaW52b2tlIHBhcnNlSW50ZXJmYWNlTmV3IG9yIHBhcnNlSW50ZXJmYWNlT2xk
CisgICAgICAgIGRlcGVuZGluZyBvbiAkYmFja3dhcmRDb21wYXRpYmxlTW9kZS4KKyAgICAgICAg
KHBhcnNlSW50ZXJmYWNlTmV3KToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6Cisg
ICAgICAgIChwYXJzZUluaGVyaXRhbmNlKToKKyAgICAgICAgV2ViSURMIGRvZXNuJ3Qgc3VwcG9y
dCBtdWx0aXBsZSBwYXJlbnRzLCBidXQgU1ZHQWx0R2x5cGhFbGVtZW50IGhhcyB0d28KKyAgICAg
ICAgcGFyZW50cywgaS5lLiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IGFuZCBTVkdVUklSZWZl
cmVuY2UuIFNvIGNoYW5nZXMKKyAgICAgICAgdGhlIG9yaWdpbmFsIGdyYW1tYXIgdG8gc3VwcG9y
dCBzdWNoIGEgSURMIGZpbGUuCisgICAgICAgIChwYXJzZUludGVyZmFjZU1lbWJlcnMpOgorICAg
ICAgICAocGFyc2VJbnRlcmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5KToK
KyAgICAgICAgQSB3cmFwcGVyIG1ldGhvZCB0byBpbnZva2UgcGFyc2VEaWN0aW9uYXJ5TmV3IG9y
IHBhcnNlRGljdGlvbmFyeU9sZAorICAgICAgICBkZXBlbmRpbmcgb24gJGJhY2t3YXJkQ29tcGF0
aWJsZU1vZGUuCisgICAgICAgIChwYXJzZURpY3Rpb25hcnlOZXcpOgorICAgICAgICAocGFyc2VE
aWN0aW9uYXJ5TWVtYmVycyk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlNZW1iZXIpOgorICAg
ICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgorICAg
ICAgICBBIHdyYXBwZXIgbWV0aG9kIHRvIGludm9rZSBwYXJzZUV4Y2VwdGlvbk5ldyBvciBwYXJz
ZUV4Y2VwdGlvbk9sZAorICAgICAgICBkZXBlbmRpbmcgb24gJGJhY2t3YXJkQ29tcGF0aWJsZU1v
ZGUuCisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk5ldyk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlv
bk1lbWJlcnMpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVt
ZW50c1N0YXRlbWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29u
c3RFeHByKToKKyAgICAgICAgKHBhcnNlQm9vbGVhbkxpdGVyYWwpOgorICAgICAgICAocGFyc2VB
dHRyaWJ1dGVPck9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRl
T3JPcGVyYXRpb24pOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICBBIHdyYXBw
ZXIgbWV0aG9kIHRvIGludm9rZSBwYXJzZUF0dHJpYnV0ZU5ldyBvciBwYXJzZUF0dHJpYnVlT2xk
CisgICAgICAgIGRlcGVuZGluZyBvbiAkYmFja3dhcmRDb21wYXRpYmxlTW9kZS4KKyAgICAgICAg
KHBhcnNlQXR0cmlidXRlTmV3KToKKyAgICAgICAgKHBhcnNlUmVhZE9ubHkpOgorICAgICAgICAo
cGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhlcml0c0dldHRlcik6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlcyk6CisgICAgICAgIChwYXJzZVNldFJhaXNlcyk6CisgICAgICAgIChwYXJzZU9w
ZXJhdGlvbik6CisgICAgICAgIChwYXJzZVF1YWxpZmllcnMpOgorICAgICAgICAocGFyc2VTcGVj
aWFscyk6CisgICAgICAgIChwYXJzZVNwZWNpYWwpOgorICAgICAgICAocGFyc2VPcGVyYXRpb25S
ZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKToKKyAgICAgICAgKHBhcnNl
UmFpc2VzKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uTGlzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50TGlzdCk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50cyk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnROZXcpOgorICAgICAgICAocGFyc2VJbik6
CisgICAgICAgIChwYXJzZU9wdGlvbmFsKToKKyAgICAgICAgKHBhcnNlRWxsaXBzaXMpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlcyk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlKToK
KyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKToKKyAgICAgICAgKHBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVSZXN0KToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Mik6
CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDMpOgorICAgICAgICBUaGVzZSBh
cmUgaW1wbGVtZW50ZWQgdG8gcGFyc2UgdGhlIHJlc3RyaWN0ZWQgIkV4dGVuZGVkQXR0cmlidXRl
IiwgaS5lLgorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZU5vQXJnLCBFeHRlbmRlZEF0dHJpYnV0
ZUFyZ0xpc3QsCisgICAgICAgIEV4dGVuZGVkQXR0cmlidXRlTmFtZWRBcmdMaXN0LCBFeHRlbmRl
ZEF0dHJpYnV0ZUlkZW50IGFuZAorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZVNjb3BlZE5hbWUu
IEhvd2V2ZXIsIHRoZXNlIHJ1bGVzIGRvbid0IHN1cHBvcnQKKyAgICAgICAgIlZhbHVlPTAiLCAi
VmFsdWU9QSZCIiwgYW5kICJWYWx1ZT1BfEIiLCBiZWNhdXNlIDAsIEEmQiwgYW5kIEF8QiBhcmUK
KyAgICAgICAgbmVpdGhlciBpZGVudGlmaWVycyBub3Igc2NvcGVkIG5hbWVzLiBTbyBtb2RpZmll
ZCB0byBzdXBwb3J0IHRoZXNlCisgICAgICAgIGV4dGVuZGVkIGF0dHJpYnV0ZS4KKyAgICAgICAg
KHBhcnNlVHlwZSk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAocGFy
c2VDb25zdFR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVPclN0cmluZ1R5cGUpOgorICAg
ICAgICAocGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKToKKyAgICAgICAgKHBhcnNlSW50ZWdlclR5
cGUpOgorICAgICAgICBBZGRlZCAiaW50IiB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgV2Vi
SURMIHNwZWMsIGJlY2F1c2Ugc29tZSBvZgorICAgICAgICBJREwgZmlsZXMgdXNlICJpbnQiLCBl
LmcuIFRvdWNoLmlkbCwgQXJyYXlCdWZmZXIuaWRsLCBhbmQgc28gb24uCisgICAgICAgIChwYXJz
ZU9wdGlvbmFsTG9uZyk6CisgICAgICAgIChwYXJzZVR5cGVTdWZmaXgpOgorICAgICAgICAocGFy
c2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkpOgorICAgICAgICAocGFyc2VOdWxsKToKKyAg
ICAgICAgKHBhcnNlUmV0dXJuVHlwZSk6CisgICAgICAgIChwYXJzZVNjb3BlZE5hbWVMaXN0KToK
KyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZXMpOgorICAgICAgICAocGFyc2VTY29wZWROYW1lKToK
KyAgICAgICAgKHBhcnNlQWJzb2x1dGVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlUmVsYXRp
dmVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZVBhcnRzKToKKyAgICAgICAg
KHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAocGFyc2VEZWZpbml0aW9uc09sZCk6
CisgICAgICAgIChwYXJzZURlZmluaXRpb25PbGQpOgorICAgICAgICAocGFyc2VNb2R1bGVPbGQp
OgorICAgICAgICAocGFyc2VJbnRlcmZhY2VPbGQpOgorICAgICAgICAocGFyc2VQYXJ0aWFsSW50
ZXJmYWNlT2xkKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNlTWVtYmVyc09sZCk6CisgICAgICAg
IChwYXJzZUludGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQp
OgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyc09sZCk6CisgICAgICAgIChwYXJzZUV4
Y2VwdGlvbk9sZCk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk1lbWJlcnNPbGQpOgorICAgICAg
ICAocGFyc2VDb25zdE9yT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT2xkKToK
KyAgICAgICAgKHBhcnNlU2V0R2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlR2V0UmFpc2VzT2xk
KToKKyAgICAgICAgKHBhcnNlR2V0UmFpc2VzT2xkMik6CisgICAgICAgIChwYXJzZVNldFJhaXNl
c09sZCk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50T2xkKToKKyAgICAgICAgVGhlc2UgcGFyc2Uu
Li5PbGQgYXJlIHVzZWQgdG8gcGFyc2UgdGhlIGN1cnJlbnQgV2ViS2l0IElETCBncmFtbWFyLgor
ICAgICAgICAoYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJET01UZXN0
T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJET01UZXN0T2Jq
OjpzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24pOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3Jh
aXNlcyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVf
YXR0cmlidXRlX3JhaXNlcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0U3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzOl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIHNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXM6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgor
ICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhhcyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJ
bnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzQXR0clNldHRlcik6CisgICAgICAgIFVwZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cywg
YmVjYXVzZSB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtIGdlbmVyYXRlcworICAgICAgICAic2V0
dGVyIHJhaXNlcyIgY29kZSAgd2hlbiBvbmx5ICJnZXR0ZXIgcmFpc2VzIiBvciAiZ2V0cmFpc2Vz
IiBpcworICAgICAgICBzcGVjaWZpZWQuCisKIDIwMTItMDctMTEgIE1hcmsgUm93ZSAgPG1yb3dl
QGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi85MTA1MT4gRml4IHRo
ZSBRdCBNYWMgYnVpbGQgYWZ0ZXIgcjEyMjQwMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG0KaW5kZXggYWYwMmM2NGJiNDEzZjQ5NDFiNzE5N2RlMzYzNTg0
YzRmMGE2NTY1Ni4uYjk5YThiMzVkMTZiMGNhOWFiN2IxOGU3YTQ0MjcxZmNlYjUwODhlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KQEAgLTIxLDQ0
OSArMjEsMTg4NyBAQAogCiBwYWNrYWdlIElETFBhcnNlcjsKIAordXNlIENsYXNzOjpTdHJ1Y3Q7
CisKIHVzZSBzdHJpY3Q7Ci11c2UgcmUgJ2V2YWwnOwogCiB1c2UgSVBDOjpPcGVuMjsKIHVzZSBJ
RExTdHJ1Y3R1cmU7CiB1c2UgcHJlcHJvY2Vzc29yOwogCi11c2UgY29uc3RhbnQgTU9ERV9VTkRF
RiAgICA9PiAwOyAjIERlZmF1bHQgbW9kZS4KK3VzZSBjb25zdGFudCBTdHJpbmdUb2tlbiA9PiAw
OwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNlIGNvbnN0YW50IEZsb2F0VG9r
ZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsKK3VzZSBjb25zdGFu
dCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlUb2tlbiA9PiA1OwogCi11c2Ug
Y29uc3RhbnQgTU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25z
dGFudCBNT0RFX0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNv
bnN0YW50IE1PREVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCit1c2Ug
Y29uc3RhbnQgVHJ1ZSA9PiAxOwordXNlIGNvbnN0YW50IEZhbHNlID0+IDA7CiAKLSMgSGVscGVy
IHZhcmlhYmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7CitzdHJ1Y3QoIFRva2VuID0+IHsKKyAg
ICB0eXBlID0+ICckJywgIyB0eXBlIG9mIHRva2VuCisgICAgdmFsdWUgPT4gJyQnICMgdmFsdWUg
b2YgdG9rZW4KK30pOwogCi1teSAkcGFyc2VNb2RlOwotbXkgJHByZXNlcnZlZFBhcnNlTW9kZTsK
K215ICRiZVF1aWV0ID0gMDsKK215ICRleGNlcHRpb25Jc1RoZVNhbWVBc0ludGVyZmFjZSA9IDE7
ICMgQWNjb3JkaW5nIHRvIHRoZSBzcGVjLCBleGNlcHRpb24gaXMgbm90IHRoZSBzYW1lIGFzIGlu
dGVyZmFjZS4KK215ICRiYWNrd2FyZENvbXBhdGlibGVNb2RlID0gMTsKIAotbXkgJGJlUXVpZXQ7
ICMgU2hvdWxkIG5vdCBkaXNwbGF5IGFueXRoaW5nIG9uIFNURE9VVD8KLW15ICRkb2N1bWVudDsg
IyBXaWxsIGhvbGQgdGhlIHJlc3VsdGluZyAnaWRsRG9jdW1lbnQnCi1teSAkcGFyZW50c09ubHk7
ICMgSWYgMSwgcGFyc2Ugb25seSBlbm91Z2ggdG8gcG9wdWxhdGUgcGFyZW50cyBsaXN0CitzdWIg
bmV3IHsKKyAgICBteSAkY2xhc3MgPSBzaGlmdDsKIAotc3ViIEluaXRpYWxpemVHbG9iYWxEYXRh
Ci17Ci0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKKyAgICBteSAkZW1wdHlUb2tlbiA9IFRv
a2VuLT5uZXcoKTsKKyAgICAkZW1wdHlUb2tlbi0+dHlwZShFbXB0eVRva2VuKTsKKyAgICAkZW1w
dHlUb2tlbi0+dmFsdWUoImVtcHR5Iik7CiAKLSAgICAkcGFyc2VNb2RlID0gTU9ERV9VTkRFRjsK
LSAgICAkcHJlc2VydmVkUGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKKyAgICBteSAkc2VsZiA9IHsK
KyAgICAgICAgRG9jdW1lbnRDb250ZW50ID0+ICIiLAorICAgICAgICBFbXB0eVRva2VuID0+ICRl
bXB0eVRva2VuLAorICAgICAgICBOZXh0VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIFRv
a2VuID0+ICRlbXB0eVRva2VuCisgICAgfTsKKworICAgICRiZVF1aWV0ID0gc2hpZnQ7CiAKLSAg
ICAkZG9jdW1lbnQgPSAwOwotICAgICRwYXJlbnRzT25seSA9IDA7CisgICAgcmV0dXJuIGJsZXNz
ICRzZWxmLCAkY2xhc3M7CiB9CiAKLSMgRGVmYXVsdCBDb25zdHJ1Y3Rvcgotc3ViIG5ldworc3Vi
IHNob3VsZFRva2VuVmFsdWVFcXVhbHMKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAg
bXkgJHJlZmVyZW5jZSA9IHsgfTsKLQotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7Ci0KLSAg
ICAkYmVRdWlldCA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR2YWx1
ZSA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgZGllICJOZXh0IHRva2VuIHNo
b3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiICIgLiAk
bGluZSB1bmxlc3MgJHRva2VuLT52YWx1ZSgpIGVxICR2YWx1ZTsKK30KIAotICAgIGJsZXNzKCRy
ZWZlcmVuY2UsICRvYmplY3QpOwotICAgIHJldHVybiAkcmVmZXJlbmNlOworc3ViIHNob3VsZFRv
a2VuVHlwZUVxdWFscworeworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR0eXBlID0g
c2hpZnQ7CisgICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBl
IHNob3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiAiIC4g
JGxpbmUgdW5sZXNzICR0b2tlbi0+dHlwZSgpIGVxICR0eXBlOwogfQogCi0jIFJldHVybnMgdGhl
IHBhcnNlZCAnaWRsRG9jdW1lbnQnCiBzdWIgUGFyc2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKICAg
ICBteSAkZGVmaW5lcyA9IHNoaWZ0OwogICAgIG15ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKLSAg
ICAkcGFyZW50c09ubHkgPSBzaGlmdDsKKworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOwogCiAg
ICAgcHJpbnQgIiB8ICoqKiBTdGFydGluZyB0byBwYXJzZSAkZmlsZU5hbWUuLi5cbiB8XG4iIHVu
bGVzcyAkYmVRdWlldDsKLSAgICBteSBAZG9jdW1lbnRDb250ZW50ID0gYXBwbHlQcmVwcm9jZXNz
b3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CiAKLSAgICBteSAkZGF0YUF2
YWlsYWJsZSA9IDA7CisgICAgbXkgQGxpbmVzID0gYXBwbHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1l
LCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CisgICAgJHNlbGYtPntMaW5lfSA9ICRsaW5lc1sw
XTsKKyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPSBqb2luKCcgJywgQGxpbmVzKTsKIAot
ICAgICMgU2ltcGxlIElETCBQYXJzZXIgKHRtKQotICAgIGZvcmVhY2ggKEBkb2N1bWVudENvbnRl
bnQpIHsKLSAgICAgICAgbXkgJG5ld1BhcnNlTW9kZSA9ICRvYmplY3QtPkRldGVybWluZVBhcnNl
TW9kZSgkXyk7CisgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgZXZhbCB7CisgICAgICAgIG15
ICRyZXN1bHQ7CiAKLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewot
ICAgICAgICAgICAgaWYgKCRkYXRhQXZhaWxhYmxlIGVxIDApIHsKLSAgICAgICAgICAgICAgICAk
ZGF0YUF2YWlsYWJsZSA9IDE7ICMgU3RhcnQgbm9kZSBidWlsZGluZy4uLgotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOwotICAg
ICAgICAgICAgfQorICAgICAgICBpZiAoJGJhY2t3YXJkQ29tcGF0aWJsZU1vZGUpIHsKKyAgICAg
ICAgICAgICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9uc09sZCgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7
CiAgICAgICAgIH0KKyAgICAgICAgcHVzaChAZGVmaW5pdGlvbnMsIEB7JHJlc3VsdH0pOwogCi0g
ICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRhdGEgc3RyZWFtIG1vZGUuLi4KLSAgICAgICAgaWYg
KCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgJHBhcnNlTW9kZSA9
ICRuZXdQYXJzZU1vZGU7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSAhPSBFbXB0eVRva2VuKSB7CisgICAgICAgICAgICBk
aWUgIkV4cGVjdCBFT0YsIGJ1dCBmb3VuZCAiIC4gJG5leHQtPnZhbHVlKCk7CiAgICAgICAgIH0K
KyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsKIAotICAgICAgICBw
dXNoKEB0ZW1wb3JhcnlDb250ZW50LCAkXyk7Ci0gICAgfQorICAgIGRpZSAiTm8gZG9jdW1lbnQg
Zm91bmQiIHVubGVzcyBsZW5ndGgoQGRlZmluaXRpb25zKSA+IDA7CiAKLSAgICAjIENoZWNrIGlm
IHRoZXJlIGlzIGFueXRoaW5nIHJlbWFpbmluZyB0byBwYXJzZS4uLgotICAgIGlmICgoJHBhcnNl
TW9kZSBuZSBNT0RFX1VOREVGKSBhbmQgKCQjdGVtcG9yYXJ5Q29udGVudCA+IDApKSB7Ci0gICAg
ICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7Ci0gICAgfQorICAgIG15ICRkb2N1bWVudCA9
ICRkZWZpbml0aW9uc1swXTsKKyAgICBkaWUgIk5vIGRvY3VtZW50IGZvdW5kIiB1bmxlc3MgcmVm
KCRkb2N1bWVudCkgZXEgImlkbERvY3VtZW50IjsKIAogICAgIHByaW50ICIgfCAqKiogRmluaXNo
ZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1aWV0OwotIAotICAgICRkb2N1bWVudC0+ZmlsZU5h
bWUoJGZpbGVOYW1lKTsKIAorICAgICRkb2N1bWVudC0+ZmlsZU5hbWUoJGZpbGVOYW1lKTsKICAg
ICByZXR1cm4gJGRvY3VtZW50OwogfQogCi1zdWIgUGFyc2VNb2R1bGUKK3N1YiBuZXh0VG9rZW4K
IHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYtPntOZXh0VG9rZW59OworfQor
CitzdWIgZ2V0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgICRzZWxmLT57VG9r
ZW59ID0gJHNlbGYtPntOZXh0VG9rZW59OworICAgICRzZWxmLT57TmV4dFRva2VufSA9ICRzZWxm
LT5nZXRUb2tlbkludGVybmFsKCk7CisgICAgcmV0dXJuICRzZWxmLT57VG9rZW59OworfQorCitz
dWIgZ2V0VG9rZW5JbnRlcm5hbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBpZiAo
JHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IG0vXltcdFxuXHIgXSpbXG5ccl0vKSB7CisgICAg
ICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzL15bXHRcblxyIF0qW1xuXHJdLy9nOwor
ICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gbS9eKFteXG5ccl0rKS87CisgICAg
ICAgICMgTGluZSBpcyB1c2VkIGZvciBlcnJvciBvdXRwdXQuCisgICAgICAgIGlmIChkZWZpbmVk
KCQxKSkgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICQxOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICIiOworICAgICAgICB9CisgICAgfQorICAg
ICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzL14oW1x0XG5cciBdKykvL2c7CisgICAgaWYg
KGxlbmd0aCgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0pIDw9IDApIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQorCisgICAgbXkgJHRva2VuID0gVG9rZW4tPm5l
dygpOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gbS9eKC0/KChbMC05XStc
LlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsrLV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/
WzAtOV0rKSkvKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAgICAg
JHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBz
L14oLT8oKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWystXT9bMC05XSspP3xb
MC05XStbRWVdWystXT9bMC05XSspKS8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0K
KyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IG0vXigtP1sxLTldWzAtOV0qfC0/
MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKS8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKElu
dGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+
e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKC0/WzEtOV1bMC05XSp8LT8wW1h4XVswLTlBLUZhLWZd
K3wtPzBbMC03XSopLy87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gbS9eKFwiW15cIl0qXCIpLykgeworICAgICAgICAk
dG9rZW4tPnR5cGUoU3RyaW5nVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAg
ICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvXihcIlteXCJdKlwiKS8vOworICAg
ICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IG0vXihbQS1aX2Etel1bMC05QS1aX2Etel0qKS8pIHsKKyAgICAgICAgJHRva2VuLT50
eXBlKElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAg
ICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKFtBLVpfYS16XVswLTlBLVpfYS16XSop
Ly87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2VsZi0+e0RvY3Vt
ZW50Q29udGVudH0gPX4gbS9eKDo6fFwuXC5cLnxbXlx0XG5cciAwLTlBLVpfYS16XSkvKSB7Cisg
ICAgICAgICR0b2tlbi0+dHlwZShPdGhlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgk
MSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzL14oOjp8XC5cLlwufFte
XHRcblxyIDAtOUEtWl9hLXpdKS8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAg
ICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitz
dWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGRl
ZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoVHJ1ZSkgeworICAgICAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRpY3Rpb25hcnl8dHlwZWRlZnxt
b2R1bGV8XDpcOnxcW3xpbnRlcmZhY2V8ZXhjZXB0aW9ufHBhcnRpYWwpJC8pKSB7CisgICAgICAg
ICAgICBwdXNoKEBkZWZpbml0aW9ucywgJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuXEBkZWZpbml0aW9uczsKK30KKworc3ViIHBhcnNlRGVmaW5pdGlvbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKHBhcnRpYWwpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZVBhcnRpYWxJbnRlcmZhY2UoKTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXx0eXBl
ZGVmfGNhbGxlcnxieXRlfERPTVN0cmluZ3xzaG9ydHxpbnR8ZXhjZXB0aW9ufG9taXR0YWJsZXxm
bG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRvbmx5fGRlbGV0ZXJ8ZGljdGlvbmFyeXxcOlw6fHVu
c2lnbmVkfG9wdGlvbmFsfHNldHRlcnxpbnRlcmZhY2V8c2VxdWVuY2V8c3RyaW5naWZpZXJ8bW9k
dWxlfHZvaWR8Z2V0dGVyfG9jdGV0fGxvbmd8XFt8Y29uc3R8Ym9vbGVhbnxpbnxEYXRlfGNyZWF0
b3J8YW55fG9iamVjdCkkLykpIHsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlTm9ybWFsRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUg
YXBwbHlpbmcgdGhlIHJ1bGU6IERlZmluaXRpb24gLT4gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IE5v
cm1hbERlZmluaXRpb258UGFydGlhbEludGVyZmFjZSBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30K
Kworc3ViIHBhcnNlTm9ybWFsRGVmaW5pdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKG1vZHVsZSkk
LykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oaW50ZXJmYWNlKSQv
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkaWN0aW9uYXJ5
KSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oZXhjZXB0
aW9uKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXih0eXBl
ZGVmKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlZGVmKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXDpcOikkLykpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkg
LiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBOb3JtYWxEZWZpbml0aW9uIC0+IE1vZHVsZXxJ
bnRlcmZhY2V8RGljdGlvbmFyeXxFeGNlcHRpb258VHlwZWRlZnxJbXBsZW1lbnRzU3RhdGVtZW50
IGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitzdWIgcGFyc2VNb2R1bGUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKyAg
ICBteSAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKIAogICAgIHByaW50ICIgfC0gVHJ5
aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7CiAKLSAgICBteSAkZGF0
YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLSAgICAkZGF0YSA9fiAvJElETFN0cnVj
dHVyZTo6bW9kdWxlU2VsZWN0b3IvOworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYt
PmdldFRva2VuKCksICJtb2R1bGUiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogTW9kdWxlIC0+
IFwibW9kdWxlXCJeXl5eIGlkZW50aWZpZXIgXCJce1wiIERlZmluaXRpb25zIFwiXH1cIiBPcHRp
b25hbFNlbWljb2xvbiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CiAKLSAg
ICBteSAkbW9kdWxlTmFtZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJzaW5nIGVycm9y
IVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgJGRhdGFOb2RlLT5tb2R1bGUoJG1vZHVsZU5h
bWUpOworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIHNob3VsZFRva2Vu
VHlwZUVxdWFscygkdG9rZW4sIElkZW50aWZpZXJUb2tlbiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1
bGU6IE1vZHVsZSAtPiBcIm1vZHVsZVwiIGlkZW50aWZpZXJeXl5eIFwiXHtcIiBEZWZpbml0aW9u
cyBcIlx9XCIgT3B0aW9uYWxTZW1pY29sb24gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAu
ICJcIiIpOworICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CiAKLSAgICBw
cmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwiJG1vZHVsZU5hbWVcIlxuIHwtXG4gfFxuIiB1
bmxlc3MgJGJlUXVpZXQ7CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9r
ZW4oKSwgInsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogTW9kdWxlIC0+IFwibW9kdWxlXCIg
aWRlbnRpZmllciBcIlx7XCJeXl5eIERlZmluaXRpb25zIFwiXH1cIiBPcHRpb25hbFNlbWljb2xv
biBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgbXkgJGRlZmluaXRp
b25zID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICBwdXNoKEB7JGRvY3VtZW50LT5j
bGFzc2VzfSwgQHskZGVmaW5pdGlvbnN9KTsKKyAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRz
ZWxmLT5nZXRUb2tlbigpLCAifSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBNb2R1bGUgLT4g
XCJtb2R1bGVcIiBpZGVudGlmaWVyIFwiXHtcIiBEZWZpbml0aW9ucyBcIlx9XCJeXl5eIE9wdGlv
bmFsU2VtaWNvbG9uIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAk
c2VsZi0+cGFyc2VPcHRpb25hbFNlbWljb2xvbigpOworCisgICAgcHJpbnQgIiAgfC0tLS0+IE1v
ZHVsZTsgTkFNRSBcIiIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiXCJcbiB8LVxuIHxcbiIgdW5sZXNz
ICRiZVF1aWV0OworCisgICAgcmV0dXJuICRkb2N1bWVudDsKIH0KIAotc3ViIGR1bXBFeHRlbmRl
ZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZUludGVyZmFjZQogewotICAgIG15ICRwYWRTdHIgPSBzaGlm
dDsKLSAgICBteSAkYXR0cnMgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIGlmICghJXskYXR0cnN9KSB7
Ci0gICAgICAgIHJldHVybiAiIjsKKyAgICBpZiAoJGJhY2t3YXJkQ29tcGF0aWJsZU1vZGUpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZU9sZCgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VOZXcoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CiAgICAgfQorfQogCi0gICAgbXkgQHRlbXA7Ci0gICAgd2hpbGUgKChteSAkbmFt
ZSwgbXkgJHZhbHVlKSA9IGVhY2goJXskYXR0cnN9KSkgewotICAgICAgICBwdXNoKEB0ZW1wLCAi
JG5hbWU9JHZhbHVlIik7CitzdWIgcGFyc2VJbnRlcmZhY2VOZXcKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworCisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFs
cygkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxl
OiBJbnRlcmZhY2UgLT4gXCJpbnRlcmZhY2VcIl5eXl4gaWRlbnRpZmllciBJbmhlcml0YW5jZSBc
Ilx7XCIgSW50ZXJmYWNlTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxm
LT57TGluZX0gLiAiXCIiKTsKKworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwor
ICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICRkYXRhTm9kZS0+aXNF
eGNlcHRpb24oMCk7CisKKyAgICBzaG91bGRUb2tlblR5cGVFcXVhbHMoJHRva2VuLCBJZGVudGlm
aWVyVG9rZW4sICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBJbnRlcmZhY2UgLT4gXCJpbnRlcmZh
Y2VcIiBpZGVudGlmaWVyXl5eXiBJbmhlcml0YW5jZSBcIlx7XCIgSW50ZXJmYWNlTWVtYmVycyBc
Ilx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKworICAg
IHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9
KTsKKworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJ7Iiwg
IndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEludGVyZmFjZSAtPiBcImludGVyZmFjZVwiIGlkZW50
aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiXl5eXiBJbnRlcmZhY2VNZW1iZXJzIFwiXH1cIiBcIlw7
XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworCisgICAgbXkgJGludGVy
ZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgc2hvdWxk
VG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCAid2hpbGUgcGFyc2luZyB0
aGUgcnVsZTogSW50ZXJmYWNlIC0+IFwiaW50ZXJmYWNlXCIgaWRlbnRpZmllciBJbmhlcml0YW5j
ZSBcIlx7XCIgSW50ZXJmYWNlTWVtYmVycyBcIlx9XCJeXl5eIFwiXDtcIiBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogSW50ZXJmYWNlIC0+
IFwiaW50ZXJmYWNlXCIgaWRlbnRpZmllciBJbmhlcml0YW5jZSBcIlx7XCIgSW50ZXJmYWNlTWVt
YmVycyBcIlx9XCIgXCJcO1wiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwi
Iik7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JGludGVyZmFjZU1lbWJlcnN9KSB7CisgICAgICAg
IGlmIChyZWYoJGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUiKSB7CisgICAgICAgICAgICBwdXNoKEB7
JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAg
ICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQ29uc3RhbnQiKSB7CisgICAgICAg
ICAgICBwdXNoKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9LCAkaXRlbSk7CisgICAgICAgICAgICBu
ZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21GdW5jdGlvbiIp
IHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpdGVtKTsKKyAg
ICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAu
ICJbIiAuIGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0dXJuICRk
YXRhTm9kZTsKIH0KIAotc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCitzdWIgcGFyc2VQYXJ0
aWFsSW50ZXJmYWNlCiB7Ci0gICAgbXkgJHN0ciA9IHNoaWZ0OwotICAgICRzdHIgPX4gcy9cW1xz
KiguKilccypcXS8kMS9nOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHBhcnRpYWwp
JC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHNob3VsZFRva2VuVmFs
dWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCAid2hpbGUgcGFyc2luZyB0
aGUgcnVsZTogUGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBcImludGVyZmFjZVwiXl5e
XiBpZGVudGlmaWVyIFwiXHtcIiBJbnRlcmZhY2VNZW1iZXJzIFwiXH1cIiBcIlw7XCIgYXQgbGlu
ZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICBzaG91bGRUb2tlblR5cGVF
cXVhbHMoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbiwgIndoaWxlIHBhcnNpbmcg
dGhlIHJ1bGU6IFBhcnRpYWxJbnRlcmZhY2UgLT4gXCJwYXJ0aWFsXCIgXCJpbnRlcmZhY2VcIiBp
ZGVudGlmaWVyXl5eXiBcIlx7XCIgSW50ZXJmYWNlTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxp
bmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1
ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTog
UGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBcImludGVyZmFjZVwiIGlkZW50aWZpZXIg
XCJce1wiXl5eXiBJbnRlcmZhY2VNZW1iZXJzIFwiXH1cIiBcIlw7XCIgYXQgbGluZTogXCIiIC4g
JHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1i
ZXJzKCk7CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IFBhcnRpYWxJbnRlcmZhY2UgLT4gXCJwYXJ0
aWFsXCIgXCJpbnRlcmZhY2VcIiBpZGVudGlmaWVyIFwiXHtcIiBJbnRlcmZhY2VNZW1iZXJzIFwi
XH1cIl5eXl4gXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAg
ICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hp
bGUgcGFyc2luZyB0aGUgcnVsZTogUGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBcImlu
dGVyZmFjZVwiIGlkZW50aWZpZXIgXCJce1wiIEludGVyZmFjZU1lbWJlcnMgXCJcfVwiIFwiXDtc
Il5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkg
LiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBQYXJ0aWFsSW50ZXJmYWNlIC0+IFwicGFydGlh
bFwiIFwiaW50ZXJmYWNlXCIgaWRlbnRpZmllciBcIntcIiBJbnRlcmZhY2VNZW1iZXJzIFwifVwi
IFwiO1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgbXkgJWF0dHJzID0gKCk7Citz
dWIgcGFyc2VJbmhlcml0YW5jZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFw6
KSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlU2NvcGVkTmFtZUxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQogCi0gICAg
d2hpbGUgKCRzdHIgIX4gL15ccyokLykgewotICAgICAgICAjIFBhcnNlIG5hbWUKLSAgICAgICAg
aWYgKCRzdHIgIX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICBkaWUoIkludmFsaWQg
ZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICB9Ci0gICAgICAgIG15ICRu
YW1lID0gJDE7Ci0gICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87Ci0KLSAgICAgICAg
aWYgKCRzdHIgPX4gL15ccyo9LykgewotICAgICAgICAgICAgJHN0ciA9fiBzL15ccyo9Ly87Ci0g
ICAgICAgICAgICBpZiAoJG5hbWUgZXEgIk5hbWVkQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAg
ICAgICAgIyBQYXJzZSAnPScgbmFtZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAg
ICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZTsKLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAv
XlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGNvbnN0cnVjdG9yTmFtZSA9
ICQxOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwotICAg
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBl
eHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAgICAgICAgICAgICMg
UGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+
IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eKFteKV0qKVwp
LD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkc2lnbmF0dXJlID0gJDE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAkc2lnbmF0dXJlID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rvck5hbWUiID0+
ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+ICRzaWduYXR1cmV9OwotICAgICAgICAg
ICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8vOwotICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICAgICAg
ICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29uc3RydWN0b3JOYW1l
LCAiU2lnbmF0dXJlIiA9PiAiIn07Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMq
LD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUo
IkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIyBQYXJzZSAnPScgdmFs
dWUgJywnPwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqKFteLF0qKSw/Lykgewot
ICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAgICAgICAgICAgICAg
ICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyokLyQxLzsKLSAgICAgICAgICAgICAgICAg
ICAgJHN0ciA9fiBzL15ccyooW14sXSopLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0
cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNp
ZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgIyBQYXJzZSAnKCcgYXJndW1lbnRz
ICcpJyAnLCc/Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICBp
ZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8k
MS87Ci0gICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8vOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmli
dXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgkc3RyID1+
IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcnIHwgJywnCi0gICAgICAgICAgICBp
ZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSAiIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRu
YW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlcnMKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBpbnRlcmZhY2VNZW1iZXJzID0gKCk7CisK
KyAgICB3aGlsZSAoVHJ1ZSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXx0eXBlZGVmfGNhbGxlcnxieXRlfERPTVN0cmluZ3xz
aG9ydHxpbnR8ZXhjZXB0aW9ufG9taXR0YWJsZXxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRv
bmx5fGRlbGV0ZXJ8ZGljdGlvbmFyeXxcOlw6fHVuc2lnbmVkfG9wdGlvbmFsfHNldHRlcnxpbnRl
cmZhY2V8c2VxdWVuY2V8c3RyaW5naWZpZXJ8bW9kdWxlfHZvaWR8Z2V0dGVyfG9jdGV0fGxvbmd8
XFt8Y29uc3R8Ym9vbGVhbnxpbnxEYXRlfGNyZWF0b3J8YW55fG9iamVjdCkkLykpIHsKKyAgICAg
ICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+
cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAg
ICBpZiAoZGVmaW5lZCAkaW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAgICAgICAgICAgcHVzaChA
aW50ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOworICAgICAgICAg
ICAgbGFzdDsKICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gXEBpbnRlcmZhY2VNZW1iZXJz
OworfQogCi0gICAgcmV0dXJuIFwlYXR0cnM7CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvXihjb25zdCkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
Q29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8
c3RyaW5naWZpZXJ8Y2FsbGVyfGJ5dGV8dm9pZHxnZXR0ZXJ8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8
c2hvcnR8aW50fG9taXR0YWJsZXxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRvbmx5fGRlbGV0
ZXJ8Ym9vbGVhbnxcOlw6fHVuc2lnbmVkfHNldHRlcnxEYXRlfGNyZWF0b3J8YW55fG9iamVjdHxz
ZXF1ZW5jZSkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0
ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTog
SW50ZXJmYWNlTWVtYmVyIC0+IENvbnN0fEF0dHJpYnV0ZU9yT3BlcmF0aW9uIGF0ICIgLiAkc2Vs
Zi0+e0xpbmV9OwogfQogCi1zdWIgcGFyc2VQYXJhbWV0ZXJzCitzdWIgcGFyc2VEaWN0aW9uYXJ5
CiB7Ci0gICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVy
ZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgaWYgKCRiYWNrd2FyZENvbXBhdGlibGVNb2RlKSB7Cisg
ICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlPbGQoKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TmV3KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRzIGF0IGNvbW1hcyBidXQgb25seSBpZiB0aGUg
Y29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0cmlidXRlIGJyYWNrZXRzLCBleHByZXNzZWQg
aGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQgYnkgYSAnXScgd2l0aG91dCBhIHByZWNlZGlu
ZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVzIHRoYXQgYXR0cmlidXRlcyBkb24n
dCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/IVteW10qXF0pLywgJG1ldGhvZFNp
Z25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFtcykgewotICAgICAgICBteSAkbGluZSA9ICRf
Oworc3ViIHBhcnNlRGljdGlvbmFyeU5ldworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRpY3Rpb25hcnkp
JC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHNob3VsZFRva2VuVHlw
ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2lu
ZyB0aGUgcnVsZTogRGljdGlvbmFyeSAtPiBcImRpY3Rpb25hcnlcIiBpZGVudGlmaWVyXl5eXiBJ
bmhlcml0YW5jZSBcIlx7XCIgRGljdGlvbmFyeU1lbWJlcnMgXCJcfVwiIFwiXDtcIiBhdCBsaW5l
OiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVy
aXRhbmNlKCk7CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2Vu
KCksICJ7IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IERpY3Rpb25hcnkgLT4gXCJkaWN0aW9u
YXJ5XCIgaWRlbnRpZmllciBJbmhlcml0YW5jZSBcIlx7XCJeXl5eIERpY3Rpb25hcnlNZW1iZXJz
IFwiXH1cIiBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygpOworICAgICAgICBzaG91bGRUb2tl
blZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBy
dWxlOiBEaWN0aW9uYXJ5IC0+IFwiZGljdGlvbmFyeVwiIGlkZW50aWZpZXIgSW5oZXJpdGFuY2Ug
XCJce1wiIERpY3Rpb25hcnlNZW1iZXJzIFwiXH1cIl5eXl4gXCJcO1wiIGF0IGxpbmU6IFwiIiAu
ICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygk
c2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogRGljdGlvbmFy
eSAtPiBcImRpY3Rpb25hcnlcIiBpZGVudGlmaWVyIEluaGVyaXRhbmNlIFwiXHtcIiBEaWN0aW9u
YXJ5TWVtYmVycyBcIlx9XCIgXCJcO1wiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9
IC4gIlwiIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRv
a2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IERpY3Rp
b25hcnkgLT4gXCJkaWN0aW9uYXJ5XCIgaWRlbnRpZmllciBJbmhlcml0YW5jZSBcIntcIiBEaWN0
aW9uYXJ5TWVtYmVycyBcIn1cIiBcIjtcIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAg
ICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2VsZWN0b3Iv
OwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAgICAgbXkgJHBhcmFtRXh0
ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRwYXJhbUV4
dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUgPSAoZGVmaW5lZCgkMykg
PyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAg
ICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6ICIiOwotICAgICAgICBt
eSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5T
b3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJzCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWVtYmVycyA9ICgpOworCisgICAgd2hpbGUgKFRy
dWUpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlm
ICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihkb3VibGV8dHlwZWRlZnxjYWxsZXJ8Ynl0ZXxET01TdHJpbmd8c2hvcnR8aW50fGV4Y2Vw
dGlvbnxvbWl0dGFibGV8ZmxvYXR8YXR0cmlidXRlfHN0YXRpY3xyZWFkb25seXxkZWxldGVyfGRp
Y3Rpb25hcnl8XDpcOnx1bnNpZ25lZHxvcHRpb25hbHxzZXR0ZXJ8aW50ZXJmYWNlfHNlcXVlbmNl
fHN0cmluZ2lmaWVyfG1vZHVsZXx2b2lkfGdldHRlcnxvY3RldHxsb25nfFxbfGNvbnN0fGJvb2xl
YW58aW58RGF0ZXxjcmVhdG9yfGFueXxvYmplY3QpJC8pKSB7CisgICAgICAgICAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7
CisgICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVy
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30KIAotICAg
ICAgICBteSAkaXNOdWxsYWJsZSA9ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNl
RGljdGlvbmFyeU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxvYmplY3R8Ym9vbGVhbnxieXRlfFw6XDp8dW5zaWdu
ZWR8b2N0ZXR8YW55fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxEYXRlfGZsb2F0fHNlcXVlbmNl
KSQvKSkgeworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgIHNob3VsZFRva2Vu
VHlwZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFy
c2luZyB0aGUgcnVsZTogRGljdGlvbmFyeU1lbWJlciAtPiBUeXBlIGlkZW50aWZpZXJeXl5eIERl
ZmF1bHRWYWx1ZSBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VEZWZhdWx0VmFsdWUoKTsKKyAgICAgICAgc2hvdWxkVG9rZW5W
YWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVs
ZTogRGljdGlvbmFyeU1lbWJlciAtPiBUeXBlIGlkZW50aWZpZXIgRGVmYXVsdFZhbHVlIFwiXDtc
Il5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkg
LiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBEaWN0aW9uYXJ5TWVtYmVyIC0+IFR5cGUgaWRl
bnRpZmllciBEZWZhdWx0VmFsdWUgXCI7XCIgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CiAKLSAg
ICAgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRw
YXJhbURhdGFOb2RlLT5kaXJlY3Rpb24oJHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPm5hbWUoJHBhcmFtTmFtZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBl
KCRwYXJhbVR5cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAg
ICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VE
ZWZhdWx0VmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcPSkkLykgewor
ICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlQ29uc3RFeHBy
KCk7CisgICAgfQorICAgIHJldHVybjsKK30KIAotICAgICAgICBteSAkYXJyYXlSZWYgPSAkbmV3
RGF0YU5vZGUtPnBhcmFtZXRlcnM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJlZiwgJHBhcmFtRGF0
YU5vZGUpOworc3ViIHBhcnNlRXhjZXB0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgcHJpbnQgIiAg
fCAgIHw+ICBQYXJhbTsgVFlQRSBcIiRwYXJhbVR5cGVcIiBOQU1FIFwiJHBhcmFtTmFtZVwiIiAu
IAotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAg
ICIsICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJl
UXVpZXQ7ICAgICAgICAgIAorICAgIGlmICgkYmFja3dhcmRDb21wYXRpYmxlTW9kZSkgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uT2xkKCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk5ldygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKICAgICB9CiB9CiAKLXN1YiBQYXJzZUludGVyZmFjZQorc3ViIHBhcnNlRXhjZXB0aW9u
TmV3CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0
OwotICAgIG15ICRzZWN0aW9uTmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRhdGEgPSBqb2luKCIi
LCBAdGVtcG9yYXJ5Q29udGVudCk7Ci0KLSAgICAjIExvb2sgZm9yIGVuZC1vZi1pbnRlcmZhY2Ug
bWFyawotICAgICRkYXRhID1+IC99Oy9nOwotICAgICRkYXRhID0gc3Vic3RyKCRkYXRhLCBpbmRl
eCgkZGF0YSwgJHNlY3Rpb25OYW1lKSwgcG9zKCRkYXRhKSAtIGxlbmd0aCgkZGF0YSkpOwotCi0g
ICAgJGRhdGEgPX4gcy9bXG5ccl0vIC9nOwotCi0gICAgIyBCZWdpbm5pbmcgb2YgdGhlIHJlZ2V4
cCBwYXJzaW5nIG1hZ2ljCi0gICAgaWYgKCRzZWN0aW9uTmFtZSBlcSAiaW50ZXJmYWNlIiB8fCAk
c2VjdGlvbk5hbWUgZXEgImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgcHJpbnQgIiB8LSBUcnlpbmcg
dG8gcGFyc2UgaW50ZXJmYWNlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKLQotICAgICAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICIiOwotICAgICAgICBteSAkaW50ZXJmYWNlRGF0YSA9ICIiOwotCi0g
ICAgICAgICMgTWF0Y2ggaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQgZW5jbG9zZWQg
ZGF0YS4uLgotICAgICAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlU2VsZWN0
b3IvOwotCi0gICAgICAgIG15ICRpc0V4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICgkMSBlcSAn
ZXhjZXB0aW9uJykgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsK
LSAgICAgICAgbXkgJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQyKSA/
ICQyIDogIiAiKTsgY2hvcCgkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAg
JGludGVyZmFjZU5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFc
blNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlQmFzZSA9IChkZWZp
bmVkKCQ0KSA/ICQ0IDogIiIpOwotICAgICAgICAkaW50ZXJmYWNlRGF0YSA9IChkZWZpbmVkKCQ1
KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0KLSAg
ICAgICAgIyBGaWxsIGluIGtub3duIHBhcnRzIG9mIHRoZSBkb21DbGFzcyBkYXRhc3RydWN0dXJl
IG5vdy4uLgotICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKCRpc0V4Y2VwdGlvbik7Ci0g
ICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZXMgPSBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkaW50ZXJmYWNlRXh0ZW5k
ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9t
RnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21T
aWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgi
Q29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBh
cmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9y
In0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9ID0g
IlZBTFVFX0lTX01JU1NJTkciOwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3Rvcigk
bmV3RGF0YU5vZGUpOwotICAgICAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0
ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUg
PSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
KG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAg
ICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTmFtZWRDb25zdHJ1Y3RvciJ9LT57IlNpZ25hdHVyZSJ9KTsKLSAgICAgICAgICAgICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGV4dGVuZGVkQXR0cmlidXRl
cy0+eyJOYW1lZENvbnN0cnVjdG9yIn17IkNvbnN0cnVjdG9yTmFtZSJ9OwotICAgICAgICAgICAg
JGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJGRh
dGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisKKyAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRz
ZWxmLT5nZXRUb2tlbigpLCAiZXhjZXB0aW9uIiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEV4
Y2VwdGlvbiAtPiBcImV4Y2VwdGlvblwiXl5eXiBpZGVudGlmaWVyIEluaGVyaXRhbmNlIFwiXHtc
IiBFeGNlcHRpb25NZW1iZXJzIFwiXH1cIiBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntM
aW5lfSAuICJcIiIpOworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisKKyAg
ICBzaG91bGRUb2tlblR5cGVFcXVhbHMoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4sICJ3aGlsZSBw
YXJzaW5nIHRoZSBydWxlOiBFeGNlcHRpb24gLT4gXCJleGNlcHRpb25cIiBpZGVudGlmaWVyXl5e
XiBJbmhlcml0YW5jZSBcIlx7XCIgRXhjZXB0aW9uTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxp
bmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKworICAgICRkYXRhTm9kZS0+bmFtZSgk
dG9rZW4tPnZhbHVlKCkpOworICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgcHVz
aChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOwor
CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCAid2hp
bGUgcGFyc2luZyB0aGUgcnVsZTogRXhjZXB0aW9uIC0+IFwiZXhjZXB0aW9uXCIgaWRlbnRpZmll
ciBJbmhlcml0YW5jZSBcIlx7XCJeXl5eIEV4Y2VwdGlvbk1lbWJlcnMgXCJcfVwiIFwiXDtcIiBh
dCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisKKyAgICBteSAkZXhjZXB0aW9u
TWVtYmVyczsKKyAgICBpZiAoJGV4Y2VwdGlvbklzVGhlU2FtZUFzSW50ZXJmYWNlKSB7CisgICAg
ICAgICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlRXhj
ZXB0aW9uTWVtYmVycygpOworICAgIH0KKworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNl
bGYtPmdldFRva2VuKCksICJ9IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlvbiAt
PiBcImV4Y2VwdGlvblwiIGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiIEV4Y2VwdGlvbk1l
bWJlcnMgXCJcfVwiXl5eXiBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJc
IiIpOworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICI7Iiwg
IndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlvbiAtPiBcImV4Y2VwdGlvblwiIGlkZW50
aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiIEV4Y2VwdGlvbk1lbWJlcnMgXCJcfVwiIFwiXDtcIl5e
Xl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworCisgICAgZm9yIG15ICRp
dGVtIChAeyRleGNlcHRpb25NZW1iZXJzfSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tQXR0cmlidXRlIikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRl
c30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CiAgICAgICAgIH0KLSAgICAgICAgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7CisgICAgICAgIGlm
IChyZWYoJGl0ZW0pIGVxICJkb21Db25zdGFudCIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0
YU5vZGUtPmNvbnN0YW50c30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUZ1bmN0aW9uIikgeworICAgICAgICAgICAg
cHVzaChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsK
KyAgICAgICAgfQorICAgIH0KIAotICAgICAgICAjIEluaGVyaXRhbmNlIGRldGVjdGlvbgotICAg
ICAgICBteSBAaW50ZXJmYWNlUGFyZW50cyA9IHNwbGl0KC8sLywgJGludGVyZmFjZUJhc2UpOwot
ICAgICAgICBmb3JlYWNoKEBpbnRlcmZhY2VQYXJlbnRzKSB7Ci0gICAgICAgICAgICBteSAkbGlu
ZSA9ICRfOwotICAgICAgICAgICAgJGxpbmUgPX4gcy9ccyovL2c7CisgICAgYXBwbHlFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICBy
ZXR1cm4gJGRhdGFOb2RlOworfQogCi0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5v
ZGUtPnBhcmVudHM7Ci0gICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKK3N1YiBw
YXJzZUV4Y2VwdGlvbk1lbWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBt
ZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoVHJ1ZSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXx0eXBlZGVmfGNhbGxlcnxi
eXRlfERPTVN0cmluZ3xzaG9ydHxpbnR8ZXhjZXB0aW9ufG9taXR0YWJsZXxmbG9hdHxhdHRyaWJ1
dGV8c3RhdGljfHJlYWRvbmx5fGRlbGV0ZXJ8ZGljdGlvbmFyeXxcOlw6fHVuc2lnbmVkfG9wdGlv
bmFsfHNldHRlcnxpbnRlcmZhY2V8c2VxdWVuY2V8c3RyaW5naWZpZXJ8bW9kdWxlfHZvaWR8Z2V0
dGVyfG9jdGV0fGxvbmd8XFt8Y29uc3R8Ym9vbGVhbnxpbnxEYXRlfGNyZWF0b3J8YW55fG9iamVj
dCkkLykpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgIHB1c2goQG1lbWJlcnMs
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBcQG1lbWJlcnM7Cit9CisKK3N1YiBwYXJzZVR5cGVkZWYKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvXih0eXBlZGVmKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgIHNob3VsZFRva2VuVHlw
ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2lu
ZyB0aGUgcnVsZTogVHlwZWRlZiAtPiBcInR5cGVkZWZcIiBUeXBlIGlkZW50aWZpZXJeXl5eIFwi
XDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHNob3Vs
ZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICI7IiwgIndoaWxlIHBhcnNpbmcg
dGhlIHJ1bGU6IFR5cGVkZWYgLT4gXCJ0eXBlZGVmXCIgVHlwZSBpZGVudGlmaWVyIFwiXDtcIl5e
Xl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAi
IHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBUeXBlZGVmIC0+IFwidHlwZWRlZlwiIFR5cGUgaWRl
bnRpZmllciBcIjtcIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgICAgICByZXR1cm4g
aWYgJHBhcmVudHNPbmx5Oworc3ViIHBhcnNlSW1wbGVtZW50c1N0YXRlbWVudAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKFw6XDopJC8pKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAg
ICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgImltcGxlbWVu
dHMiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogSW1wbGVtZW50c1N0YXRlbWVudCAtPiBTY29w
ZWROYW1lIFwiaW1wbGVtZW50c1wiXl5eXiBTY29wZWROYW1lIFwiXDtcIiBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUo
KTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
LCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogSW1wbGVtZW50c1N0YXRlbWVudCAtPiBTY29wZWRO
YW1lIFwiaW1wbGVtZW50c1wiIFNjb3BlZE5hbWUgXCJcO1wiXl5eXiBhdCBsaW5lOiBcIiIgLiAk
c2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGllICJV
bmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhl
IHJ1bGU6IEltcGxlbWVudHNTdGF0ZW1lbnQgLT4gU2NvcGVkTmFtZSBcImltcGxlbWVudHNcIiBT
Y29wZWROYW1lIFwiO1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgICAgICRpbnRl
cmZhY2VEYXRhID1+IHMvW1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMg
PSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKK3N1YiBwYXJzZUNvbnN0Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAK
LSAgICAgICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAgICAg
ICAgIG5leHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgkbGluZSA9fiAv
XFdhdHRyaWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVy
ZTo6aW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXdEYXRhTm9kZSA9IG5l
dyBkb21Db25zdGFudCgpOwogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAo
ZGVmaW5lZCgkMSkgPyAkMSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRl
cyk7CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgImNvbnN0
IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IENvbnN0IC0+IFwiY29uc3RcIl5eXl4gQ29uc3RU
eXBlIGlkZW50aWZpZXIgXCJcPVwiIENvbnN0RXhwciBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNl
bGYtPntMaW5lfSAuICJcIiIpOwogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFU
eXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVm
aW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OwotICAKLSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVl
ZGVkIGZvciByZWdleHAgbWF0Y2hpbmcKKyAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJHNlbGYtPnBh
cnNlQ29uc3RUeXBlKCkpOwogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1
cmU6OmdldHRlclJhaXNlc1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkZ2V0dGVyRXhj
ZXB0aW9uID0gKGRlZmluZWQoJDEpID8gJDEgOiAiIik7CisgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgc2hvdWxkVG9rZW5UeXBlRXF1YWxzKCR0b2tlbiwgSWRlbnRpZmll
clRva2VuLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogQ29uc3QgLT4gXCJjb25zdFwiIENvbnN0
VHlwZSBpZGVudGlmaWVyXl5eXiBcIlw9XCIgQ29uc3RFeHByIFwiXDtcIiBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElE
TFN0cnVjdHVyZTo6c2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRz
ZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKKyAgICAkbmV3RGF0YU5v
ZGUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRh
Tm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnR5cGUoJGF0dHJpYnV0ZVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygk
c2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogQ29uc3QgLT4g
XCJjb25zdFwiIENvbnN0VHlwZSBpZGVudGlmaWVyIFwiXD1cIl5eXl4gQ29uc3RFeHByIFwiXDtc
IiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgJG5ld0RhdGFOb2Rl
LT52YWx1ZSgkc2VsZi0+cGFyc2VDb25zdEV4cHIoKSk7CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVx
dWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogQ29u
c3QgLT4gXCJjb25zdFwiIENvbnN0VHlwZSBpZGVudGlmaWVyIFwiXD1cIiBDb25zdEV4cHIgXCJc
O1wiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CiAKLSAgICAgICAg
ICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5hbWUp
OwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRyaWJ1
dGVEYXRhVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0ZW5k
ZWRBdHRyaWJ1dGVzKSk7CisgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKK30KIAotICAg
ICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKLSAgICAg
ICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VDb25z
dEV4cHIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihmYWxzZXx0cnVlKSQvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14obnVsbCkkLykgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxm
LT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgeworICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAg
ICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hp
bGUgYXBwbHlpbmcgdGhlIHJ1bGU6IENvbnN0RXhwciAtPiBCb29sZWFuTGl0ZXJhbHxpbnRlZ2Vy
fGZsb2F0fHN0cmluZ3xcIm51bGxcIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgICAg
ICAgICAgICAgIHByaW50ICIgIHwgIHw+ICBBdHRyaWJ1dGU7IFRZUEUgXCIkYXR0cmlidXRlVHlw
ZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwiIERBVEEgVFlQRSBcIiRhdHRyaWJ1
dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRlckV4Y2VwdGlvblwiIFNFVCBFWENF
UFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAgICAgICAgICAgICAgICAgIGR1bXBF
eHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0Owor
c3ViIHBhcnNlQm9vbGVhbkxpdGVyYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
Xih0cnVlKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4g
InRydWUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oZmFsc2UpJC8pIHsK
KyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAiZmFsc2UiOworICAg
IH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGls
ZSBhcHBseWluZyB0aGUgcnVsZTogQm9vbGVhbkxpdGVyYWwgLT4gXCJ0cnVlXCJ8XCJmYWxzZVwi
IGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgICAgICAgICAgICAgJGdldHRlckV4Y2Vw
dGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICAkc2V0dGVyRXhjZXB0aW9uID1+IHMv
XHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25z
fSA9IHNwbGl0KC8sLywgJGdldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgQHskbmV3
RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkc2V0dGVyRXhjZXB0aW9u
KTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRsaW5lICF+IC9eXHMqKCRJRExTdHJ1Y3R1cmU6OmV4
dGVuZGVkQXR0cmlidXRlU3ludGF4ICk/Y29uc3RccysvKSB7Ci0gICAgICAgICAgICAgICAgJGxp
bmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1ldGhvZFNlbGVjdG9yLyBvciBkaWUgIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9w
ZXJhdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4dGVuZGVkQXR0
cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkbWV0aG9kRXh0ZW5kZWRB
dHRyaWJ1dGVzKTsKLSAgICAgICAgICAgICAgICBteSAkaXNTdGF0aWMgPSBkZWZpbmVkKCQyKTsK
LSAgICAgICAgICAgICAgICBteSAkbWV0aG9kVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAg
bXkgJG1ldGhvZE5hbWUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFc
blNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RTaWduYXR1
cmUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIikpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvXihzdHJpbmdpZmllcikkLykgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRl
T3JPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvXihyZWFkb25seXxhdHRyaWJ1dGUpJC8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxET01TdHJpbmd8
bG9uZ3xzaG9ydHxpbnR8b21pdHRhYmxlfGZsb2F0fHN0YXRpY3xkZWxldGVyfG9iamVjdHxib29s
ZWFufFw6XDp8dW5zaWduZWR8c2VxdWVuY2V8c2V0dGVyfERhdGV8Y3JlYXRvcnxhbnkpJC8pKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVl
KCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBBdHRyaWJ1dGVPck9wZXJhdGlvbiAtPiBc
InN0cmluZ2lmaWVyXCIgU3RyaW5naWZpZXJBdHRyaWJ1dGVPck9wZXJhdGlvbnxBdHRyaWJ1dGV8
T3BlcmF0aW9uIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgICAgICAgICAgICAgKCcn
ID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNoaW5nCitz
dWIgcGFyc2VTdHJpbmdpZmllckF0dHJpYnV0ZU9yT3BlcmF0aW9uCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAg
ICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6cmFpc2VzU2VsZWN0b3IvOwotICAg
ICAgICAgICAgICAgIG15ICRtZXRob2RFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIi
KTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgPX4gL14ocmVhZG9ubHl8YXR0cmlidXRlKSQvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VBdHRyaWJ1dGUoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcOykkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGJ5dGV8dm9pZHxv
Y3RldHxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8ZmxvYXR8Ym9vbGVhbnxcOlw6fHVuc2lnbmVk
fHNlcXVlbmNlfERhdGV8YW55fG9iamVjdCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGRp
ZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5n
IHRoZSBydWxlOiBTdHJpbmdpZmllckF0dHJpYnV0ZU9yT3BlcmF0aW9uIC0+IEF0dHJpYnV0ZXxP
cGVyYXRpb25SZXN0fFwiO1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgICAgICAg
ICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CitzdWIgcGFyc2VBdHRy
aWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMo
JGlzU3RhdGljKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcg
ZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT5uYW1lKCRtZXRob2ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+dHlwZSgkbWV0aG9kVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkbWV0
aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CisgICAgaWYgKCRiYWNrd2FyZENvbXBhdGlibGVNb2Rl
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPbGQoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlTmV3KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KK30KIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHwt
ICBNZXRob2Q7IFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQ
VElPTj8gXCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4
dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIg
cGFyc2VBdHRyaWJ1dGVOZXcKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgICRtZXRob2RFeGNl
cHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPnJhaXNl
c0V4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKIAotICAgICAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVy
cygkbmV3RGF0YU5vZGUsICRtZXRob2RTaWduYXR1cmUpOworICAgIG15ICRuZXdEYXRhTm9kZSA9
IG5ldyBkb21BdHRyaWJ1dGUoKTsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRk
YXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5l
d0RhdGFOb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUg
PX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15
ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hv
cCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5
cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykg
PyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAg
ICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICBpZiAoJHNlbGYtPnBhcnNlUmVh
ZE9ubHkoKSkgeworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0
ZSIpOworICAgIH0gZWxzZSB7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRl
Iik7CisgICAgfQorICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCks
ICJhdHRyaWJ1dGUiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogQXR0cmlidXRlIC0+IFJlYWRP
bmx5IFwiYXR0cmlidXRlXCJeXl5eIEF0dHJpYnV0ZVR5cGUgaWRlbnRpZmllciBHZXQgU2V0UmFp
c2VzIFwiXDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisKKyAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKSk7CisgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgc2hvdWxkVG9rZW5UeXBlRXF1YWxz
KCR0b2tlbiwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogQXR0cmli
dXRlIC0+IFJlYWRPbmx5IFwiYXR0cmlidXRlXCIgQXR0cmlidXRlVHlwZSBpZGVudGlmaWVyXl5e
XiBHZXQgU2V0UmFpc2VzIFwiXDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwi
Iik7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsK
KyAgICBteSAkZ2V0UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgaWYgKGRlZmluZWQgJGdl
dFJlZikgeworICAgICAgICBteSAlZ2V0UmVzdWx0ID0gJXskZ2V0UmVmfTsKKyAgICAgICAgcHVz
aChAeyRuZXdEYXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlc3VsdHsiZ2V0cmFp
c2VzIn19KTsKKyAgICB9CisgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9u
c30sIEB7JHNlbGYtPnBhcnNlU2V0UmFpc2VzKCl9KTsKIAotICAgICAgICAgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+bmFtZSgkY29uc3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5
cGUoJGNvbnN0VHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29u
c3RWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Cisg
ICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUg
cGFyc2luZyB0aGUgcnVsZTogQXR0cmlidXRlIC0+IFJlYWRPbmx5IFwiYXR0cmlidXRlXCIgQXR0
cmlidXRlVHlwZSBpZGVudGlmaWVyIEdldCBTZXRSYWlzZXMgXCJcO1wiXl5eXiBhdCBsaW5lOiBc
IiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlS
ZWYgPSAkZGF0YU5vZGUtPmNvbnN0YW50czsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlS
ZWYsICRuZXdEYXRhTm9kZSk7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICByZXR1cm4gJG5ld0RhdGFO
b2RlOworfQogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQ
RSBcIiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVc
IlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KK3N1YiBwYXJz
ZVJlYWRPbmx5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ocmVhZG9ubHkpJC8p
IHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiBUcnVlOworICAg
IH0KKyAgICByZXR1cm4gRmFsc2U7Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfC0tLS0+IEludGVy
ZmFjZTsgTkFNRSBcIiRpbnRlcmZhY2VOYW1lXCIiIC4KLSAgICAgICAgICAgIGR1bXBFeHRlbmRl
ZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcykgLiAiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUdl
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGluaGVyaXRzKSQvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbmhlcml0c0dldHRlcigpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgPX4gL14oZ2V0cmFpc2VzKSQvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VHZXRSYWlzZXMoKTsKICAgICB9CisgICAgcmV0dXJuOwogfQogCi0jIEludGVybmFs
IGhlbHBlcgotc3ViIERldGVybWluZVBhcnNlTW9kZQorc3ViIHBhcnNlSW5oZXJpdHNHZXR0ZXIK
IHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0OworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAlYXR0ciA9ICgpOworICAgICRhdHRyeyJpbmhl
cml0cyJ9ID0gMTsKKyAgICAkYXR0cnsiZ2V0cmFpc2VzIn0gPSBbXTsKKworICAgIHNob3VsZFRv
a2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJpbmhlcml0cyIsICJ3aGlsZSBwYXJz
aW5nIHRoZSBydWxlOiBJbmhlcml0c0dldHRlciAtPiBcImluaGVyaXRzXCJeXl5eIFwiZ2V0dGVy
XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgIHNob3VsZFRva2Vu
VmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCAid2hpbGUgcGFyc2luZyB0
aGUgcnVsZTogSW5oZXJpdHNHZXR0ZXIgLT4gXCJpbmhlcml0c1wiIFwiZ2V0dGVyXCJeXl5eIGF0
IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICByZXR1cm4gXCVhdHRyOwor
fQorCitzdWIgcGFyc2VHZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAg
c2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHJhaXNlcyIsICJ3
aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBHZXRSYWlzZXMgLT4gXCJnZXRyYWlzZXNcIl5eXl4gRXhj
ZXB0aW9uTGlzdCBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgbXkg
JWF0dHIgPSAoKTsKKyAgICAkYXR0cnsiaW5oZXJpdHMifSA9IDA7CisgICAgJGF0dHJ7ImdldHJh
aXNlcyJ9ID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIHJldHVybiBcJWF0dHI7
Cit9CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUv
KSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2lu
dGVyZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lm
ICgkXyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOwor
c3ViIHBhcnNlU2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oc2V0
cmFpc2VzKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwogICAgIH0KKyAgICByZXR1cm4gW107Cit9CiAK
LSAgICByZXR1cm4gJG1vZGU7CitzdWIgcGFyc2VPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8Y2FsbGVyfGJ5
dGV8dm9pZHxnZXR0ZXJ8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8aW50fG9taXR0YWJsZXxm
bG9hdHxzdGF0aWN8ZGVsZXRlcnxib29sZWFufFw6XDp8dW5zaWduZWR8c2VxdWVuY2V8c2V0dGVy
fERhdGV8Y3JlYXRvcnxhbnl8b2JqZWN0KSQvKSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUg
PSBuZXcgZG9tRnVuY3Rpb24oKTsKKworICAgICAgICAkc2VsZi0+cGFyc2VRdWFsaWZpZXJzKCRu
ZXdEYXRhTm9kZSk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJG5ld0RhdGFO
b2RlKTsKKyAgICAgICAgZGllICJGb3VuZCB1bmRlZmluZWQgc2lnbmF0dXJlIHdoaWxlIHBhcnNp
bmcgT3BlcmF0aW9uLiIgdW5sZXNzIGRlZmluZWQoJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUpOwor
ICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0K
KyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBh
cHBseWluZyB0aGUgcnVsZTogT3BlcmF0aW9uIC0+IFF1YWxpZmllcnMgT3BlcmF0aW9uUmVzdCBh
dCAiIC4gJHNlbGYtPntMaW5lfTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBQcm9jZXNz
U2VjdGlvbgorc3ViIHBhcnNlUXVhbGlmaWVycwogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
LSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9NT0RVTEUpIHsKLSAgICAgICAgZGllICgi
VHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZhdGFsIGVycm9yIVxuIikgaWYgKCRkb2N1bWVudCBu
ZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7Ci0gICAgICAgICRv
YmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVudCk7Ci0gICAgfSBlbHNpZiAoJHBhcnNlTW9kZSBl
cSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VNb2RlIGVxIE1PREVfRVhDRVBUSU9OKSB7Ci0gICAg
ICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNzKCk7Ci0gICAgICAgIG15ICRzZWN0aW9uTmFtZSA9
ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgPyAiaW50ZXJmYWNlIiA6ICJleGNlcHRpb24i
OwotICAgICAgICAkb2JqZWN0LT5QYXJzZUludGVyZmFjZSgkbm9kZSwgJHNlY3Rpb25OYW1lKTsK
LSAgICAKLSAgICAgICAgZGllICgiTm8gbW9kdWxlIHNwZWNpZmllZCEgRmF0YWwgRXJyb3IhXG4i
KSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAgICAgICBteSAkYXJyYXlSZWYgPSAkZG9jdW1lbnQt
PmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5vZGUpOworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oc3RhdGlj
KSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkbmV3RGF0YU5vZGUt
PmlzU3RhdGljKDEpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSA9fiAvXihvbWl0dGFibGUpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWxzKCk7CisgICAgICAgIHJldHVybjsKICAgICB9Cisg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxET01TdHJpbmd8
bG9uZ3xzaG9ydHxpbnR8ZmxvYXR8ZGVsZXRlcnxvYmplY3R8Ym9vbGVhbnxcOlw6fHVuc2lnbmVk
fGFueXxzZXR0ZXJ8RGF0ZXxjcmVhdG9yfHNlcXVlbmNlKSQvKSkgeworICAgICAgICAkc2VsZi0+
cGFyc2VTcGVjaWFscygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRpZSAiVW5leHBl
Y3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxl
OiBRdWFsaWZpZXJzIC0+IFwic3RhdGljXCJ8XCJvbWl0dGFibGVcIiBTcGVjaWFsc3xTcGVjaWFs
cyBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgIEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7
CitzdWIgcGFyc2VTcGVjaWFscworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGNy
ZWF0b3J8ZGVsZXRlcnxzZXR0ZXJ8Z2V0dGVyfGNhbGxlcikkLykgeworICAgICAgICAkc2VsZi0+
cGFyc2VTcGVjaWFsKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWxzKCk7CisgICAgfQor
ICAgIHJldHVybjsKIH0KIAotMTsKK3N1YiBwYXJzZVNwZWNpYWwKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvXihnZXR0ZXIpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHNl
dHRlcikkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oY3JlYXRvcikkLykgeworICAgICAg
ICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gL14oZGVsZXRlcikkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14o
Y2FsbGVyKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAi
IHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBTcGVjaWFsIC0+IFwiZ2V0dGVyXCJ8XCJzZXR0ZXJc
InxcImNyZWF0b3JcInxcImRlbGV0ZXJcInxcImNhbGxlclwiIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworfQorCitzdWIgcGFyc2VPcGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV3RGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8Ynl0ZXx2b2lkfG9jdGV0fERPTVN0cmluZ3xs
b25nfHNob3J0fGludHxmbG9hdHxvYmplY3R8Ym9vbGVhbnxcOlw6fHVuc2lnbmVkfHNlcXVlbmNl
fERhdGV8YW55KSQvKSkgeworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9t
U2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2Vs
Zi0+cGFyc2VSZXR1cm5UeXBlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
bmFtZSgkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKSk7CisKKyAgICAgICAgc2hvdWxk
VG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAid2hpbGUgcGFyc2luZyB0
aGUgcnVsZTogT3BlcmF0aW9uUmVzdCAtPiBSZXR1cm5UeXBlIE9wdGlvbmFsSWRlbnRpZmllciBc
IlwoXCJeXl5eIEFyZ3VtZW50TGlzdCBcIlwpXCIgUmFpc2VzIFwiXDtcIiBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+
cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCl9KTsKKworICAgICAgICBz
aG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsICJ3aGlsZSBwYXJz
aW5nIHRoZSBydWxlOiBPcGVyYXRpb25SZXN0IC0+IFJldHVyblR5cGUgT3B0aW9uYWxJZGVudGlm
aWVyIFwiXChcIiBBcmd1bWVudExpc3QgXCJcKVwiXl5eXiBSYWlzZXMgXCJcO1wiIGF0IGxpbmU6
IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKworICAgICAgICBwdXNoKEB7JG5ld0RhdGFO
b2RlLT5yYWlzZXNFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworCisgICAg
ICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICI7IiwgIndoaWxl
IHBhcnNpbmcgdGhlIHJ1bGU6IE9wZXJhdGlvblJlc3QgLT4gUmV0dXJuVHlwZSBPcHRpb25hbElk
ZW50aWZpZXIgXCJcKFwiIEFyZ3VtZW50TGlzdCBcIlwpXCIgUmFpc2VzIFwiXDtcIl5eXl4gYXQg
bGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxl
IGFwcGx5aW5nIHRoZSBydWxlOiBPcGVyYXRpb25SZXN0IC0+IFJldHVyblR5cGUgT3B0aW9uYWxJ
ZGVudGlmaWVyIFwiKFwiIEFyZ3VtZW50TGlzdCBcIilcIiBSYWlzZXMgXCI7XCIgYXQgIiAuICRz
ZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOwor
ICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZVJhaXNlcworeworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKHJhaXNlcykkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9
CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKCkkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgbXkgJHJlc3VsdCA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWVMaXN0KCk7
CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICIpIiwg
IndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlvbkxpc3QgLT4gXCJcKFwiIFNjb3BlZE5h
bWVMaXN0IFwiXClcIl5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOwor
ICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2Vu
ICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlv
bkxpc3QgLT4gXCIoXCIgU2NvcGVkTmFtZUxpc3QgXCIpXCIgYXQgIiAuICRzZWxmLT57TGluZX07
Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0
LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxieXRlfG9jdGV0fERPTVN0cmluZ3xsb25nfHNob3J0fGlu
dHxcW3xmbG9hdHxvYmplY3R8Ym9vbGVhbnxcOlw6fHVuc2lnbmVkfG9wdGlvbmFsfGlufGFueXxE
YXRlfHNlcXVlbmNlKSQvKSkgeworICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJz
ZUFyZ3VtZW50KCkpOworICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEB7JHNlbGYtPnBhcnNlQXJn
dW1lbnRzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQorCitzdWIgcGFy
c2VBcmd1bWVudHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMg
PSAoKTsKKworICAgIHdoaWxlIChUcnVlKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCwpJC8pIHsKKyAg
ICAgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAgICAgcHVzaChAYXJndW1lbnRz
LCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQorCitz
dWIgcGFyc2VBcmd1bWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgaWYgKCRiYWNr
d2FyZENvbXBhdGlibGVNb2RlKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBcmd1bWVu
dE9sZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBcmd1bWVu
dE5ldygpOworICAgIH0KK30KKworc3ViIHBhcnNlQXJndW1lbnROZXcKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAv
Xihkb3VibGV8dHlwZWRlZnxjYWxsZXJ8Ynl0ZXxET01TdHJpbmd8c2hvcnR8aW50fGV4Y2VwdGlv
bnxvbWl0dGFibGV8ZmxvYXR8YXR0cmlidXRlfHN0YXRpY3xyZWFkb25seXxkZWxldGVyfGRpY3Rp
b25hcnl8XDpcOnx1bnNpZ25lZHxvcHRpb25hbHxzZXR0ZXJ8aW50ZXJmYWNlfHNlcXVlbmNlfHN0
cmluZ2lmaWVyfG1vZHVsZXx2b2lkfGdldHRlcnxvY3RldHxsb25nfFxbfGNvbnN0fGJvb2xlYW58
aW58RGF0ZXxjcmVhdG9yfGFueXxvYmplY3QpJC8pKSB7CisgICAgICAgIG15ICRwYXJhbURhdGFO
b2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpKTsKKyAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPmRpcmVjdGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlT3B0aW9uYWwoKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VU
eXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAiPyIu
CisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAgICAgICAkcGFyYW1E
YXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRw
YXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVtb3Zl
IGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgorICAg
ICAgICAkdHlwZSA9fiBzL1w/Ly87CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBl
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPm5hbWUoJHNlbGYtPnBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKCkpOworICAgICAgICByZXR1
cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4g
JG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBBcmd1bWVudCAtPiBF
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgSW4gT3B0aW9uYWwgVHlwZSBFbGxpcHNpcyBPcHRpb25hbElk
ZW50aWZpZXIgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZUluCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oaW4pJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgIHJldHVybiAiaW4iOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisK
K3N1YiBwYXJzZU9wdGlvbmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ob3B0
aW9uYWwpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgfQorICAgIHJldHVy
bjsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihcLlwuXC4pJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgfQorICAg
IHJldHVybjsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVyCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
L14oY29uc3QpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGJvb2xlYW58Ynl0ZXxc
Olw6fHVuc2lnbmVkfG9jdGV0fGFueXxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8RGF0ZXxmbG9h
dHxvYmplY3QpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25GaWVs
ZCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRv
a2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IEV4Y2Vw
dGlvbk1lbWJlciAtPiBDb25zdHxFeGNlcHRpb25GaWVsZCBhdCAiIC4gJHNlbGYtPntMaW5lfTsK
K30KKworc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxv
YmplY3R8Ym9vbGVhbnxieXRlfFw6XDp8dW5zaWduZWR8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hv
cnR8aW50fERhdGV8ZmxvYXR8YW55KSQvKSkgeworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gc2hpZnQ7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1
dGUoKTsKKworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIp
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlQXR0cmlidXRl
VHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAg
IHNob3VsZFRva2VuVHlwZUVxdWFscygkdG9rZW4sIElkZW50aWZpZXJUb2tlbiwgIndoaWxlIHBh
cnNpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlvbkZpZWxkIC0+IEF0dHJpYnV0ZVR5cGUgaWRlbnRpZmll
cl5eXl4gXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAg
ICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUg
cGFyc2luZyB0aGUgcnVsZTogRXhjZXB0aW9uRmllbGQgLT4gQXR0cmlidXRlVHlwZSBpZGVudGlm
aWVyIFwiXDtcIl5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAg
ICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBhcHBs
eWluZyB0aGUgcnVsZTogRXhjZXB0aW9uRmllbGQgLT4gQXR0cmlidXRlVHlwZSBpZGVudGlmaWVy
IFwiO1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICVhdHRycyA9ICgpOwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvXihcWykkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgbXkg
JGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZSgpOworICAgICAgICBAYXR0cnN7
a2V5cyAleyRhdHRyfX0gPSB2YWx1ZXMgJXskYXR0cn07CisgICAgICAgICRhdHRyID0gJHNlbGYt
PnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgIEBhdHRyc3trZXlzICV7JGF0dHJ9
fSA9IHZhbHVlcyAleyRhdHRyfTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIl0iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogRXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0IC0+IFwiXFtcIiBFeHRlbmRlZEF0dHJpYnV0ZSBFeHRlbmRlZEF0dHJpYnV0ZXMg
XCJcXVwiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgfQor
ICAgIHJldHVybiBcJWF0dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICVhdHRycyA9ICgpOworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFws
KSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAkYXR0ciA9ICRz
ZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICBAYXR0cnN7a2V5cyAleyRh
dHRyfX0gPSB2YWx1ZXMgJXskYXR0cn07CisKKyAgICAgICAgJGF0dHIgPSAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgQGF0dHJze2tleXMgJXskYXR0cn19ID0gdmFs
dWVzICV7JGF0dHJ9OworICAgIH0KKyAgICByZXR1cm4gXCVhdHRyczsKK30KKworc3ViIHBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVl
KCkpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgJ10nKSB7CisgICAgICAgIG15
ICVhdHRyID0gKCk7CisgICAgICAgIHJldHVybiBcJWF0dHI7CisgICAgfQorICAgIGRpZSAiVW5l
eHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBy
dWxlOiBFeHRlbmRlZEF0dHJpYnV0ZSAtPiBpZGVudGlmaWVyIEV4dGVuZGVkQXR0cmlidXRlUmVz
dCBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUy
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAg
ICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAg
ICBteSAlYXR0ciA9ICgpOworICAgIHJldHVybiBcJWF0dHI7Cit9CisKK3N1YiBwYXJzZUV4dGVu
ZGVkQXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5hbWUg
PSBzaGlmdDsKKyAgICBteSAlYXR0ciA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFwoKSQvKSB7CisgICAgICAg
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkYXR0cnskbmFtZX0gPSAkc2VsZi0+cGFyc2VB
cmd1bWVudExpc3QoKTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0
VG9rZW4oKSwgIikiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogRXh0ZW5kZWRBdHRyaWJ1dGVS
ZXN0IC0+IFwiXChcIiBBcmd1bWVudExpc3QgXCJcKVwiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2Vs
Zi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHJldHVybiBcJWF0dHI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcPSkkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgJGF0dHJ7JG5hbWV9ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVS
ZXN0MigpOworICAgICAgICByZXR1cm4gXCVhdHRyOworICAgIH0KKworICAgIGlmICgkbmFtZSBl
cSAiQ29uc3RydWN0b3IiKSB7CisgICAgICAgICRhdHRyeyRuYW1lfSA9IFtdOworICAgIH0gZWxz
ZSB7CisgICAgICAgICRhdHRyeyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9Cisg
ICAgcmV0dXJuIFwlYXR0cjsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Mgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAg
IG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MygkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAg
fQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxl
IGFwcGx5aW5nIHRoZSBydWxlOiBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyIC0+IGlkZW50aWZpZXIg
RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M3xpbnRlZ2VyIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQor
CitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFwmKSQvKSB7CisgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgc2hvdWxkVG9rZW5UeXBlRXF1YWxzKCR0b2tlbiwgSWRlbnRpZmllclRva2VuLCAi
d2hpbGUgcGFyc2luZyB0aGUgcnVsZTogRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MyAtPiBcIlwmXCIg
aWRlbnRpZmllcl5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAg
ICAgICByZXR1cm4gJG5hbWUgLiAiJiIgLiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcfCkkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHNob3Vs
ZFRva2VuVHlwZUVxdWFscygkdG9rZW4sIElkZW50aWZpZXJUb2tlbiwgIndoaWxlIHBhcnNpbmcg
dGhlIHJ1bGU6IEV4dGVuZGVkQXR0cmlidXRlUmVzdDMgLT4gXCJcfFwiIGlkZW50aWZpZXJeXl5e
IGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAgICAgcmV0dXJuICRu
YW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gL14oXCgpJC8pIHsKKyAgICAgICAgbXkgJWF0dHIgPSAoKTsKKyAgICAgICAgJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgICRhdHRyeyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50
TGlzdCgpOworICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigp
LCAiKSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzIC0+
IFwiXChcIiBBcmd1bWVudExpc3QgXCJcKVwiXl5eXiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xp
bmV9IC4gIlwiIik7CisgICAgICAgIHJldHVybiBcJWF0dHI7CisgICAgfQorICAgIHJldHVybiAk
bmFtZTsKK30KKworc3ViIHBhcnNlVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC9eKHNlcXVlbmNlKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBz
aG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsICJ3aGlsZSBwYXJz
aW5nIHRoZSBydWxlOiBUeXBlIC0+IFwic2VxdWVuY2VcIiBcIlw8XCJeXl5eIFR5cGUgXCJcPlwi
IE51bGwgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICBteSAk
dHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFs
cygkc2VsZi0+Z2V0VG9rZW4oKSwgIj4iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogVHlwZSAt
PiBcInNlcXVlbmNlXCIgXCJcPFwiIFR5cGUgXCJcPlwiXl5eXiBOdWxsIGF0IGxpbmU6IFwiIiAu
ICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU51bGwoKSkg
eworICAgICAgICAgICAgcmV0dXJuICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPj8iOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPiI7
CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxvYmplY3R8Ym9vbGVhbnxieXRl
fFw6XDp8dW5zaWduZWR8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8aW50fERhdGV8ZmxvYXR8
YW55KSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlVHlwZSgpOwor
ICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3
aGlsZSBhcHBseWluZyB0aGUgcnVsZTogVHlwZSAtPiBBdHRyaWJ1dGVUeXBlfFwic2VxdWVuY2Vc
IiBcIjxcIiBUeXBlIFwiPlwiIE51bGwgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBw
YXJzZUF0dHJpYnV0ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEB0eXBl
cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxib29sZWFufGJ5dGV8dW5zaWduZWR8b2N0ZXR8RE9N
U3RyaW5nfGxvbmd8c2hvcnR8aW50fGZsb2F0KSQvKSB7CisgICAgICAgIHB1c2goQHR5cGVzLCRz
ZWxmLT5wYXJzZVByaW1pdGl2ZU9yU3RyaW5nVHlwZSgpKTsKKyAgICAgICAgcHVzaChAdHlwZXMs
IEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVybiBqb2luKCcnLCBA
dHlwZXMpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ob2JqZWN0KSQvKSB7
CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBwdXNoKEB0eXBlcywgIm9iamVj
dCIpOworICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9KTsK
KyAgICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSA9fiAvXihEYXRlKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICBwdXNoKEB0eXBlcywgIkRhdGUiKTsKKyAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oYW55KSQvKSB7CisgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICBwdXNoKEB0eXBlcywgImFueSIpOworICAgICAgICBw
dXNoKEB0eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKX0p
OworICAgICAgICByZXR1cm4gam9pbignJywgQHR5cGVzKTsKKyAgICB9CisgICAgaWYgKCgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFw6
XDopJC8pKSB7CisgICAgICAgIHB1c2goQHR5cGVzLCAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCkp
OworICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAg
ICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3Rl
ZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBB
dHRyaWJ1dGVUeXBlIC0+IFByaW1pdGl2ZU9yU3RyaW5nVHlwZSBUeXBlU3VmZml4fFNjb3BlZE5h
bWUgVHlwZVN1ZmZpeHxcIm9iamVjdFwiIFR5cGVTdWZmaXh8XCJEYXRlXCIgVHlwZVN1ZmZpeHxc
ImFueVwiIFR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSBhdCAiIC4gJHNlbGYtPntMaW5lfTsK
K30KKworc3ViIHBhcnNlQ29uc3RUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
L14oZG91YmxlfGJvb2xlYW58Ynl0ZXx1bnNpZ25lZHxvY3RldHxET01TdHJpbmd8bG9uZ3xzaG9y
dHxpbnR8ZmxvYXQpJC8pIHsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VQcmltaXRp
dmVPclN0cmluZ1R5cGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU51bGwoKSkgeworICAg
ICAgICAgICAgcmV0dXJuICR0eXBlIC4gIj8iOworICAgICAgICB9CisgICAgICAgIHJldHVybiAk
dHlwZTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUo
KSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IENvbnN0VHlwZSAtPiBQcmltaXRpdmVPclN0
cmluZ1R5cGUgTnVsbCBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KKworc3ViIHBhcnNlUHJpbWl0
aXZlT3JTdHJpbmdUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14obG9uZ3x1
bnNpZ25lZHxzaG9ydHxpbnQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuc2ln
bmVkSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGJv
b2xlYW4pJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAi
Ym9vbGVhbiI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihieXRlKSQvKSB7
CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gImJ5dGUiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ob2N0ZXQpJC8pIHsKKyAgICAgICAgJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAib2N0ZXQiOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgPX4gL14oZmxvYXQpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gL14oZG91YmxlKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICByZXR1cm4gImRvdWJsZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihE
T01TdHJpbmcpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVy
biAiRE9NU3RyaW5nIjsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4
dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IFByaW1pdGl2ZU9yU3RyaW5n
VHlwZSAtPiBVbnNpZ25lZEludGVnZXJUeXBlfFwiYm9vbGVhblwifFwiYnl0ZVwifFwib2N0ZXRc
InxcImZsb2F0XCJ8XCJkb3VibGVcInxcIkRPTVN0cmluZ1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworfQorCitzdWIgcGFyc2VVbnNpZ25lZEludGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gL14odW5zaWduZWQpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgIHJldHVybiAidW5zaWduZWQgIiAuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihsb25nfHNob3J0fGludCkkLykg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAg
ZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlp
bmcgdGhlIHJ1bGU6IFVuc2lnbmVkSW50ZWdlclR5cGUgLT4gXCJ1bnNpZ25lZFwiIEludGVnZXJU
eXBlfEludGVnZXJUeXBlIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitzdWIgcGFyc2VJbnRl
Z2VyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHNob3J0fGludCkkLykg
eworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
ICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGxv
bmcpJC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIGlmICgkc2VsZi0+
cGFyc2VPcHRpb25hbExvbmcoKSkgeworICAgICAgICAgICAgcmV0dXJuICJsb25nIGxvbmciOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICJsb25nIjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgpIC4gIiB3
aGlsZSBhcHBseWluZyB0aGUgcnVsZTogSW50ZWdlclR5cGUgLT4gXCJzaG9ydFwifFwiaW50XCJ8
XCJsb25nXCIgT3B0aW9uYWxMb25nIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitzdWIgcGFy
c2VPcHRpb25hbExvbmcKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihsb25nKSQv
KSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gVHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIEZhbHNlOworfQorCitzdWIgcGFyc2VUeXBlU3VmZml4Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAc3VmZml4ID0gKCk7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXFspJC8p
IHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVF
cXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJdIiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IFR5
cGVTdWZmaXggLT4gXCJcW1wiIFwiXF1cIl5eXl4gVHlwZVN1ZmZpeCBhdCBsaW5lOiBcIiIgLiAk
c2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHB1c2goQHN1ZmZpeCwgIltdIik7CisgICAg
ICAgIHB1c2goQHN1ZmZpeCwgQHskc2VsZi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICAgICAg
cmV0dXJuIFxAc3VmZml4OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXD8p
JC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHB1c2goQHN1ZmZpeCwg
Ij8iKTsKKyAgICAgICAgcHVzaChAc3VmZml4LCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFy
dGluZ1dpdGhBcnJheSgpfSk7CisgICAgICAgIHJldHVybiBcQHN1ZmZpeDsKKyAgICB9CisgICAg
cmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBzdWZmaXggPSAoKTsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihc
WykkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgc2hvdWxkVG9rZW5W
YWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVs
ZTogVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5IC0+IFwiXFtcIiBcIlxdXCJeXl5eIFR5cGVT
dWZmaXggYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICBwdXNo
KEBzdWZmaXgsICJbXSIpOworICAgICAgICBwdXNoKEBzdWZmaXgsIEB7JHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeCgpfSk7CisgICAgfQorICAgIHJldHVybiBcQHN1ZmZpeDsKK30KKworc3ViIHBhcnNl
TnVsbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFw/KSQvKSB7CisgICAgICAg
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gVHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIEZhbHNlOworfQorCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gL14odm9pZCkkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxvYmplY3R8Ym9v
bGVhbnxieXRlfFw6XDp8dW5zaWduZWR8b2N0ZXR8YW55fERPTVN0cmluZ3xsb25nfHNob3J0fGlu
dHxEYXRlfGZsb2F0fHNlcXVlbmNlKSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
VHlwZSgpOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1
ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTogUmV0dXJuVHlwZSAtPiBUeXBlfFwidm9p
ZFwiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQorCitzdWIgcGFyc2VTY29wZWROYW1lTGlzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0
LT52YWx1ZSgpID1+IC9eKFw6XDopJC8pKSB7CisgICAgICAgIG15IEBuYW1lcyA9ICgpOworICAg
ICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAgcHVz
aChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlU2NvcGVkTmFtZXMoKX0pOworICAgICAgICByZXR1cm4g
XEBuYW1lczsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFs
dWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IFNjb3BlZE5hbWVMaXN0IC0+IFNjb3Bl
ZE5hbWUgU2NvcGVkTmFtZXMgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZVNj
b3BlZE5hbWVzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbmFtZXMgPSAoKTsK
KworICAgIHdoaWxlIChUcnVlKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCwpJC8pIHsKKyAgICAgICAg
ICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAgICAgcHVzaChAbmFtZXMsICRzZWxmLT5w
YXJzZVNjb3BlZE5hbWUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG5hbWVzOworfQorCitzdWIgcGFyc2VTY29w
ZWROYW1lCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXDpcOikkLykgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQWJzb2x1dGVTY29wZWROYW1lKCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlUmVsYXRpdmVTY29wZWROYW1lKCk7CisgICAgfQorICAgIGRpZSAiVW5leHBl
Y3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxl
OiBTY29wZWROYW1lIC0+IEFic29sdXRlU2NvcGVkTmFtZXxSZWxhdGl2ZVNjb3BlZE5hbWUgYXQg
IiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZUFic29sdXRlU2NvcGVkTmFtZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFw6XDopJC8pIHsKKyAgICAgICAgJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICBzaG91bGRUb2tlblR5cGVFcXVhbHMoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4sICJ3aGls
ZSBwYXJzaW5nIHRoZSBydWxlOiBBYnNvbHV0ZVNjb3BlZE5hbWUgLT4gXCJcOlw6XCIgaWRlbnRp
Zmllcl5eXl4gU2NvcGVkTmFtZVBhcnRzIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAi
XCIiKTsKKyAgICAgICAgcmV0dXJuICI6OiIgLiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFy
c2VTY29wZWROYW1lUGFydHMoKTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIg
LiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IEFic29sdXRlU2Nv
cGVkTmFtZSAtPiBcIjo6XCIgaWRlbnRpZmllciBTY29wZWROYW1lUGFydHMgYXQgIiAuICRzZWxm
LT57TGluZX07Cit9CisKK3N1YiBwYXJzZVJlbGF0aXZlU2NvcGVkTmFtZQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNl
bGYtPnBhcnNlU2NvcGVkTmFtZVBhcnRzKCk7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0
b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBSZWxh
dGl2ZVNjb3BlZE5hbWUgLT4gaWRlbnRpZmllciBTY29wZWROYW1lUGFydHMgYXQgIiAuICRzZWxm
LT57TGluZX07Cit9CisKK3N1YiBwYXJzZVNjb3BlZE5hbWVQYXJ0cworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisgICAgd2hpbGUgKFRydWUpIHsKKyAgICAg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFs
dWUoKSA9fiAvXihcOlw6KSQvKSB7CisgICAgICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAgICAgc2hv
dWxkVG9rZW5UeXBlRXF1YWxzKCR0b2tlbiwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2lu
ZyB0aGUgcnVsZTogU2NvcGVkTmFtZVBhcnRzIC0+IFwiXDpcOlwiIGlkZW50aWZpZXJeXl5eIFNj
b3BlZE5hbWVQYXJ0cyBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAg
ICAgICAgICBwdXNoKEBuYW1lcywgJzo6Jyk7CisgICAgICAgICAgICBwdXNoKEBuYW1lcywgJHRv
a2VuLT52YWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGpvaW4oJycsIEBuYW1lcyk7Cit9CisKK3N1YiBwYXJz
ZU9wdGlvbmFsU2VtaWNvbG9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oXDsp
JC8pIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgfQorfQorCisjIEZvciBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5CisKK3N1YiBwYXJzZURlZmluaXRpb25zT2xkCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAgIHdoaWxlIChU
cnVlKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBp
ZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkg
PX4gL14oZGljdGlvbmFyeXx0eXBlZGVmfG1vZHVsZXxcOlw6fGludGVyZmFjZXxleGNlcHRpb258
cGFydGlhbCkkLykpIHsKKyAgICAgICAgICAgIHB1c2goQGRlZmluaXRpb25zLCAkc2VsZi0+cGFy
c2VEZWZpbml0aW9uT2xkKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBkZWZpbml0aW9uczsKK30KKworc3ViIHBh
cnNlRGVmaW5pdGlvbk9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHBhcnRp
YWwpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxJbnRlcmZhY2VPbGQo
KTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKGRpY3Rpb25hcnl8dHlwZWRlZnxleGNlcHRpb258bW9kdWxl
fGludGVyZmFjZXxcOlw6KSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTm9ybWFs
RGVmaW5pdGlvbigpOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0
LT52YWx1ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTogRGVmaW5pdGlvbiAtPiBOb3Jt
YWxEZWZpbml0aW9ufFBhcnRpYWxJbnRlcmZhY2UgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisK
K3N1YiBwYXJzZU1vZHVsZU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJz
ZSBtb2R1bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0OworCisgICAgbXkgJGRvY3VtZW50ID0gbmV3
IGlkbERvY3VtZW50KCk7CisgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworCisg
ICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgc2hvdWxkVG9rZW5UeXBlRXF1
YWxzKCR0b2tlbiwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogTW9k
dWxlIC0+IFwibW9kdWxlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXJeXl5eIFwi
XHtcIiBEZWZpbml0aW9ucyBcIlx9XCIgT3B0aW9uYWxTZW1pY29sb24gYXQgbGluZTogXCIiIC4g
JHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYt
PmdldFRva2VuKCksICJ7IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IE1vZHVsZSAtPiBcIm1v
ZHVsZVwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIFwiXHtcIl5eXl4gRGVmaW5p
dGlvbnMgXCJcfVwiIE9wdGlvbmFsU2VtaWNvbG9uIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGlu
ZX0gLiAiXCIiKTsKKworICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisK
KyAgICBteSAkZGVmaW5pdGlvbnMgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9uc09sZCgpOworICAg
IHB1c2goQHskZG9jdW1lbnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworCisgICAgc2hv
dWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCAid2hpbGUgcGFyc2lu
ZyB0aGUgcnVsZTogTW9kdWxlIC0+IFwibW9kdWxlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlk
ZW50aWZpZXIgXCJce1wiIERlZmluaXRpb25zIFwiXH1cIl5eXl4gT3B0aW9uYWxTZW1pY29sb24g
YXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICRzZWxmLT5wYXJzZU9w
dGlvbmFsU2VtaWNvbG9uKCk7CisKKyAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwi
IiAuICR0b2tlbi0+dmFsdWUoKSAuICJcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CisK
KyAgICByZXR1cm4gJGRvY3VtZW50OworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VPbGQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
CisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFj
ZSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBJbnRlcmZhY2UgLT4gXCJpbnRlcmZhY2VcIl5e
Xl4gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiIElu
dGVyZmFjZU1lbWJlcnMgXCJcfVwiIFwiXDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9
IC4gIlwiIik7CisKKyAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KCk7CisKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICBzaG91bGRUb2tl
blR5cGVFcXVhbHMoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4sICJ3aGlsZSBwYXJzaW5nIHRoZSBy
dWxlOiBJbnRlcmZhY2UgLT4gXCJpbnRlcmZhY2VcIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRl
bnRpZmllcl5eXl4gSW5oZXJpdGFuY2UgXCJce1wiIEludGVyZmFjZU1lbWJlcnMgXCJcfVwiIFwi
XDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisKKyAgICAkZGF0YU5v
ZGUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDAp
OworICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRh
bmNlKCl9KTsKKworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCks
ICJ7IiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEludGVyZmFjZSAtPiBcImludGVyZmFjZVwi
IEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIEluaGVyaXRhbmNlIFwiXHtcIl5eXl4g
SW50ZXJmYWNlTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGlu
ZX0gLiAiXCIiKTsKKworICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50
ZXJmYWNlTWVtYmVyc09sZCgpOworCisgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+
Z2V0VG9rZW4oKSwgIn0iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogSW50ZXJmYWNlIC0+IFwi
aW50ZXJmYWNlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIgSW5oZXJpdGFuY2Ug
XCJce1wiIEludGVyZmFjZU1lbWJlcnMgXCJcfVwiXl5eXiBcIlw7XCIgYXQgbGluZTogXCIiIC4g
JHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRz
ZWxmLT5nZXRUb2tlbigpLCAiOyIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBJbnRlcmZhY2Ug
LT4gXCJpbnRlcmZhY2VcIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRlbnRpZmllciBJbmhlcml0
YW5jZSBcIlx7XCIgSW50ZXJmYWNlTWVtYmVycyBcIlx9XCIgXCJcO1wiXl5eXiBhdCBsaW5lOiBc
IiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JGludGVy
ZmFjZU1lbWJlcnN9KSB7CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUi
KSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOwor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9
LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYo
JGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUt
PmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIHJldHVybiAkZGF0YU5vZGU7Cit9CisKK3N1YiBwYXJzZVBhcnRp
YWxJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihwYXJ0aWFs
KSQvKSB7CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCks
ICJwYXJ0aWFsIiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IFBhcnRpYWxJbnRlcmZhY2UgLT4g
XCJwYXJ0aWFsXCJeXl5eIFwiaW50ZXJmYWNlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50
aWZpZXIgXCJce1wiIEludGVyZmFjZU1lbWJlcnMgXCJcfVwiIFwiXDtcIiBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMo
JHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTog
UGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBcImludGVyZmFjZVwiXl5eXiBFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgaWRlbnRpZmllciBcIlx7XCIgSW50ZXJmYWNlTWVtYmVycyBcIlx9XCIg
XCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgIHNob3VsZFRva2VuVHlw
ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuLCAid2hpbGUgcGFyc2lu
ZyB0aGUgcnVsZTogUGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBcImludGVyZmFjZVwi
IEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyXl5eXiBcIlx7XCIgSW50ZXJmYWNlTWVt
YmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsK
KyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCAi
d2hpbGUgcGFyc2luZyB0aGUgcnVsZTogUGFydGlhbEludGVyZmFjZSAtPiBcInBhcnRpYWxcIiBc
ImludGVyZmFjZVwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIFwiXHtcIl5eXl4g
SW50ZXJmYWNlTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGlu
ZX0gLiAiXCIiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyc09sZCgpOwor
ICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsICJ3
aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBQYXJ0aWFsSW50ZXJmYWNlIC0+IFwicGFydGlhbFwiIFwi
aW50ZXJmYWNlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIgXCJce1wiIEludGVy
ZmFjZU1lbWJlcnMgXCJcfVwiXl5eXiBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5l
fSAuICJcIiIpOworICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tl
bigpLCAiOyIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBQYXJ0aWFsSW50ZXJmYWNlIC0+IFwi
cGFydGlhbFwiIFwiaW50ZXJmYWNlXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIg
XCJce1wiIEludGVyZmFjZU1lbWJlcnMgXCJcfVwiIFwiXDtcIl5eXl4gYXQgbGluZTogXCIiIC4g
JHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRpZSAi
VW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRo
ZSBydWxlOiBQYXJ0aWFsSW50ZXJmYWNlIC0+IFwicGFydGlhbFwiIFwiaW50ZXJmYWNlXCIgRXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0IGlkZW50aWZpZXIgXCJ7XCIgSW50ZXJmYWNlTWVtYmVycyBcIn1c
IiBcIjtcIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlTWVt
YmVyc09sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJl
cnMgPSAoKTsKKworICAgIHdoaWxlIChUcnVlKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgICAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGNhbGxlcnxieXRlfHZvaWR8Z2V0
dGVyfG9jdGV0fGNvbnN0fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxcW3xvbWl0dGFibGV8Zmxv
YXR8YXR0cmlidXRlfHN0YXRpY3xyZWFkb25seXxkZWxldGVyfG9iamVjdHxib29sZWFufFw6XDp8
dW5zaWduZWR8YW55fHNldHRlcnxEYXRlfGNyZWF0b3J8c2VxdWVuY2UpJC8pKSB7CisgICAgICAg
ICAgICBteSAkaW50ZXJmYWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyT2xk
KCk7CisgICAgICAgICAgICBpZiAoZGVmaW5lZCAkaW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW50ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBcQGludGVyZmFjZU1lbWJlcnM7Cit9CisKK3N1YiBwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ocmVh
ZG9ubHl8YXR0cmlidXRlKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1
dGVPbGQoKTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
bikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRl
cnxvY3RldHxjb25zdHxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8XFt8b21pdHRhYmxlfGZsb2F0
fHN0YXRpY3xkZWxldGVyfGJvb2xlYW58XDpcOnx1bnNpZ25lZHxvcHRpb25hbHxzZXR0ZXJ8RGF0
ZXxjcmVhdG9yfGFueXxvYmplY3R8c2VxdWVuY2UpJC8pKSB7CisgICAgICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0T3JPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgIGRpZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJG5leHQtPnZh
bHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxlOiBJbnRlcmZhY2VNZW1iZXIgLT4gRXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0IENvbnN0T3JPcGVyYXRpb258QXR0cmlidXRlIGF0ICIgLiAkc2Vs
Zi0+e0xpbmV9OworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5T2xkCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gL14oZGljdGlvbmFyeSkkLykgeworICAgICAgICBzaG91bGRUb2tlblZh
bHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIsICJ3aGlsZSBwYXJzaW5n
IHRoZSBydWxlOiBEaWN0aW9uYXJ5IC0+IFwiZGljdGlvbmFyeVwiXl5eXiBFeHRlbmRlZEF0dHJp
YnV0ZUxpc3QgaWRlbnRpZmllciBJbmhlcml0YW5jZSBcIlx7XCIgRGljdGlvbmFyeU1lbWJlcnMg
XCJcfVwiIFwiXDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAg
ICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICBzaG91bGRU
b2tlblR5cGVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbiwgIndoaWxl
IHBhcnNpbmcgdGhlIHJ1bGU6IERpY3Rpb25hcnkgLT4gXCJkaWN0aW9uYXJ5XCIgRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0IGlkZW50aWZpZXJeXl5eIEluaGVyaXRhbmNlIFwiXHtcIiBEaWN0aW9uYXJ5
TWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIi
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgc2hvdWxkVG9r
ZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCAid2hpbGUgcGFyc2luZyB0aGUg
cnVsZTogRGljdGlvbmFyeSAtPiBcImRpY3Rpb25hcnlcIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
aWRlbnRpZmllciBJbmhlcml0YW5jZSBcIlx7XCJeXl5eIERpY3Rpb25hcnlNZW1iZXJzIFwiXH1c
IiBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICAk
c2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyc09sZCgpOworICAgICAgICBzaG91bGRUb2tlblZh
bHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxl
OiBEaWN0aW9uYXJ5IC0+IFwiZGljdGlvbmFyeVwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVu
dGlmaWVyIEluaGVyaXRhbmNlIFwiXHtcIiBEaWN0aW9uYXJ5TWVtYmVycyBcIlx9XCJeXl5eIFwi
XDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHNob3Vs
ZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICI7IiwgIndoaWxlIHBhcnNpbmcg
dGhlIHJ1bGU6IERpY3Rpb25hcnkgLT4gXCJkaWN0aW9uYXJ5XCIgRXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0IGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiIERpY3Rpb25hcnlNZW1iZXJzIFwiXH1c
IiBcIlw7XCJeXl5eIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52
YWx1ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTogRGljdGlvbmFyeSAtPiBcImRpY3Rp
b25hcnlcIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRlbnRpZmllciBJbmhlcml0YW5jZSBcIntc
IiBEaWN0aW9uYXJ5TWVtYmVycyBcIn1cIiBcIjtcIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30K
Kworc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcnNPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8
Ym9vbGVhbnxieXRlfFw6XDp8dW5zaWduZWR8b2N0ZXR8c2VxdWVuY2V8RE9NU3RyaW5nfGxvbmd8
c2hvcnR8aW50fERhdGV8ZmxvYXR8YW55fG9iamVjdCkkLykpIHsKKyAgICAgICAgJHNlbGYtPnBh
cnNlRGljdGlvbmFyeU1lbWJlck9sZCgpOworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5
TWVtYmVyc09sZCgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlv
bk9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkZGF0YU5vZGUgPSBuZXcg
ZG9tQ2xhc3MoKTsKKworICAgIHNob3VsZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2Vu
KCksICJleGNlcHRpb24iLCAid2hpbGUgcGFyc2luZyB0aGUgcnVsZTogRXhjZXB0aW9uIC0+IFwi
ZXhjZXB0aW9uXCJeXl5eIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyIEluaGVyaXRh
bmNlIFwiXHtcIiBFeGNlcHRpb25NZW1iZXJzIFwiXH1cIiBcIlw7XCIgYXQgbGluZTogXCIiIC4g
JHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgIAorICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKworICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgIHNob3VsZFRva2VuVHlwZUVxdWFscygkdG9rZW4s
IElkZW50aWZpZXJUb2tlbiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEV4Y2VwdGlvbiAtPiBc
ImV4Y2VwdGlvblwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBpZGVudGlmaWVyXl5eXiBJbmhlcml0
YW5jZSBcIlx7XCIgRXhjZXB0aW9uTWVtYmVycyBcIlx9XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAu
ICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAkZGF0YU5vZGUtPm5hbWUoJHRva2VuLT52YWx1
ZSgpKTsKKyAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgIHB1c2goQHskZGF0YU5v
ZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKworICAgIHNob3Vs
ZFRva2VuVmFsdWVFcXVhbHMoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgIndoaWxlIHBhcnNpbmcg
dGhlIHJ1bGU6IEV4Y2VwdGlvbiAtPiBcImV4Y2VwdGlvblwiIEV4dGVuZGVkQXR0cmlidXRlTGlz
dCBpZGVudGlmaWVyIEluaGVyaXRhbmNlIFwiXHtcIl5eXl4gRXhjZXB0aW9uTWVtYmVycyBcIlx9
XCIgXCJcO1wiIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKworICAgIG15
ICRleGNlcHRpb25NZW1iZXJzOworICAgIGlmICgkZXhjZXB0aW9uSXNUaGVTYW1lQXNJbnRlcmZh
Y2UpIHsKKyAgICAgICAgJGV4Y2VwdGlvbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VN
ZW1iZXJzT2xkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGV4Y2VwdGlvbk1lbWJlcnMgPSAk
c2VsZi0+cGFyc2VFeGNlcHRpb25NZW1iZXJzT2woKTsKKyAgICB9CisKKyAgICBzaG91bGRUb2tl
blZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBy
dWxlOiBFeGNlcHRpb24gLT4gXCJleGNlcHRpb25cIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgaWRl
bnRpZmllciBJbmhlcml0YW5jZSBcIlx7XCIgRXhjZXB0aW9uTWVtYmVycyBcIlx9XCJeXl5eIFwi
XDtcIiBhdCBsaW5lOiBcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgc2hvdWxkVG9r
ZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCAid2hpbGUgcGFyc2luZyB0aGUg
cnVsZTogRXhjZXB0aW9uIC0+IFwiZXhjZXB0aW9uXCIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGlk
ZW50aWZpZXIgSW5oZXJpdGFuY2UgXCJce1wiIEV4Y2VwdGlvbk1lbWJlcnMgXCJcfVwiIFwiXDtc
Il5eXl4gYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworCisKKyAgICBmb3Ig
bXkgJGl0ZW0gKEB7JGV4Y2VwdGlvbk1lbWJlcnN9KSB7CisgICAgICAgIGlmIChyZWYoJGl0ZW0p
IGVxICJkb21BdHRyaWJ1dGUiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5hdHRy
aWJ1dGVzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBp
ZiAocmVmKCRpdGVtKSBlcSAiZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRh
dGFOb2RlLT5jb25zdGFudHN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9
CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAgICAgICAgICAg
IHB1c2goQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0
YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIHJldHVybiAkZGF0YU5vZGU7Cit9
CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcnNPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBtZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoVHJ1ZSkgeworICAgICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxvYmpl
Y3R8Ym9vbGVhbnxieXRlfFw6XDp8dW5zaWduZWR8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8
aW50fERhdGV8Y29uc3R8ZmxvYXR8YW55KSQvKSkgeworICAgICAgICAgICAgcHVzaChAbWVtYmVy
cywgJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVyT2xkKCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBtZW1iZXJz
OworfQorCitzdWIgcGFyc2VDb25zdE9yT3BlcmF0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oY29u
c3QpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGNhbGxlcnxieXRlfHZvaWR8Z2V0
dGVyfG9jdGV0fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxvbWl0dGFibGV8ZmxvYXR8c3RhdGlj
fGRlbGV0ZXJ8b2JqZWN0fGJvb2xlYW58XDpcOnx1bnNpZ25lZHxzZXF1ZW5jZXxzZXR0ZXJ8RGF0
ZXxjcmVhdG9yfGFueSkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlv
bigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRv
a2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IENvbnN0
T3JPcGVyYXRpb24gLT4gQ29uc3R8T3BlcmF0aW9uIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworfQor
CitzdWIgcGFyc2VBdHRyaWJ1dGVPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC9eKHJlYWRvbmx5fGF0dHJpYnV0ZSkkLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBu
ZXcgZG9tQXR0cmlidXRlKCk7CisKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkp
IHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJp
YnV0ZSIpOworICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIsICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBBdHRy
aWJ1dGUgLT4gUmVhZE9ubHkgXCJhdHRyaWJ1dGVcIl5eXl4gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
IEF0dHJpYnV0ZVR5cGUgaWRlbnRpZmllciBTZXRHZXRSYWlzZXMgXCJcO1wiIGF0IGxpbmU6IFwi
IiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKSk7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgIHNob3VsZFRva2VuVHlwZUVxdWFscygkdG9rZW4sIElkZW50aWZpZXJUb2tl
biwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEF0dHJpYnV0ZSAtPiBSZWFkT25seSBcImF0dHJp
YnV0ZVwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBBdHRyaWJ1dGVUeXBlIGlkZW50aWZpZXJeXl5e
IFNldEdldFJhaXNlcyBcIlw7XCIgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIp
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkp
OworCisgICAgICAgICRzZWxmLT5wYXJzZVNldEdldFJhaXNlcygkbmV3RGF0YU5vZGUpOworICAg
ICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsICJ3aGls
ZSBwYXJzaW5nIHRoZSBydWxlOiBBdHRyaWJ1dGUgLT4gUmVhZE9ubHkgXCJhdHRyaWJ1dGVcIiBF
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgQXR0cmlidXRlVHlwZSBpZGVudGlmaWVyIFNldEdldFJhaXNl
cyBcIlw7XCJeXl5eIGF0IGxpbmU6IFwiIiAuICRzZWxmLT57TGluZX0gLiAiXCIiKTsKKyAgICAg
ICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgZGllICJVbmV4cGVjdGVkIHRva2Vu
ICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBwbHlpbmcgdGhlIHJ1bGU6IEF0dHJpYnV0
ZSAtPiBSZWFkT25seSBcImF0dHJpYnV0ZVwiIEV4dGVuZGVkQXR0cmlidXRlTGlzdCBBdHRyaWJ1
dGVUeXBlIGlkZW50aWZpZXIgU2V0R2V0UmFpc2VzIFwiO1wiIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworfQorCitzdWIgcGFyc2VTZXRHZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHNldHRlcikkLykgeworICAgICAg
ICAkc2VsZi0+cGFyc2VTZXRSYWlzZXNPbGQoJGRhdGFOb2RlKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlR2V0UmFpc2VzT2xkMigkZGF0YU5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcO3xnZXR0ZXIpJC8pIHsKKyAgICAgICAgJHNlbGYt
PnBhcnNlR2V0UmFpc2VzT2xkKCRkYXRhTm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgd2hpbGUgYXBw
bHlpbmcgdGhlIHJ1bGU6IFNldEdldFJhaXNlcyAtPiBTZXRSYWlzZXMgR2V0UmFpc2VzMnxHZXRS
YWlzZXMgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZUdldFJhaXNlc09sZAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gL14oZ2V0dGVyKSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBz
aG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIiwgIndoaWxl
IHBhcnNpbmcgdGhlIHJ1bGU6IEdldFJhaXNlcyAtPiBcImdldHRlclwiIFwicmFpc2VzXCJeXl5e
IEV4Y2VwdGlvbkxpc3QgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAg
ICAgICBwdXNoKEB7JGRhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VF
eGNlcHRpb25MaXN0KCl9KTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIgcGFyc2VHZXRS
YWlzZXNPbGQyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvXihcLCkkLykgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgc2hvdWxkVG9rZW5WYWx1ZUVxdWFscygkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIs
ICJ3aGlsZSBwYXJzaW5nIHRoZSBydWxlOiBHZXRSYWlzZXMyIC0+IFwiXCxcIiBcImdldHRlclwi
Xl5eXiBcInJhaXNlc1wiIEV4Y2VwdGlvbkxpc3QgYXQgbGluZTogXCIiIC4gJHNlbGYtPntMaW5l
fSAuICJcIiIpOworICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1YWxzKCRzZWxmLT5nZXRUb2tl
bigpLCAicmFpc2VzIiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6IEdldFJhaXNlczIgLT4gXCJc
LFwiIFwiZ2V0dGVyXCIgXCJyYWlzZXNcIl5eXl4gRXhjZXB0aW9uTGlzdCBhdCBsaW5lOiBcIiIg
LiAkc2VsZi0+e0xpbmV9IC4gIlwiIik7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmdldHRl
ckV4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKX0pOworICAgIH0KKyAg
ICByZXR1cm47Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlc09sZAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oc2V0dGVyKSQvKSB7
CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBzaG91bGRUb2tlblZhbHVlRXF1
YWxzKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIiwgIndoaWxlIHBhcnNpbmcgdGhlIHJ1bGU6
IFNldFJhaXNlcyAtPiBcInNldHRlclwiIFwicmFpc2VzXCJeXl5eIEV4Y2VwdGlvbkxpc3QgYXQg
bGluZTogXCIiIC4gJHNlbGYtPntMaW5lfSAuICJcIiIpOworICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCl9KTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRu
ZXh0LT52YWx1ZSgpIC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTogU2V0UmFpc2VzIC0+IFwi
c2V0dGVyXCIgXCJyYWlzZXNcIiBFeGNlcHRpb25MaXN0IGF0ICIgLiAkc2VsZi0+e0xpbmV9Owor
fQorCitzdWIgcGFyc2VBcmd1bWVudE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxieXRlfG9j
dGV0fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxcW3xmbG9hdHxvYmplY3R8Ym9vbGVhbnxcOlw6
fHVuc2lnbmVkfG9wdGlvbmFsfGlufGFueXxEYXRlfHNlcXVlbmNlKSQvKSkgeworICAgICAgICBt
eSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKworICAgICAgICAkcGFyYW1E
YXRhTm9kZS0+ZGlyZWN0aW9uKCRzZWxmLT5wYXJzZUluKCkpOworICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlz
dCgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWwoKTsKKyAgICAgICAgbXkgJHR5cGUg
PSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29u
c2lkZXIgbGFzdCAiPyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAg
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9Cisg
ICAgICAgICMgUmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAi
b2JqZWN0W10iLgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly87CisgICAgICAgICRwYXJhbURhdGFO
b2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRWxsaXBzaXMoKTsKKyAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKCkp
OworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGRpZSAiVW5leHBl
Y3RlZCB0b2tlbiAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIHdoaWxlIGFwcGx5aW5nIHRoZSBydWxl
OiBBcmd1bWVudCAtPiBJbiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgT3B0aW9uYWwgVHlwZSBFbGxp
cHNpcyBPcHRpb25hbElkZW50aWZpZXIgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBh
cHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIGlmIChkZWZpbmVk
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QtPnsiQ29uc3RydWN0b3IifX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57
IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7CisgICAgICAgICRkYXRhTm9kZS0+
Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRuZXdE
YXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICBteSAlYXR0cmlidXRlcyA9ICV7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0
cnVjdG9yIn19OworICAgICAgICBteSBAYXR0cmlidXRlS2V5cyA9IGtleXMgKCVhdHRyaWJ1dGVz
KTsKKyAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZSA9ICRhdHRyaWJ1dGVLZXlzWzBdOworICAg
ICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskYXR0cmlidXRlc3skY29u
c3RydWN0b3JOYW1lfX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVk
Q29uc3RydWN0b3IifSA9ICRjb25zdHJ1Y3Rvck5hbWU7CisgICAgICAgICRkYXRhTm9kZS0+Y29u
c3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9CisgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CisKKzE7CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouY3BwCmluZGV4IGNiNjExOTdlZDFhOTcyNDY5NTdjZDZiOWU3ZGMwNGExZGQ5N2NjY2IuLmI1
OWNiYjNmMjAyMWY1NTdhMDY5NWRiYTZiYjlhOTJhMzQwODU3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmNwcApAQCAtNDI1LDkgKzQyNSw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24oaW50IG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICgh
aW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBpbXBsKCktPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxX
ZWJET01FeGNlcHRpb25Db2RlPihlYykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVz
dE9iajo6YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBA
IHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29u
c3QgV2ViRE9NU3RyaW5nJiBuZXdTdHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24sIGVjKTsKLSAgICB3ZWJET01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2Vw
dGlvbkNvZGU+KGVjKSk7CisgICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmlu
ZyBXZWJET01UZXN0T2JqOjpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IDM0YTgwNzU1MWUwNGI4YmZmNzAw
ODhiNTYwOWNlZmFlMjgxOGU3ZDIuLjdlMmU4OGZhMTQxOTY1M2IzMTI4MmJiMzVkMWMxNThjODY2
NjNkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0yMjksOCArMjI5
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBQUk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OOiB7Ci0gICAgICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24oKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3Jl
U2VsZi0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUp
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX1NFVFRF
Ul9FWENFUFRJT046IHsKQEAgLTIzOSw4ICsyMzgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQs
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9H
RVRURVJfRVhDRVBUSU9OOiB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgICAgICBjb3JlU2VsZi0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RG
OjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpLCBlYyk7CisgICAg
ICAgIGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmlu
Zzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgY2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjog
ewpAQCAtMTg1MiwxNyArMTg1MCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dp
dGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYp
OwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3Jl
OjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZh
bHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVE
ZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9y
LCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2Mu
bmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVl
KTsKIH0KIAogZ2xvbmcKQEAgLTE5MDEsMTkgKzE4OTQsMTQgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0
cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CiAgICAg
V1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUp
OwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVj
KSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMp
OwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0
ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlKTsKIH0K
IAogZ2NoYXIqCkBAIC0yMDA0LDcgKzE5OTIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93
aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAog
fQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
VGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMDE1LDEyICsyMDAzLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNl
cyhXZWJLaXRET01UZXN0T2JqKiBzZWwKICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6
OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsK
ICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAg
aWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rl
c2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21f
c3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQor
ICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1
ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCkBAIC0yMDQwLDcgKzIwMjMsNyBAQCB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVf
cmFpc2VzKFdlYktpdERPTQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRo
X3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUp
CiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMDUxLDEyICsyMDM0LDcgQEAgd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET00KICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwog
ICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAo
ZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhl
Yyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJp
bmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAg
aXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVy
dGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKgpAQCAtMjEwMiw3ICsyMDgwLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5k
X3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVl
LCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4
ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVy
bl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKQEAgLTIxMTMsMTIgKzIwOTEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICAgICAg
ICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJu
X2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVj
KSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMp
OwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0
ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oCmluZGV4IDlmYTlhYWRlZTNmZGY3MDE5NTNlMmVmZDA1ZmVjZjFm
YThiMDYwMTAuLjUxNjVjNjQ5M2RhMTQ1ODU3YWYwNTM1NDVhNzM1ZTY4MDk4ZmFjZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTkxOSwxMyArOTE5LDEyIEBAIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIEdFcnJvCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0
dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6
IEEgI2dsb25nCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwog
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVy
X2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRp
b24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKICAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtOTY0LDEz
ICs5NjMsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKICAqIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb246CkBAIC0x
MDUxLDEzICsxMDQ5LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgKiB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNl
bGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagot
ICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoK
ICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERP
TVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgpA
QCAtMTA3NCwxMyArMTA3MSwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Njcmlw
dF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICogd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRl
X3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dl
YktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJy
b3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRl
eHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0
T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3Jp
cHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGU6CkBAIC0xMTE4
LDEzICsxMTE0LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiAgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRl
X2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZh
bHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVf
cmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsK
IAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25f
Y29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX3dpdGhfc3BhY2VzX2F0dHJpYnV0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
aW5kZXggMjU1ZWI1NjBiZDJjYmY4NDM5OWY0NTFhOGQ1NGQ2NzU2ZWNjMzFjYi4uMmZhYjgxZWEz
Y2IxODhmMzc4ZjZjOTc3NzFhZDExMzg0OThkNDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEwODEsOSAr
MTA4MSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMpLCBlYyk7Ci0gICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0xMTAzLDkgKzExMDEsNyBAQCB2b2lk
IHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKHVzdHJpbmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkg
OiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpLCBlYyk7Ci0gICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbih1c3RyaW5nVG9TdHJpbmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUu
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CiB9CiAKIApAQCAtMTE1Myw5ICsxMTQ5LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc08KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzKGV4ZWMsIHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTExNjQsMTIg
KzExNTgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2IKICAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNP
YmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwog
ICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRv
VGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlw
dENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTExOTAsMTIgKzExODIsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICgh
c2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0
Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUp
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCA1M2U0NTk2NDMxNmI0ZGYzMmEzM2FiOGI2NWVm
NmRjMGYwYWRlODg5Li4wZjJjZDg3YmY4ZWNkZTU5ODgyODNjMGU3MWUyMWY5Njg1YjVkYmNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RPYmoubW0KQEAgLTM0OCw5ICszNDgsNyBAQAogLSAodm9pZClzZXRBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbjooaW50KW5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9y
KGVjKTsKKyAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbik7CiB9CiAKIC0gKGludClhdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAt
Mzc5LDkgKzM3Nyw3IEBACiAtICh2b2lkKXNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
OihOU1N0cmluZyAqKW5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFp
c2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIC0gKE5TU3RyaW5n
ICopc3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTQ1MCw5ICs0NDYsNyBAQAogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhj
b3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQog
CiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMKQEAgLTQ2OSw5ICs0NjMsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1Q
TC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJD
b3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUKQEAgLTUwMiw5ICs0OTQsNyBAQAog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7
CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUo
bmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNl
dFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMo
Y29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDUxM2RmMTA3NDAwYTkzMjkz
MzhjYmY4Yzc4NmNlNGIzNzZiMTU0MjEuLjI5ZTQ2OGEzMjViYmExN2ZhYmNmMGMwNmYyZTE0ODFk
NjZiNzQzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwKQEAgLTQ2LDcgKzQ2LDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAgICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJp
YnV0ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgdGVzdE9iakF0dHI7CiAKLSAgICAgICAgSlMs
IFY4CisgICAgICAgIC8vIEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19sY2ZpcnN0
IGV4Y2VwdGlvbmFsIGNhc2VzLgogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAg
ICAgICAgIFhNTE9iakF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAg
ICAgICAgY3JlYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCBhZGY1NTYyZDY1MDE5ZWMyOWQ3YjY5ZDk5ZDIy
MTI0Zjg1MGZhMDNhLi42MzUwMDE3OGU3ZmIwNGI3YzlkYzYzZGRjZWM2NmEzN2EzMTM2YjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcApAQCAtNDEzLDEwICs0MTMsNyBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMbwog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CiAgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5M
SUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0
SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAg
IHJldHVybjsKIH0KIApAQCAtNDU1LDEwICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQo
VjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChV
TkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5H
ZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
dik7CiAgICAgcmV0dXJuOwogfQogCkBAIC01NDgsMTMgKzU0MiwxMCBAQCBzdGF0aWMgdm9pZCB3
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3Rh
bmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRT
dGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyhzdGF0ZSwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAg
ICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAg
ICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpnZXRQ
dHIodikpOwogICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhyb3dFcnJv
cihzdGF0ZS5leGNlcHRpb24oKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybjsKQEAg
LTU3OSwxMyArNTcwLDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcy5f
c2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBW
OFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6
IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAo
IXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRy
KHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQcm94eTo6c2V0RE9N
RXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0
cih2KSk7CiAgICAgcmV0dXJuOwogfQogCkBAIC02NDMsMTYgKzYzMSwxMyBAQCBzdGF0aWMgdm9p
ZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
QXR0clNldHRlcih2OAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0
T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0
aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1
cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKICAgICBpZiAoIXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNl
dFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMo
c3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElL
RUxZKGVjKSkKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElz
b2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2
KSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0
YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154304</attachid>
            <date>2012-07-25 02:39:11 -0700</date>
            <delta_ts>2012-07-31 04:53:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120725183900.patch</filename>
            <type>text/plain</type>
            <size>101043</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y3NDRhZjQzYWRkNDQ2
ZjkyYzViNDcxNzIxMmQ5ZDAzYmFlYjQxZC4uMWRkZGViYjg3Zjk5NzllNWUyMWNlN2I0ZDdlZTAx
YjU1MWJiZjdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5NSBAQAorMjAxMi0wNy0xMSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAxMS9XRC1XZWJJREwtMjAxMTA3MTIvI2lkbC1ncmFtbWFyCisgICAgICAg
IFRoZSBncmFtbWFyIGFuZCB0aGUgb2xkIGdyYW1tYXIgd2VyZSB1cGxvYWRlZCB0byBidWdzLndl
YmtpdC5vcmcuCisKKyAgICAgICAgRmlyc3RseSB0ZW1wbGF0ZSBJREwgcGFyc2VyIHdhcyBnZW5l
cmF0ZWQgYnkgdXBsb2FkZWQgcHl0aG9uIHNjcmlwdCwKKyAgICAgICAgYW5kIG1vZGlmaWVkIHRv
IGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dHMgYXMgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4K
KyAgICAgICAgVG8gc2VwYXJhdGUgSURMIGZpbGVzJyBjaGFuZ2VzIGZyb20gdGhpcyBwYXRjaCwg
dGhlIGludGVybmFsIHZhcmlhYmxlOgorICAgICAgICAkYmFja3dhcmRDb21wYXRpYmxlTW9kZSBk
ZWZpbmVkIGluIElETFBhcnNlci5wbSBpcyB1c2VkLiBJZiBpdHMgdmFsdWUKKyAgICAgICAgaXMg
MSwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURMIGZpbGVzIGdlbmVyYXRlZCBieSBjdXJyZW50IFdl
YktpdCBJREwKKyAgICAgICAgZ3JhbW1hci4gSWYgMCwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURM
IGZpbGVzIHdob3NlIGV4dGVuZGVkIGF0dHJpYnV0ZXMKKyAgICAgICAgYXJlIG1vdmVkIHRvIHRo
ZSBsb2NhdGlvbiBzcGVjaWZpZWQgaW4gV2ViSURMLgorICAgICAgICBUbyBpbXBsZW1lbnQgdGhl
IG1vZGUsIHR3byBkaWZmZXJlbnQgV2ViSURMIGdyYW1tYXJzIHdlcmUgdXNlZCB0bworICAgICAg
ICBnZW5lYXJldGUgdGhpcyBJRExQYXJzZXIucG0uIFRoZSB0d28gZ2VuZXJhdGVkIHRlbXBhbGF0
ZSBwYXJzZXJzIHdlcmUKKyAgICAgICAgbWVyZ2VkIG1hbnVhbGx5LgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGVzdGVkIGJ5IGNvbXBhcmluZyB3aXRoIHNvdXJjZXMgZ2VuZXJhdGVkIGJ5Cisg
ICAgICAgIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0uCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKG5ldyk6CisgICAgICAgIChzaG91bGRUb2tl
blZhbHVlRXF1YWxzKToKKyAgICAgICAgKHNob3VsZFRva2VuVHlwZUVxdWFscyk6CisgICAgICAg
IChQYXJzZSk6CisgICAgICAgIEEgbWV0aG9kIHRvIHN0YXJ0IHBhcnNpbmcgYSBJREwgZmlsZS4g
QXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzIGFyZQorICAgICAgICB0aGUgc2FtZSBhcyB0aGUg
cHJldmlvdXMgSURMUGFyc2VyLnBtJ3MgUGFyc2UgbWV0aG9kLgorICAgICAgICAobmV4dFRva2Vu
KToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gc2VlIGEgbmV4dCB0b2tlbiwgYmVjYXVzZSBvZiBM
TCgxKS4KKyAgICAgICAgKGdldFRva2VuKToKKyAgICAgICAgUmV0dXJucyBjdXJyZW50IHRva2Vu
LCBhbmQgdXBkYXRlIG5leHQgYW5kIGN1cnJlbnQgdG9rZW4uCisgICAgICAgIChnZXRUb2tlbklu
dGVybmFsKToKKyAgICAgICAgQWNjb3JkaW5nIHRvIHRoZSByZWd1bGFyIGV4cHJlc3Npb25zIGRl
ZmluZWQgaW4gV2ViSURMIHNwZWMsIGV4dHJhY3RzCisgICAgICAgIG9uZSBuZXcgdG9rZW4gZnJv
bSBhIHRleHQgc3RyaW5nLiBUaGUgb3JkZXIgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAg
ICAgICAgdG8gYmUgdGVzdGVkIGlzIGltcG9ydGFudCwgaS5lLiAiMC4iIHNob3VsZCBiZSBjb25z
aWRlcmVkIGFzIGEgZmxvYXQKKyAgICAgICAgdG9rZW4sIGJ1dCBpZiBmaXJzdGx5IGNoZWNrcyB0
aGUgaW50ZWdlciByZWd1bGFyIGV4cHJlc3Npb24sICIwLiIgaXMKKyAgICAgICAgY29uc2lkZXJl
ZCBhcyAiMCIgYW5kICIuIi4KKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbnMpOgorICAgICAgICAo
cGFyc2VEZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlTm9ybWFsRGVmaW5pdGlvbik6CisgICAg
ICAgIChwYXJzZU1vZHVsZSk6CisgICAgICAgIE1vZGlmaWVkIHRvIGFjY2VwdCB0aGUgY2FzZTog
bWlzc2luZyAiOyIuCisgICAgICAgIChwYXJzZUludGVyZmFjZSk6CisgICAgICAgIEEgd3JhcHBl
ciBtZXRob2QgdG8gaW52b2tlIHBhcnNlSW50ZXJmYWNlTmV3IG9yIHBhcnNlSW50ZXJmYWNlT2xk
CisgICAgICAgIGRlcGVuZGluZyBvbiAkYmFja3dhcmRDb21wYXRpYmxlTW9kZS4KKyAgICAgICAg
KHBhcnNlSW50ZXJmYWNlTmV3KToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6Cisg
ICAgICAgIChwYXJzZUluaGVyaXRhbmNlKToKKyAgICAgICAgV2ViSURMIGRvZXNuJ3Qgc3VwcG9y
dCBtdWx0aXBsZSBwYXJlbnRzLCBidXQgU1ZHQWx0R2x5cGhFbGVtZW50IGhhcyB0d28KKyAgICAg
ICAgcGFyZW50cywgaS5lLiBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IGFuZCBTVkdVUklSZWZl
cmVuY2UuIFNvIGNoYW5nZXMKKyAgICAgICAgdGhlIG9yaWdpbmFsIGdyYW1tYXIgdG8gc3VwcG9y
dCBzdWNoIGEgSURMIGZpbGUuCisgICAgICAgIChwYXJzZUludGVyZmFjZU1lbWJlcnMpOgorICAg
ICAgICAocGFyc2VJbnRlcmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5KToK
KyAgICAgICAgQSB3cmFwcGVyIG1ldGhvZCB0byBpbnZva2UgcGFyc2VEaWN0aW9uYXJ5TmV3IG9y
IHBhcnNlRGljdGlvbmFyeU9sZAorICAgICAgICBkZXBlbmRpbmcgb24gJGJhY2t3YXJkQ29tcGF0
aWJsZU1vZGUuCisgICAgICAgIChwYXJzZURpY3Rpb25hcnlOZXcpOgorICAgICAgICAocGFyc2VE
aWN0aW9uYXJ5TWVtYmVycyk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlNZW1iZXIpOgorICAg
ICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgorICAg
ICAgICBBIHdyYXBwZXIgbWV0aG9kIHRvIGludm9rZSBwYXJzZUV4Y2VwdGlvbk5ldyBvciBwYXJz
ZUV4Y2VwdGlvbk9sZAorICAgICAgICBkZXBlbmRpbmcgb24gJGJhY2t3YXJkQ29tcGF0aWJsZU1v
ZGUuCisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk5ldyk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlv
bk1lbWJlcnMpOgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVt
ZW50c1N0YXRlbWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29u
c3RFeHByKToKKyAgICAgICAgKHBhcnNlQm9vbGVhbkxpdGVyYWwpOgorICAgICAgICAocGFyc2VB
dHRyaWJ1dGVPck9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRl
T3JPcGVyYXRpb24pOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICBBIHdyYXBw
ZXIgbWV0aG9kIHRvIGludm9rZSBwYXJzZUF0dHJpYnV0ZU5ldyBvciBwYXJzZUF0dHJpYnVlT2xk
CisgICAgICAgIGRlcGVuZGluZyBvbiAkYmFja3dhcmRDb21wYXRpYmxlTW9kZS4KKyAgICAgICAg
KHBhcnNlQXR0cmlidXRlTmV3KToKKyAgICAgICAgKHBhcnNlUmVhZE9ubHkpOgorICAgICAgICAo
cGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhlcml0c0dldHRlcik6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlcyk6CisgICAgICAgIChwYXJzZVNldFJhaXNlcyk6CisgICAgICAgIChwYXJzZU9w
ZXJhdGlvbik6CisgICAgICAgIChwYXJzZVF1YWxpZmllcnMpOgorICAgICAgICAocGFyc2VTcGVj
aWFscyk6CisgICAgICAgIChwYXJzZVNwZWNpYWwpOgorICAgICAgICAocGFyc2VPcGVyYXRpb25S
ZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKToKKyAgICAgICAgKHBhcnNl
UmFpc2VzKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uTGlzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50TGlzdCk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50cyk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnROZXcpOgorICAgICAgICAocGFyc2VJbik6
CisgICAgICAgIChwYXJzZU9wdGlvbmFsKToKKyAgICAgICAgKHBhcnNlRWxsaXBzaXMpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlcyk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlKToK
KyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKToKKyAgICAgICAgKHBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVSZXN0KToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Mik6
CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDMpOgorICAgICAgICBUaGVzZSBh
cmUgaW1wbGVtZW50ZWQgdG8gcGFyc2UgdGhlIHJlc3RyaWN0ZWQgIkV4dGVuZGVkQXR0cmlidXRl
IiwgaS5lLgorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZU5vQXJnLCBFeHRlbmRlZEF0dHJpYnV0
ZUFyZ0xpc3QsCisgICAgICAgIEV4dGVuZGVkQXR0cmlidXRlTmFtZWRBcmdMaXN0LCBFeHRlbmRl
ZEF0dHJpYnV0ZUlkZW50IGFuZAorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZVNjb3BlZE5hbWUu
IEhvd2V2ZXIsIHRoZXNlIHJ1bGVzIGRvbid0IHN1cHBvcnQKKyAgICAgICAgIlZhbHVlPTAiLCAi
VmFsdWU9QSZCIiwgYW5kICJWYWx1ZT1BfEIiLCBiZWNhdXNlIDAsIEEmQiwgYW5kIEF8QiBhcmUK
KyAgICAgICAgbmVpdGhlciBpZGVudGlmaWVycyBub3Igc2NvcGVkIG5hbWVzLiBTbyBtb2RpZmll
ZCB0byBzdXBwb3J0IHRoZXNlCisgICAgICAgIGV4dGVuZGVkIGF0dHJpYnV0ZS4KKyAgICAgICAg
KHBhcnNlVHlwZSk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZVR5cGUpOgorICAgICAgICAocGFy
c2VDb25zdFR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVPclN0cmluZ1R5cGUpOgorICAg
ICAgICAocGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKToKKyAgICAgICAgKHBhcnNlSW50ZWdlclR5
cGUpOgorICAgICAgICBBZGRlZCAiaW50IiB3aGljaCBpcyBub3QgZGVmaW5lZCBpbiB0aGUgV2Vi
SURMIHNwZWMsIGJlY2F1c2Ugc29tZSBvZgorICAgICAgICBJREwgZmlsZXMgdXNlICJpbnQiLCBl
LmcuIFRvdWNoLmlkbCwgQXJyYXlCdWZmZXIuaWRsLCBhbmQgc28gb24uCisgICAgICAgIChwYXJz
ZU9wdGlvbmFsTG9uZyk6CisgICAgICAgIChwYXJzZVR5cGVTdWZmaXgpOgorICAgICAgICAocGFy
c2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkpOgorICAgICAgICAocGFyc2VOdWxsKToKKyAg
ICAgICAgKHBhcnNlUmV0dXJuVHlwZSk6CisgICAgICAgIChwYXJzZVNjb3BlZE5hbWVMaXN0KToK
KyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZXMpOgorICAgICAgICAocGFyc2VTY29wZWROYW1lKToK
KyAgICAgICAgKHBhcnNlQWJzb2x1dGVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlUmVsYXRp
dmVTY29wZWROYW1lKToKKyAgICAgICAgKHBhcnNlU2NvcGVkTmFtZVBhcnRzKToKKyAgICAgICAg
KHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAocGFyc2VEZWZpbml0aW9uc09sZCk6
CisgICAgICAgIChwYXJzZURlZmluaXRpb25PbGQpOgorICAgICAgICAocGFyc2VNb2R1bGVPbGQp
OgorICAgICAgICAocGFyc2VJbnRlcmZhY2VPbGQpOgorICAgICAgICAocGFyc2VQYXJ0aWFsSW50
ZXJmYWNlT2xkKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNlTWVtYmVyc09sZCk6CisgICAgICAg
IChwYXJzZUludGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQp
OgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyc09sZCk6CisgICAgICAgIChwYXJzZUV4
Y2VwdGlvbk9sZCk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk1lbWJlcnNPbGQpOgorICAgICAg
ICAocGFyc2VDb25zdE9yT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT2xkKToK
KyAgICAgICAgKHBhcnNlU2V0R2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlR2V0UmFpc2VzT2xk
KToKKyAgICAgICAgKHBhcnNlR2V0UmFpc2VzT2xkMik6CisgICAgICAgIChwYXJzZVNldFJhaXNl
c09sZCk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50T2xkKToKKyAgICAgICAgVGhlc2UgcGFyc2Uu
Li5PbGQgYXJlIHVzZWQgdG8gcGFyc2UgdGhlIGN1cnJlbnQgV2ViS2l0IElETCBncmFtbWFyLgor
ICAgICAgICAoYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJET01UZXN0
T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJET01UZXN0T2Jq
OjpzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24pOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3Jh
aXNlcyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVf
YXR0cmlidXRlX3JhaXNlcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0U3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb246XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzOl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIHNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXM6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgor
ICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhhcyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJ
bnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzQXR0clNldHRlcik6CisgICAgICAgIFVwZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cywg
YmVjYXVzZSB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtIGdlbmVyYXRlcworICAgICAgICAic2V0
dGVyIHJhaXNlcyIgY29kZSAgd2hlbiBvbmx5ICJnZXR0ZXIgcmFpc2VzIiBvciAiZ2V0cmFpc2Vz
IiBpcworICAgICAgICBzcGVjaWZpZWQuCisKIDIwMTItMDctMjUgIFplbm8gQWxiaXNzZXIgIDx6
ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIERpc2FibGUgQ29weVRvVGV4dHVy
ZSBmb3IgR3JhcGhpY3NTdXJmYWNlTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNkNmM2YTJiOTFmOTNiZGVhNWMwMmI3NDk2MWJm
Yjg5ZDQxLi40OWI2OGRiYTU3NDZmNmRmMGFjNTQ2ZTg4YjczMjAzZDYyNjk2NzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjEsNDUxICsy
MSwxODU2IEBACiAKIHBhY2thZ2UgSURMUGFyc2VyOwogCit1c2UgQ2xhc3M6OlN0cnVjdDsKKwog
dXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAKIHVzZSBJUEM6Ok9wZW4yOwogdXNlIElETFN0
cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAKLXVzZSBjb25zdGFudCBNT0RFX1VOREVGICAg
ID0+IDA7ICMgRGVmYXVsdCBtb2RlLgordXNlIGNvbnN0YW50IFN0cmluZ1Rva2VuID0+IDA7Cit1
c2UgY29uc3RhbnQgSW50ZWdlclRva2VuID0+IDE7Cit1c2UgY29uc3RhbnQgRmxvYXRUb2tlbiA9
PiAyOwordXNlIGNvbnN0YW50IElkZW50aWZpZXJUb2tlbiA9PiAzOwordXNlIGNvbnN0YW50IE90
aGVyVG9rZW4gPT4gNDsKK3VzZSBjb25zdGFudCBFbXB0eVRva2VuID0+IDU7CisKK3N0cnVjdCgg
VG9rZW4gPT4geworICAgIHR5cGUgPT4gJyQnLCAjIHR5cGUgb2YgdG9rZW4KKyAgICB2YWx1ZSA9
PiAnJCcgIyB2YWx1ZSBvZiB0b2tlbgorfSk7CiAKLXVzZSBjb25zdGFudCBNT0RFX01PRFVMRSAg
PT4gMTA7ICMgJ21vZHVsZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1PREVfSU5URVJGQUNFICA9
PiAxMTsgIyAnaW50ZXJmYWNlJyBzZWN0aW9uCi11c2UgY29uc3RhbnQgTU9ERV9FWENFUFRJT04g
ID0+IDEyOyAjICdleGNlcHRpb24nIHNlY3Rpb24KK215ICRiZVF1aWV0ID0gMDsKK215ICRleGNl
cHRpb25Jc1RoZVNhbWVBc0ludGVyZmFjZSA9IDE7ICMgQWNjb3JkaW5nIHRvIHRoZSBzcGVjLCBl
eGNlcHRpb24gaXMgbm90IHRoZSBzYW1lIGFzIGludGVyZmFjZS4KK215ICRiYWNrd2FyZENvbXBh
dGlibGVNb2RlID0gMTsKIAotIyBIZWxwZXIgdmFyaWFibGVzCi1teSBAdGVtcG9yYXJ5Q29udGVu
dDsKK3N1YiBuZXcgeworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworICAgICRiZVF1aWV0ID0gc2hp
ZnQ7CiAKLW15ICRwYXJzZU1vZGU7Ci1teSAkcHJlc2VydmVkUGFyc2VNb2RlOworICAgIG15ICRl
bXB0eVRva2VuID0gVG9rZW4tPm5ldygpOworICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9r
ZW4pOworICAgICRlbXB0eVRva2VuLT52YWx1ZSgiZW1wdHkiKTsKIAotbXkgJGJlUXVpZXQ7ICMg
U2hvdWxkIG5vdCBkaXNwbGF5IGFueXRoaW5nIG9uIFNURE9VVD8KLW15ICRkb2N1bWVudDsgIyBX
aWxsIGhvbGQgdGhlIHJlc3VsdGluZyAnaWRsRG9jdW1lbnQnCi1teSAkcGFyZW50c09ubHk7ICMg
SWYgMSwgcGFyc2Ugb25seSBlbm91Z2ggdG8gcG9wdWxhdGUgcGFyZW50cyBsaXN0CisgICAgbXkg
JHNlbGYgPSB7CisgICAgICAgIERvY3VtZW50Q29udGVudCA9PiAiIiwKKyAgICAgICAgRW1wdHlU
b2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAor
ICAgICAgICBUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTGluZSA9PiAiIiwKKyAgICAg
ICAgTGluZU51bWJlciA9PiAxCisgICAgfTsKIAotc3ViIEluaXRpYWxpemVHbG9iYWxEYXRhCi17
Ci0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRj
bGFzczsKK30KIAotICAgICRwYXJzZU1vZGUgPSBNT0RFX1VOREVGOwotICAgICRwcmVzZXJ2ZWRQ
YXJzZU1vZGUgPSBNT0RFX1VOREVGOworc3ViIGFzc2VydFRva2VuVmFsdWUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR2YWx1ZSA9IHNo
aWZ0OwogCi0gICAgJGRvY3VtZW50ID0gMDsKLSAgICAkcGFyZW50c09ubHkgPSAwOworICAgIGRp
ZSAiTmV4dCB0b2tlbiBzaG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52
YWx1ZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT52YWx1ZSgpIGVx
ICR2YWx1ZTsKIH0KIAotIyBEZWZhdWx0IENvbnN0cnVjdG9yCi1zdWIgbmV3CitzdWIgYXNzZXJ0
VG9rZW5UeXBlCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRyZWZlcmVuY2Ug
PSB7IH07CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OwogCi0gICAgSW5pdGlhbGl6ZUdsb2JhbERhdGEoKTsKKyAgICBk
aWUgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0
b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBl
KCkgZXEgJHR5cGU7Cit9CiAKLSAgICAkYmVRdWlldCA9IHNoaWZ0Oworc3ViIGFzc2VydFVuZXhw
ZWN0ZWRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hp
ZnQ7CiAKLSAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJlZmVy
ZW5jZTsKKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tlbiAuICIgYXQgIiAuICRz
ZWxmLT57TGluZX07CiB9CiAKLSMgUmV0dXJucyB0aGUgcGFyc2VkICdpZGxEb2N1bWVudCcKIHN1
YiBQYXJzZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OwogICAgIG15ICRmaWxlTmFtZSA9IHNoaWZ0OwogICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CiAg
ICAgbXkgJHByZXByb2Nlc3NvciA9IHNoaWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0Owor
CisgICAgbXkgQGRlZmluaXRpb25zID0gKCk7CiAKICAgICBwcmludCAiIHwgKioqIFN0YXJ0aW5n
IHRvIHBhcnNlICRmaWxlTmFtZS4uLlxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgIG15IEBk
b2N1bWVudENvbnRlbnQgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAk
cHJlcHJvY2Vzc29yKTsKIAotICAgIG15ICRkYXRhQXZhaWxhYmxlID0gMDsKKyAgICBteSBAbGlu
ZXMgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29y
KTsKKyAgICAkc2VsZi0+e0xpbmV9ID0gJGxpbmVzWzBdOworICAgICRzZWxmLT57RG9jdW1lbnRD
b250ZW50fSA9IGpvaW4oJyAnLCBAbGluZXMpOwogCi0gICAgIyBTaW1wbGUgSURMIFBhcnNlciAo
dG0pCi0gICAgZm9yZWFjaCAoQGRvY3VtZW50Q29udGVudCkgewotICAgICAgICBteSAkbmV3UGFy
c2VNb2RlID0gJG9iamVjdC0+RGV0ZXJtaW5lUGFyc2VNb2RlKCRfKTsKKyAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICBldmFsIHsKKyAgICAgICAgbXkgJHJlc3VsdDsKIAotICAgICAgICBpZiAo
JG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAgICAgICAgICBpZiAoJGRhdGFBdmFp
bGFibGUgZXEgMCkgewotICAgICAgICAgICAgICAgICRkYXRhQXZhaWxhYmxlID0gMTsgIyBTdGFy
dCBub2RlIGJ1aWxkaW5nLi4uCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmICgk
YmFja3dhcmRDb21wYXRpYmxlTW9kZSkgeworICAgICAgICAgICAgJHJlc3VsdCA9ICRzZWxmLT5w
YXJzZURlZmluaXRpb25zT2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcmVz
dWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKICAgICAgICAgfQorICAgICAgICBwdXNo
KEBkZWZpbml0aW9ucywgQHskcmVzdWx0fSk7CiAKLSAgICAgICAgIyBVcGRhdGUgZGV0ZWN0ZWQg
ZGF0YSBzdHJlYW0gbW9kZS4uLgotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VO
REVGKSB7Ci0gICAgICAgICAgICAkcGFyc2VNb2RlID0gJG5ld1BhcnNlTW9kZTsKKyAgICAgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgp
ICE9IEVtcHR5VG9rZW4pIHsKKyAgICAgICAgICAgIGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5k
ICIgLiAkbmV4dC0+dmFsdWUoKTsKICAgICAgICAgfQorICAgIH07CisgICAgZGllICRAIC4gIiBp
biAkZmlsZU5hbWUiIGlmICRAOwogCi0gICAgICAgIHB1c2goQHRlbXBvcmFyeUNvbnRlbnQsICRf
KTsKLSAgICB9CisgICAgZGllICJObyBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIEBkZWZpbml0aW9u
czsKIAotICAgICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgcmVtYWluaW5nIHRvIHBhcnNl
Li4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIGFuZCAoJCN0ZW1wb3JhcnlD
b250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKLSAgICB9
CisgICAgbXkgJGRvY3VtZW50ID0gJGRlZmluaXRpb25zWzBdOworICAgIGRpZSAiTm8gZG9jdW1l
bnQgZm91bmQiIHVubGVzcyByZWYoJGRvY3VtZW50KSBlcSAiaWRsRG9jdW1lbnQiOwogCiAgICAg
cHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gCi0g
ICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOwogCisgICAgJGRvY3VtZW50LT5maWxl
TmFtZSgkZmlsZU5hbWUpOwogICAgIHJldHVybiAkZG9jdW1lbnQ7CiB9CiAKLXN1YiBQYXJzZU1v
ZHVsZQorc3ViIG5leHRUb2tlbgogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2Vs
Zi0+e05leHRUb2tlbn07Cit9CiAKLSAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJzZSBtb2R1
bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIGdldFRva2VuCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICAkc2VsZi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2VufTsKKyAgICAk
c2VsZi0+e05leHRUb2tlbn0gPSAkc2VsZi0+Z2V0VG9rZW5JbnRlcm5hbCgpOworICAgIHJldHVy
biAkc2VsZi0+e1Rva2VufTsKK30KIAotICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFy
eUNvbnRlbnQpOwotICAgICRkYXRhID1+IC8kSURMU3RydWN0dXJlOjptb2R1bGVTZWxlY3Rvci87
CitteSAkd2hpdGVzcGFjZVRva2VuUGF0dGVybiA9ICdeW1x0XG5cciBdKltcblxyXSc7CitteSAk
ZmxvYXRUb2tlblBhdHRlcm4gPSAnXigtPygoWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSsp
KFtFZV1bKy1dP1swLTldKyk/fFswLTldK1tFZV1bKy1dP1swLTldKykpJzsKK215ICRpbnRlZ2Vy
VG9rZW5QYXR0ZXJuID0gJ14oLT9bMS05XVswLTldKnwtPzBbWHhdWzAtOUEtRmEtZl0rfC0/MFsw
LTddKiknOworbXkgJHN0cmluZ1Rva2VuUGF0dGVybiA9ICdeKFwiW15cIl0qXCIpJzsKK215ICRp
ZGVudGlmaWVyVG9rZW5QYXR0ZXJuID0gJ14oW0EtWl9hLXpdWzAtOUEtWl9hLXpdKiknOworbXkg
JG90aGVyVG9rZW5QYXR0ZXJuID0gJ14oOjp8XC5cLlwufFteXHRcblxyIDAtOUEtWl9hLXpdKSc7
CiAKLSAgICBteSAkbW9kdWxlTmFtZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJzaW5n
IGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgJGRhdGFOb2RlLT5tb2R1bGUoJG1v
ZHVsZU5hbWUpOworc3ViIGdldFRva2VuSW50ZXJuYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworCisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHdoaXRlc3BhY2VUb2tl
blBhdHRlcm4vKSB7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLygkd2hp
dGVzcGFjZVRva2VuUGF0dGVybikvLzsKKyAgICAgICAgbXkgJHNraXBwZWQgPSAkMTsKKyAgICAg
ICAgJHNlbGYtPntMaW5lTnVtYmVyfSsrIHdoaWxlICgkc2tpcHBlZCA9fiBtL1xuL2cpOworICAg
ICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gL14oW15cblxyXSspLzsKKyAgICAgICAg
IyBMaW5lIGlzIHVzZWQgZm9yIGVycm9yIG91dHB1dC4KKyAgICAgICAgaWYgKGRlZmluZWQoJDEp
KSB7CisgICAgICAgICAgICAkc2VsZi0+e0xpbmV9ID0gJHNlbGYtPntMaW5lTnVtYmVyfSAuICI6
IiAuICQxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICJV
bmtub3duIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0g
PX4gcy9eKFtcdFxuXHIgXSspLy87CisgICAgaWYgKGxlbmd0aCgkc2VsZi0+e0RvY3VtZW50Q29u
dGVudH0pID09IDApIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAg
fQogCi0gICAgcHJpbnQgIiAgfC0tLS0+IE1vZHVsZTsgTkFNRSBcIiRtb2R1bGVOYW1lXCJcbiB8
LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OworICAgIG15ICR0b2tlbiA9IFRva2VuLT5uZXcoKTsK
KyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kZmxvYXRUb2tlblBhdHRlcm4v
KSB7CisgICAgICAgICR0b2tlbi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAgICAgJHRva2VuLT52
YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRmbG9hdFRv
a2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNl
bGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaW50ZWdlclRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHRva2VuLT50eXBlKEludGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEp
OworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaW50ZWdlclRva2VuUGF0
dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntE
b2N1bWVudENvbnRlbnR9ID1+IC8kc3RyaW5nVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9r
ZW4tPnR5cGUoU3RyaW5nVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJHN0cmluZ1Rva2VuUGF0dGVybi8vOwor
ICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENv
bnRlbnR9ID1+IC8kaWRlbnRpZmllclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50
eXBlKElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAg
ICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRva2VuUGF0dGVybi8v
OworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVu
dENvbnRlbnR9ID1+IC8kb3RoZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlw
ZShPdGhlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8vOworICAgICAgICBy
ZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0ICIg
LiAkc2VsZi0+e0xpbmV9OwogfQogCi1zdWIgZHVtcEV4dGVuZGVkQXR0cmlidXRlcworc3ViIHBh
cnNlRGVmaW5pdGlvbnMKIHsKLSAgICBteSAkcGFkU3RyID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJz
ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAo
KTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgICAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAo
JG5leHQtPnZhbHVlKCkgPX4gL14oZGljdGlvbmFyeXx0eXBlZGVmfG1vZHVsZXw6OnxcW3xpbnRl
cmZhY2V8ZXhjZXB0aW9ufHBhcnRpYWwpJC8pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0
aW9ucywgJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAZGVmaW5pdGlvbnM7
Cit9CiAKLSAgICBpZiAoISV7JGF0dHJzfSkgewotICAgICAgICByZXR1cm4gIiI7CitteSAkcGF0
dGVybkV4cGVjdHNFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAnXihkb3VibGV8dHlwZWRlZnxjYWxs
ZXJ8Ynl0ZXxET01TdHJpbmd8c2hvcnR8aW50fGV4Y2VwdGlvbnxvbWl0dGFibGV8ZmxvYXR8YXR0
cmlidXRlfHN0YXRpY3xyZWFkb25seXxkZWxldGVyfGRpY3Rpb25hcnl8Ojp8dW5zaWduZWR8b3B0
aW9uYWx8c2V0dGVyfGludGVyZmFjZXxzZXF1ZW5jZXxzdHJpbmdpZmllcnxtb2R1bGV8dm9pZHxn
ZXR0ZXJ8b2N0ZXR8bG9uZ3xcW3xjb25zdHxib29sZWFufGlufERhdGV8Y3JlYXRvcnxhbnl8b2Jq
ZWN0KSQnOworCitzdWIgcGFyc2VEZWZpbml0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsSW50
ZXJmYWNlKCk7CiAgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvJHBhdHRlcm5FeHBlY3RzRXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0LykpIHsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5w
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
Tm9ybWFsRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICBteSBA
dGVtcDsKLSAgICB3aGlsZSAoKG15ICRuYW1lLCBteSAkdmFsdWUpID0gZWFjaCgleyRhdHRyc30p
KSB7Ci0gICAgICAgIHB1c2goQHRlbXAsICIkbmFtZT0kdmFsdWUiKTsKK3N1YiBwYXJzZU5vcm1h
bERlZmluaXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlTW9kdWxlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZVR5cGVkZWYoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSkg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAuICJbIiAuIGpvaW4o
IiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBhcnNlTW9kdWxlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisgICAgbXkgJGRv
Y3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisKKyAgICBwcmludCAiIHwtIFRyeWluZyB0byBw
YXJzZSBtb2R1bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0OworCisgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJtb2R1bGUiKTsKKworICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7
CisKKyAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsK
KyAgICBteSAkZGVmaW5pdGlvbnMgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9ucygpOworICAgIHB1
c2goQHskZG9jdW1lbnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICRzZWxmLT5wYXJz
ZU9wdGlvbmFsU2VtaWNvbG9uKCk7CisKKyAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1F
IFwiIiAuICR0b2tlbi0+dmFsdWUoKSAuICJcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7
CisKKyAgICByZXR1cm4gJGRvY3VtZW50OwogfQogCi1zdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZXMKK3N1YiBwYXJzZUludGVyZmFjZQogewotICAgIG15ICRzdHIgPSBzaGlmdDsKLSAgICAkc3Ry
ID1+IHMvXFtccyooLiopXHMqXF0vJDEvZzsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIG15ICVhdHRycyA9ICgpOwor
ICAgIGlmICgkYmFja3dhcmRDb21wYXRpYmxlTW9kZSkgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlSW50ZXJmYWNlT2xkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUludGVyZmFjZU5ldygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cit9CiAK
LSAgICB3aGlsZSAoJHN0ciAhfiAvXlxzKiQvKSB7Ci0gICAgICAgICMgUGFyc2UgbmFtZQotICAg
ICAgICBpZiAoJHN0ciAhfiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgIGRpZSgiSW52
YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgIH0KLSAgICAgICAg
bXkgJG5hbWUgPSAkMTsKLSAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLQotICAg
ICAgICBpZiAoJHN0ciA9fiAvXlxzKj0vKSB7Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKj0v
LzsKLSAgICAgICAgICAgIGlmICgkbmFtZSBlcSAiTmFtZWRDb25zdHJ1Y3RvciIpIHsKLSAgICAg
ICAgICAgICAgICAjIFBhcnNlICc9JyBuYW1lICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAg
ICAgICAgICAgICBteSAkY29uc3RydWN0b3JOYW1lOwotICAgICAgICAgICAgICAgIGlmICgkc3Ry
ID1+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JO
YW1lID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZh
bGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICAgICAg
ICAgIyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAgICAgICAgICRz
dHIgPX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14p
XSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRzaWduYXR1cmUgPSAkMTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICRzaWduYXR1cmUgPX4gcy9eKC4qPylccyokLyQxLzsK
LSAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFt
ZSIgPT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gJHNpZ25hdHVyZX07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQg
ZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAg
ICAgICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rv
ck5hbWUsICJTaWduYXR1cmUiID0+ICIifTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBz
L15ccyosPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAjIFBhcnNlICc9
JyB2YWx1ZSAnLCc/Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyooW14sXSopLD8v
KSB7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAg
ICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAg
ICAgICAgICAkc3RyID1+IHMvXlxzKihbXixdKiksPy8vOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6
ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
IGVsc2lmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1
bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqXCgvLzsKLSAgICAgICAg
ICAgIGlmICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJz
eyRuYW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylc
cyokLyQxLzsKLSAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBh
dHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRz
dHIgPX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJycgfCAnLCcKLSAgICAgICAg
ICAgIGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJz
eyRuYW1lfSA9ICIiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkYXR0
cnN7JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworc3ViIHBhcnNlSW50ZXJmYWNlTmV3Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
c2hpZnQ7CisKKyAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKworICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisKKyAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAkZGF0YU5vZGUtPm5hbWUoJHRv
a2VuLT52YWx1ZSgpKTsKKyAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDApOworCisgICAgJHNl
bGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisKKyAgICBwdXNo
KEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisK
KyAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKwor
ICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygp
OworICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOwor
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworCisg
ICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMpOworICAgIGFw
cGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgcmV0dXJuICRkYXRhTm9kZTsKK30KKworc3ViIHBhcnNlUGFydGlhbEludGVyZmFj
ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5w
YXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFy
c2VJbmhlcml0YW5jZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6IikgeworICAg
ICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNjb3Bl
ZE5hbWVMaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlSW50ZXJm
YWNlTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1l
bWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgICAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gLyRwYXR0ZXJuRXhwZWN0c0V4dGVuZGVkQXR0cmli
dXRlTGlzdC8pKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICAgICBteSAkaW50ZXJm
YWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICAgICAgaWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgeworICAg
ICAgICAgICAgICAgIHB1c2goQGludGVyZmFjZU1lbWJlcnMsICRpbnRlcmZhY2VNZW1iZXIpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRz
dHInXG4iKTsKKyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJu
IFxAaW50ZXJmYWNlTWVtYmVyczsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3Qo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8c3RyaW5n
aWZpZXJ8Y2FsbGVyfGJ5dGV8dm9pZHxnZXR0ZXJ8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8
aW50fG9taXR0YWJsZXxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRvbmx5fGRlbGV0ZXJ8Ym9v
bGVhbnw6Onx1bnNpZ25lZHxzZXR0ZXJ8RGF0ZXxjcmVhdG9yfGFueXxvYmplY3R8c2VxdWVuY2Up
JC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbigk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnkKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgIHJldHVybiBcJWF0dHJzOworICAgIHJldHVybiAkYmFja3dhcmRDb21wYXRpYmxl
TW9kZT8gJHNlbGYtPnBhcnNlRGljdGlvbmFyeU9sZCgpIDogJHNlbGYtPnBhcnNlRGljdGlvbmFy
eU5ldygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKIH0KIAotc3ViIHBhcnNlUGFyYW1ldGVycwor
c3ViIHBhcnNlRGljdGlvbmFyeU5ldwogewotICAgIG15ICRuZXdEYXRhTm9kZSA9IHNoaWZ0Owot
ICAgIG15ICRtZXRob2RTaWduYXR1cmUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFy
eSIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRz
ZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5
TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlN
ZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWVtYmVycyA9ICgpOwor
CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4
dC0+dmFsdWUoKSA9fiAvJHBhdHRlcm5FeHBlY3RzRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LykpIHsK
KyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgIHB1c2goQG1lbWJlcnMsICRzZWxmLT5w
YXJzZURpY3Rpb25hcnlNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCkpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
XEBtZW1iZXJzOworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfG9iamVj
dHxib29sZWFufGJ5dGV8Ojp8dW5zaWduZWR8b2N0ZXR8YW55fERPTVN0cmluZ3xsb25nfHNob3J0
fGludHxEYXRlfGZsb2F0fHNlcXVlbmNlKSQvKSkgeworICAgICAgICAkc2VsZi0+cGFyc2VUeXBl
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZURlZmF1bHRWYWx1ZSgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRzIGF0IGNvbW1hcyBidXQg
b25seSBpZiB0aGUgY29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0cmlidXRlIGJyYWNrZXRz
LCBleHByZXNzZWQgaGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQgYnkgYSAnXScgd2l0aG91
dCBhIHByZWNlZGluZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVzIHRoYXQgYXR0
cmlidXRlcyBkb24ndCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/IVteW10qXF0p
LywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFtcykgewotICAgICAgICBt
eSAkbGluZSA9ICRfOworc3ViIHBhcnNlRGVmYXVsdFZhbHVlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+cGFyc2VDb25zdEV4cHIoKTsKKyAgICB9Cit9CiAKLSAgICAgICAgJGxpbmUgPX4gLyRJ
RExTdHJ1Y3R1cmU6OmludGVyZmFjZVBhcmFtZXRlclNlbGVjdG9yLzsKLSAgICAgICAgbXkgJHBh
cmFtRGlyZWN0aW9uID0gJDE7Ci0gICAgICAgIG15ICRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyA9
IChkZWZpbmVkKCQyKSA/ICQyIDogIiAiKTsgY2hvcCgkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICBteSAkcGFyYW1UeXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZVN1
ZmZpeCA9IGRlZmluZWQoJDQpID8gJDQgOiAiIjsKLSAgICAgICAgbXkgJHBhcmFtTmFtZSA9IChk
ZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbiki
KSk7CitzdWIgcGFyc2VFeGNlcHRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBteSAkaXNOdWxsYWJs
ZSA9ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworICAgIGlmICgkYmFja3dhcmRDb21wYXRpYmxl
TW9kZSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uT2xkKCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk5ldygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cit9CiAKLSAgICAgICAgbXkgJHBhcmFtRGF0YU5vZGUg
PSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5kaXJlY3Rpb24o
JHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHBhcmFtTmFt
ZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCRwYXJhbVR5cGUpOwotICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVz
KCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNO
dWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VFeGNlcHRpb25OZXcKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworCisgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJleGNlcHRpb24iKTsKKworICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOwogCi0gICAgICAgIG15ICRhcnJheVJlZiA9ICRuZXdEYXRh
Tm9kZS0+cGFyYW1ldGVyczsKLSAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkcGFyYW1EYXRhTm9k
ZSk7CisgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7
CiAKLSAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBQYXJhbTsgVFlQRSBcIiRwYXJhbVR5cGVcIiBO
QU1FIFwiJHBhcmFtTmFtZVwiIiAuIAotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRl
cygiXG4gIHwgICAgICAgICAgICAgICIsICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7ICAgICAgICAgIAorICAgICRkYXRhTm9kZS0+bmFt
ZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAg
cHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0p
OworCisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7
CisKKyAgICBteSAkZXhjZXB0aW9uTWVtYmVyczsKKyAgICBpZiAoJGV4Y2VwdGlvbklzVGhlU2Ft
ZUFzSW50ZXJmYWNlKSB7CisgICAgICAgICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNl
SW50ZXJmYWNlTWVtYmVycygpOworICAgIH0gZWxzZSB7CisgICAgICAgICRleGNlcHRpb25NZW1i
ZXJzID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOwogICAgIH0KKworICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworCisgICAgYXBwbHlNZW1i
ZXJMaXN0KCRkYXRhTm9kZSwgJGV4Y2VwdGlvbk1lbWJlcnMpOworICAgIGFwcGx5RXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgcmV0
dXJuICRkYXRhTm9kZTsKIH0KIAotc3ViIFBhcnNlSW50ZXJmYWNlCitzdWIgcGFyc2VFeGNlcHRp
b25NZW1iZXJzCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OwotICAgIG15ICRzZWN0aW9uTmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRhdGEgPSBq
b2luKCIiLCBAdGVtcG9yYXJ5Q29udGVudCk7Ci0KLSAgICAjIExvb2sgZm9yIGVuZC1vZi1pbnRl
cmZhY2UgbWFyawotICAgICRkYXRhID1+IC99Oy9nOwotICAgICRkYXRhID0gc3Vic3RyKCRkYXRh
LCBpbmRleCgkZGF0YSwgJHNlY3Rpb25OYW1lKSwgcG9zKCRkYXRhKSAtIGxlbmd0aCgkZGF0YSkp
OwotCi0gICAgJGRhdGEgPX4gcy9bXG5ccl0vIC9nOwotCi0gICAgIyBCZWdpbm5pbmcgb2YgdGhl
IHJlZ2V4cCBwYXJzaW5nIG1hZ2ljCi0gICAgaWYgKCRzZWN0aW9uTmFtZSBlcSAiaW50ZXJmYWNl
IiB8fCAkc2VjdGlvbk5hbWUgZXEgImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgcHJpbnQgIiB8LSBU
cnlpbmcgdG8gcGFyc2UgaW50ZXJmYWNlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKLQotICAgICAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9ICIiOwotICAgICAgICBteSAkaW50ZXJmYWNlRGF0YSA9ICIi
OwotCi0gICAgICAgICMgTWF0Y2ggaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQgZW5j
bG9zZWQgZGF0YS4uLgotICAgICAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNl
U2VsZWN0b3IvOwotCi0gICAgICAgIG15ICRpc0V4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICgk
MSBlcSAnZXhjZXB0aW9uJykgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxu
KSIpKTsKLSAgICAgICAgbXkgJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVk
KCQyKSA/ICQyIDogIiAiKTsgY2hvcCgkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAg
ICAgICAgJGludGVyZmFjZU5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlQmFzZSA9
IChkZWZpbmVkKCQ0KSA/ICQ0IDogIiIpOwotICAgICAgICAkaW50ZXJmYWNlRGF0YSA9IChkZWZp
bmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7
Ci0KLSAgICAgICAgIyBGaWxsIGluIGtub3duIHBhcnRzIG9mIHRoZSBkb21DbGFzcyBkYXRhc3Ry
dWN0dXJlIG5vdy4uLgotICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKCRpc0V4Y2VwdGlv
bik7Ci0gICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkaW50ZXJmYWNl
RXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBu
ZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5l
dyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
bmFtZSgiQ29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBw
YXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0
cnVjdG9yIn0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3Rv
ciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1
Y3RvcigkbmV3RGF0YU5vZGUpOwotICAgICAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0
dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0
YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsK
LSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9LT57IlNpZ25hdHVyZSJ9KTsKLSAgICAgICAgICAg
ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn17IkNvbnN0cnVjdG9yTmFtZSJ9OwotICAgICAg
ICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgQG1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAg
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gLyRwYXR0ZXJu
RXhwZWN0c0V4dGVuZGVkQXR0cmlidXRlTGlzdC8pKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Cisg
ICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkc2VsZi0+cGFyc2VFeGNlcHRpb25NZW1iZXIoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFz
dDsKICAgICAgICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30KIAotICAg
ICAgICAjIEluaGVyaXRhbmNlIGRldGVjdGlvbgotICAgICAgICBteSBAaW50ZXJmYWNlUGFyZW50
cyA9IHNwbGl0KC8sLywgJGludGVyZmFjZUJhc2UpOwotICAgICAgICBmb3JlYWNoKEBpbnRlcmZh
Y2VQYXJlbnRzKSB7Ci0gICAgICAgICAgICBteSAkbGluZSA9ICRfOwotICAgICAgICAgICAgJGxp
bmUgPX4gcy9ccyovL2c7CitzdWIgcGFyc2VUeXBlZGVmCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNl
bGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQog
Ci0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPnBhcmVudHM7Ci0gICAgICAg
ICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKLSAgICAgICAgfQorc3ViIHBhcnNlSW1wbGVt
ZW50c1N0YXRlbWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpIGVxICI6OiIpKSB7CisgICAgICAgICRzZWxmLT5wYXJz
ZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJpbXBsZW1lbnRzIik7CisgICAgICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUNvbnN0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKKworICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY29uc3QiKTsKKworICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5cGUoKSk7CiAKLSAgICAgICAgcmV0dXJuIGlm
ICRwYXJlbnRzT25seTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKIAotICAgICAg
ICAkaW50ZXJmYWNlRGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0gICAgICAgIG15IEBpbnRlcmZhY2VN
ZXRob2RzID0gc3BsaXQoLzsvLCAkaW50ZXJmYWNlRGF0YSk7CisgICAgJG5ld0RhdGFOb2RlLT5u
YW1lKCR0b2tlbi0+dmFsdWUoKSk7CiAKLSAgICAgICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVy
ZmFjZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIG5leHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAg
ICAgICAgICAgIGlmICgkbGluZSA9fiAvXFdhdHRyaWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAg
ICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOwor
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAg
ICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNlbGYtPnBhcnNlQ29uc3RFeHByKCkpOworICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworCisgICAgJG5ld0Rh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
cmV0dXJuICRuZXdEYXRhTm9kZTsKK30KKworc3ViIHBhcnNlQ29uc3RFeHByCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oZmFsc2V8dHJ1ZSkkLykgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQm9vbGVhbkxpdGVyYWwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJudWxsIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0
dXJuICJudWxsIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9h
dFRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBTdHJpbmdUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAgICAgICAgICBt
eSAkaXNTdGF0aWMgPSBkZWZpbmVkKCQxKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRl
VHlwZSA9IChkZWZpbmVkKCQyKSA/ICQyIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmli
dXRlcyA9IChkZWZpbmVkKCQzKSA/ICQzIDogIiAiKTsgY2hvcCgkYXR0cmlidXRlRXh0ZW5kZWRB
dHRyaWJ1dGVzKTsKK3N1YiBwYXJzZUJvb2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInRydWUiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICByZXR1cm4gInRydWUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZhbHNl
IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJmYWxzZSI7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OworfQogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFUeXBlID0gKGRlZmluZWQo
JDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAg
ICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAKLSAgICAgICAg
ICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdleHAg
bWF0Y2hpbmcKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAg
ICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3Iv
OwotICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAk
MSA6ICIiKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVN0cmluZ2lmaWVyQXR0cmlidXRlT3JPcGVy
YXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSA9fiAvXihyZWFkb25seXxhdHRyaWJ1dGUpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUF0dHJpYnV0ZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+
IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxET01TdHJpbmd8bG9uZ3xz
aG9ydHxpbnR8b21pdHRhYmxlfGZsb2F0fHN0YXRpY3xkZWxldGVyfG9iamVjdHxib29sZWFufDo6
fHVuc2lnbmVkfHNlcXVlbmNlfHNldHRlcnxEYXRlfGNyZWF0b3J8YW55KSQvKSkgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsK
K30KIAotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpzZXR0ZXJSYWlz
ZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJHNldHRlckV4Y2VwdGlvbiA9IChkZWZp
bmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlU3RyaW5naWZpZXJBdHRyaWJ1dGVPck9wZXJh
dGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkYXR0cmli
dXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygkaXNTdGF0
aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWdu
YXR1cmUoKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKHJlYWRvbmx5fGF0dHJpYnV0ZSkkLykgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8Ynl0ZXx2b2lk
fG9jdGV0fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxmbG9hdHxib29sZWFufDo6fHVuc2lnbmVk
fHNlcXVlbmNlfERhdGV8YW55fG9iamVjdCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQogCi0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJpYnV0ZURhdGFOYW1l
KTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkYXR0cmli
dXRlRGF0YVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGF0dHJpYnV0ZUV4dGVu
ZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAg
ICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0dHJpYnV0ZXM7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOworICAgIHJldHVybiAkYmFja3dh
cmRDb21wYXRpYmxlTW9kZT8gJHNlbGYtPnBhcnNlQXR0cmlidXRlT2xkKCkgOiAkc2VsZi0+cGFy
c2VBdHRyaWJ1dGVOZXcoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CiAKLSAgICAgICAgICAg
ICAgICBwcmludCAiICB8ICB8PiAgQXR0cmlidXRlOyBTVEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQ
RSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwiJGF0dHJpYnV0ZURhdGFOYW1lXCIgREFU
QSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VUIEVYQ0VQVElPTj8gXCIkZ2V0dGVyRXhj
ZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVyRXhjZXB0aW9uXCIiIC4KLSAgICAgICAg
ICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAg
ICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1
bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFyc2VBdHRyaWJ1dGVOZXcKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAg
ICAgICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAg
JHNldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRh
Tm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRpb24pOwot
ICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0
KC8sLywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZSAhfiAv
XlxzKigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0XHMrLykg
ewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VNZXRo
b2RTZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiOwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogCi0gICAgICAgICAgICAgICAgbXkg
JG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hv
cCgkbWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgICAgICBteSAkaXNTdGF0
aWMgPSBkZWZpbmVkKCQyKTsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kVHlwZSA9IChkZWZp
bmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7
Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZE5hbWUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRp
ZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAg
IG15ICRtZXRob2RTaWduYXR1cmUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBk
b21BdHRyaWJ1dGUoKTsKIAotICAgICAgICAgICAgICAgICgnJyA9fiAvXi8pOyAjIFJlc2V0IHZh
cmlhYmxlcyBuZWVkZWQgZm9yIHJlZ2V4cCBtYXRjaGluZworICAgIGlmICgkc2VsZi0+cGFyc2VS
ZWFkT25seSgpKSB7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmli
dXRlIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJhdHRyaWJ1
dGUiKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJhdHRyaWJ1dGUiKTsKKworICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21T
aWduYXR1cmUoKSk7CisgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBh
cnNlQXR0cmlidXRlVHlwZSgpKTsKKyAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgIG15
ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VHZXQoKTsKKyAgICBpZiAoZGVmaW5lZCAkZ2V0UmVmKSB7
CisgICAgICAgIG15ICVnZXRSZXN1bHQgPSAleyRnZXRSZWZ9OworICAgICAgICBwdXNoKEB7JG5l
d0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVzdWx0eyJnZXRyYWlzZXMifX0p
OworICAgIH0KKyAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHsk
c2VsZi0+cGFyc2VTZXRSYWlzZXMoKX0pOwogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJ
RExTdHJ1Y3R1cmU6OnJhaXNlc1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9k
RXhjZXB0aW9uID0gKGRlZmluZWQoJDEpID8gJDEgOiAiIik7CisgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CiAKLSAgICAgICAgICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIHJl
dHVybiAkbmV3RGF0YU5vZGU7Cit9CiAKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlz
U3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlUmVhZE9ubHkKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmVhZG9ubHkiKSB7CisgICAgICAgICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAK
LSAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8LSAgTWV0aG9kOyBTVEFUSUM/IFwiJGlzU3Rh
dGljXCIgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBcIiRtZXRob2ROYW1lXCIgRVhDRVBUSU9O
PyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAgICAgICAgICBkdW1wRXh0ZW5k
ZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgIiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJz
ZUdldAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0cyIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUluaGVyaXRzR2V0dGVyKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiZ2V0cmFpc2VzIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlR2V0UmFpc2VzKCk7CisgICAgfQorICAgIHJldHVybjsKK30KIAotICAgICAgICAgICAgICAg
ICRtZXRob2RFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0
YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsK
K3N1YiBwYXJzZUluaGVyaXRzR2V0dGVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAg
ICAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRtZXRob2RTaWduYXR1
cmUpOworICAgIG15ICRhdHRyID0ge307CisgICAgJGF0dHItPnsiaW5oZXJpdHMifSA9IDE7Cisg
ICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJh
eVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJh
eVJlZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAg
ICAgICAgIG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDog
IiAiKTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15
ICRjb25zdFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNv
dXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVm
aW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OwotICAgICAgICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBk
aWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXRzIik7CisgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICByZXR1
cm4gJGF0dHI7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9t
Q29uc3RhbnQoKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFt
ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRjb25zdFR5cGUpOwotICAg
ICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJGNvbnN0VmFsdWUpOwotICAgICAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVzKCRjb25zdEV4dGVuZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlR2V0UmFpc2VzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9
ICRkYXRhTm9kZS0+Y29uc3RhbnRzOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwg
JG5ld0RhdGFOb2RlKTsKKyAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImdldHJhaXNlcyIpOworICAgIG15ICRhdHRyID0ge307CisgICAgJGF0dHItPnsiaW5o
ZXJpdHMifSA9IDA7CisgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VFeGNl
cHRpb25MaXN0KCk7CisgICAgcmV0dXJuICRhdHRyOworfQogCi0gICAgICAgICAgICAgICAgcHJp
bnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQRSBcIiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0
TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KK3N1YiBwYXJzZVNldFJhaXNlcworeworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzZXRyYWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICBy
ZXR1cm4gW107Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfC0tLS0+IEludGVyZmFjZTsgTkFNRSBc
IiRpbnRlcmZhY2VOYW1lXCIiIC4KLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMo
IlxuICB8ICAgICAgICAgICAgICAgICAiLCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykg
LiAiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZU9wZXJhdGlvbgorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGRv
dWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxET01TdHJpbmd8bG9uZ3xzaG9ydHxp
bnR8b21pdHRhYmxlfGZsb2F0fHN0YXRpY3xkZWxldGVyfGJvb2xlYW58Ojp8dW5zaWduZWR8c2Vx
dWVuY2V8c2V0dGVyfERhdGV8Y3JlYXRvcnxhbnl8b2JqZWN0KSQvKSkgeworICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKworICAgICAgICAkc2VsZi0+cGFyc2VR
dWFsaWZpZXJzKCRuZXdEYXRhTm9kZSk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wZXJhdGlvblJl
c3QoJG5ld0RhdGFOb2RlKTsKKyAgICAgICAgZGllICJGb3VuZCB1bmRlZmluZWQgc2lnbmF0dXJl
IHdoaWxlIHBhcnNpbmcgT3BlcmF0aW9uLiIgdW5sZXNzIGRlZmluZWQoJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFO
b2RlOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBEZXRlcm1pbmVQYXJzZU1vZGUKK3N1
YiBwYXJzZVF1YWxpZmllcnMKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7ICAKLSAgICBteSAk
bGluZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2Rl
ID0gc2hpZnQ7CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9t
b2R1bGUvKSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8g
PX4gL2ludGVyZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9
IGVsc2lmICgkXyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBU
SU9OOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAic3RhdGljIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9taXR0YWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWxzKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3Rl
dHxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8ZmxvYXR8ZGVsZXRlcnxvYmplY3R8Ym9vbGVhbnw6
Onx1bnNpZ25lZHxhbnl8c2V0dGVyfERhdGV8Y3JlYXRvcnxzZXF1ZW5jZSkkLykpIHsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlU3BlY2lhbHMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgIHJl
dHVybiAkbW9kZTsKK3N1YiBwYXJzZVNwZWNpYWxzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gL14oY3JlYXRvcnxkZWxldGVyfHNldHRlcnxnZXR0ZXJ8Y2FsbGVyKSQvKSB7CisgICAg
ICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbHMo
KTsKKyAgICB9CiB9CiAKLSMgSW50ZXJuYWwgaGVscGVyCi1zdWIgUHJvY2Vzc1NlY3Rpb24KK3N1
YiBwYXJzZVNwZWNpYWwKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gIAotICAgIGlmICgk
cGFyc2VNb2RlIGVxIE1PREVfTU9EVUxFKSB7Ci0gICAgICAgIGRpZSAoIlR3byBtb2R1bGVzIGlu
IG9uZSBmaWxlISBGYXRhbCBlcnJvciFcbiIpIGlmICgkZG9jdW1lbnQgbmUgMCk7Ci0gICAgICAg
ICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVudCgpOwotICAgICAgICAkb2JqZWN0LT5QYXJzZU1v
ZHVsZSgkZG9jdW1lbnQpOwotICAgIH0gZWxzaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZB
Q0UgfHwgJHBhcnNlTW9kZSBlcSBNT0RFX0VYQ0VQVElPTikgewotICAgICAgICBteSAkbm9kZSA9
IG5ldyBkb21DbGFzcygpOwotICAgICAgICBteSAkc2VjdGlvbk5hbWUgPSAkcGFyc2VNb2RlIGVx
IE1PREVfSU5URVJGQUNFID8gImludGVyZmFjZSIgOiAiZXhjZXB0aW9uIjsKLSAgICAgICAgJG9i
amVjdC0+UGFyc2VJbnRlcmZhY2UoJG5vZGUsICRzZWN0aW9uTmFtZSk7Ci0gICAgCi0gICAgICAg
IGRpZSAoIk5vIG1vZHVsZSBzcGVjaWZpZWQhIEZhdGFsIEVycm9yIVxuIikgaWYgKCRkb2N1bWVu
dCBlcSAwKTsKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJGRvY3VtZW50LT5jbGFzc2VzOwotICAg
ICAgICBwdXNoKEAkYXJyYXlSZWYsICRub2RlKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAgICAg
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJjcmVhdG9yIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIi
KSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY2FsbGVyIikgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGJ5
dGV8dm9pZHxvY3RldHxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8ZmxvYXR8b2JqZWN0fGJvb2xl
YW58Ojp8dW5zaWduZWR8c2VxdWVuY2V8RGF0ZXxhbnkpJC8pKSB7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVJldHVyblR5cGUoKSk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCRzZWxmLT5wYXJzZU9wdGlvbmFsSWRlbnRpZmll
cigpKTsKKworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIigiKTsKIAotICAgIEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7CisgICAgICAgIHB1c2goQHsk
bmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpfSk7
CisKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIp
Iik7CisKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cmFpc2VzRXhjZXB0aW9uc30sIEB7
JHNlbGYtPnBhcnNlUmFpc2VzKCl9KTsKKworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKIH0KIAotMTsKK3N1
YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gIiI7
Cit9CisKK3N1YiBwYXJzZVJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJy
YWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1
YiBwYXJzZUV4Y2VwdGlvbkxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIo
IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgbXkgJHJlc3VsdCA9ICRz
ZWxmLT5wYXJzZVNjb3BlZE5hbWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gJHJlc3VsdDsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CisKK3N1YiBwYXJzZUFyZ3VtZW50TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52
YWx1ZSgpID1+IC9eKGRvdWJsZXxieXRlfG9jdGV0fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxc
W3xmbG9hdHxvYmplY3R8Ym9vbGVhbnw6Onx1bnNpZ25lZHxvcHRpb25hbHxpbnxhbnl8RGF0ZXxz
ZXF1ZW5jZSkkLykpIHsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1
bWVudCgpKTsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50
cygpfSk7CisgICAgfQorICAgIHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJn
dW1lbnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7
CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJz
ZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1YiBwYXJzZUFyZ3Vt
ZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJGJhY2t3YXJkQ29tcGF0
aWJsZU1vZGU/ICRzZWxmLT5wYXJzZUFyZ3VtZW50T2xkKCkgOiAkc2VsZi0+cGFyc2VBcmd1bWVu
dE5ldygpOworfQorCitzdWIgcGFyc2VBcmd1bWVudE5ldworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC8kcGF0dGVy
bkV4cGVjdHNFeHRlbmRlZEF0dHJpYnV0ZUxpc3QvKSkgeworICAgICAgICBteSAkcGFyYW1EYXRh
Tm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcygkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKSk7CisgICAg
ICAgICRwYXJhbURhdGFOb2RlLT5kaXJlY3Rpb24oJHNlbGYtPnBhcnNlSW4oKSk7CisgICAgICAg
ICRzZWxmLT5wYXJzZU9wdGlvbmFsKCk7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNl
VHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3QgIj8i
LgorICAgICAgICBpZiAoJHR5cGUgPX4gL14oLiopXD8kLykgeworICAgICAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAgICAgICAgfQorICAgICAgICAjIFJlbW92
ZSBhbGwgIj8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAg
ICAgICAgJHR5cGUgPX4gcy9cPy8vZzsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5
cGUpOworICAgICAgICAkc2VsZi0+cGFyc2VFbGxpcHNpcygpOworICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+bmFtZSgkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKSk7CisgICAgICAgIHJl
dHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUluCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgcmV0dXJuICJpbiI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlT3B0
aW9uYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3B0aW9uYWwiKSB7CisgICAg
ICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIH0KK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLi4uIikgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGJvb2xlYW58Ynl0
ZXw6Onx1bnNpZ25lZHxvY3RldHxhbnl8RE9NU3RyaW5nfGxvbmd8c2hvcnR8aW50fERhdGV8Zmxv
YXR8b2JqZWN0KSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uRmll
bGQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25GaWVs
ZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAo
JG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfG9iamVjdHxib29sZWFufGJ5dGV8Ojp8dW5zaWdu
ZWR8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8aW50fERhdGV8ZmxvYXR8YW55KSQvKSkgewor
ICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKworICAgICAgICAkbmV3RGF0YU5vZGUt
PnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+dHlwZSgkc2VsZi0+cGFyc2VBdHRyaWJ1dGVUeXBlKCkpOworICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9r
ZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1
cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMgPSB7fTsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7
CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAkYXR0ciA9ICRzZWxmLT5w
YXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7CisgICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0
dHJ9KSB7CisgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAg
ICAgIH0KKyAgICAgICAgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoKTsK
KyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0pIHsKKyAgICAgICAgICAgICRhdHRy
cy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iKTsKKyAgICB9CisgICAgcmV0dXJu
ICRhdHRyczsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMgPSB7fTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAg
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIG15ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGUyKCk7CisgICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7Cisg
ICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKwor
ICAgICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAgICAg
ICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGF0dHJzLT57JGtl
eX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7
Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJl
c3QoJHRva2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICdd
JykgeworICAgICAgICByZXR1cm4ge307CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZTIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQor
ICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgIG15ICRhdHRy
cyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgJGF0dHJzLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAg
ICByZXR1cm4gJGF0dHJzOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7
CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7CisgICAgICAgIHJldHVybiAkYXR0
cnM7CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKKyAgICAgICAg
JGF0dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGF0dHJzLT57JG5h
bWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAgICByZXR1cm4gJGF0dHJzOworfQor
CitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJl
c3QzKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElu
dGVnZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0
cmlidXRlUmVzdDMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIiYiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBt
eSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybiAkbmFtZSAuICIm
IiAuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9e
KFx8KSQvKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9r
ZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybiAkbmFtZSAuICJ8IiAuICR0b2tl
bi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAg
ICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
JGF0dHItPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgIHJl
dHVybiAkYXR0cjsKKyAgICB9CisgICAgcmV0dXJuICRuYW1lOworfQorCitzdWIgcGFyc2VUeXBl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcXVlbmNlIikgeworICAgICAgICAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI8Iik7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj4i
KTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU51bGwoKSkgeworICAgICAgICAgICAgcmV0dXJu
ICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPj8iOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgcmV0dXJuICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPiI7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKGRvdWJsZXxvYmplY3R8Ym9vbGVhbnxieXRlfDo6fHVuc2lnbmVkfG9jdGV0fERP
TVN0cmluZ3xsb25nfHNob3J0fGludHxEYXRlfGZsb2F0fGFueSkkLykpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0
ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEB0eXBlcyA9ICgpOworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKGRvdWJsZXxib29sZWFufGJ5dGV8dW5zaWduZWR8b2N0ZXR8RE9NU3RyaW5nfGxvbmd8
c2hvcnR8aW50fGZsb2F0KSQvKSB7CisgICAgICAgIHB1c2goQHR5cGVzLCRzZWxmLT5wYXJzZVBy
aW1pdGl2ZU9yU3RyaW5nVHlwZSgpKTsKKyAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgIHB1c2goQHR5cGVzLCAib2JqZWN0Iik7CisgICAgICAgIHB1
c2goQHR5cGVzLCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAgICAgICByZXR1cm4g
am9pbignJywgQHR5cGVzKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJEYXRl
IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcHVzaChAdHlwZXMsICJE
YXRlIik7CisgICAgICAgIHB1c2goQHR5cGVzLCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0p
OworICAgICAgICByZXR1cm4gam9pbignJywgQHR5cGVzKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJhbnkiKSB7CisgICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICBwdXNoKEB0eXBlcywgImFueSIpOworICAgICAgICBwdXNoKEB0eXBlcywgQHskc2VsZi0+cGFy
c2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKX0pOworICAgICAgICByZXR1cm4gam9pbign
JywgQHR5cGVzKTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpIGVxICI6OiIpKSB7CisgICAgICAgIHB1c2goQHR5cGVz
LCAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCkpOworICAgICAgICBwdXNoKEB0eXBlcywgQHskc2Vs
Zi0+cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OworfQorCitzdWIgcGFyc2VDb25zdFR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihkb3VibGV8Ym9vbGVhbnxieXRlfHVuc2lnbmVkfG9jdGV0fERPTVN0cmluZ3xsb25nfHNo
b3J0fGludHxmbG9hdCkkLykgeworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVByaW1p
dGl2ZU9yU3RyaW5nVHlwZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlTnVsbCgpKSB7Cisg
ICAgICAgICAgICByZXR1cm4gJHR5cGUgLiAiPyI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
ICR0eXBlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlUHJpbWl0aXZlT3JTdHJpbmdUeXBlCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgPX4gL14obG9uZ3x1bnNpZ25lZHxzaG9ydHxpbnQpJC8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJieXRlIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgcmV0dXJuICJieXRlIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvY3Rl
dCIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAib2N0ZXQi
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZsb2F0IikgeworICAgICAgICAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJmbG9hdCI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiZG91YmxlIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAg
IHJldHVybiAiRE9NU3RyaW5nIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gInVuc2lnbmVkICIgLiAkc2VsZi0+cGFy
c2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14obG9u
Z3xzaG9ydHxpbnQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVnZXJUeXBl
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCkpOworfQorCitzdWIgcGFyc2VJbnRlZ2VyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKHNob3J0fGludCkkLykgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJsb25nIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygpKSB7CisgICAgICAgICAgICBy
ZXR1cm4gImxvbmcgbG9uZyI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJsb25nIjsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CisKK3N1YiBwYXJzZU9wdGlvbmFsTG9uZworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJsb25nIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgcGFyc2VUeXBlU3VmZml4Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAc3VmZml4ID0gKCk7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7Cisg
ICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iKTsKKyAgICAgICAgcHVzaChAc3VmZml4LCAiW10iKTsK
KyAgICAgICAgcHVzaChAc3VmZml4LCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKX0pOworICAg
ICAgICByZXR1cm4gXEBzdWZmaXg7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
PyIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHB1c2goQHN1ZmZpeCwg
Ij8iKTsKKyAgICAgICAgcHVzaChAc3VmZml4LCBAeyRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFy
dGluZ1dpdGhBcnJheSgpfSk7CisgICAgICAgIHJldHVybiBcQHN1ZmZpeDsKKyAgICB9CisgICAg
cmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBzdWZmaXggPSAoKTsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIp
IHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICBwdXNoKEBzdWZmaXgsICJb
XSIpOworICAgICAgICBwdXNoKEBzdWZmaXgsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7
CisgICAgfQorICAgIHJldHVybiBcQHN1ZmZpeDsKK30KKworc3ViIHBhcnNlTnVsbAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgcGFy
c2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInZvaWQiKSB7Cisg
ICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gInZvaWQiOworICAgIH0K
KyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZh
bHVlKCkgPX4gL14oZG91YmxlfG9iamVjdHxib29sZWFufGJ5dGV8Ojp8dW5zaWduZWR8b2N0ZXR8
YW55fERPTVN0cmluZ3xsb25nfHNob3J0fGludHxEYXRlfGZsb2F0fHNlcXVlbmNlKSQvKSkgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlU2NvcGVk
TmFtZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4p
IHx8ICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSkgeworICAgICAgICBteSBAbmFtZXMgPSAoKTsK
KyAgICAgICAgcHVzaChAbmFtZXMsICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKSk7CisgICAgICAg
IHB1c2goQG5hbWVzLCBAeyRzZWxmLT5wYXJzZVNjb3BlZE5hbWVzKCl9KTsKKyAgICAgICAgcmV0
dXJuIFxAbmFtZXM7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VTY29wZWROYW1lcworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAg
ICBwdXNoKEBuYW1lcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAbmFt
ZXM7Cit9CisKK3N1YiBwYXJzZVNjb3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiOjoiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBYnNvbHV0ZVNjb3BlZE5h
bWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisK
K3N1YiBwYXJzZUFic29sdXRlU2NvcGVkTmFtZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICI6OiIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0
b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICI6OiIgLiAkdG9rZW4tPnZh
bHVlKCkgLiAkc2VsZi0+cGFyc2VTY29wZWROYW1lUGFydHMoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVJl
bGF0aXZlU2NvcGVkTmFtZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZVBhcnRzKCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OworfQorCitzdWIgcGFyc2VTY29wZWROYW1lUGFydHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBuYW1lcyA9ICgpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjo6
IikgeworICAgICAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5
cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAgICAgcHVzaChAbmFtZXMsICc6
OicpOworICAgICAgICAgICAgcHVzaChAbmFtZXMsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biBqb2luKCcnLCBAbmFtZXMpOworfQorCitzdWIgcGFyc2VPcHRpb25hbFNlbWljb2xvbgorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAgICAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICB9Cit9CisKK3N1YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKyAgICBteSAkbWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVt
IChAeyRtZW1iZXJzfSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRl
IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsK
KyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEg
ImRvbUNvbnN0YW50IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRz
fSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVm
KCRpdGVtKSBlcSAiZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2Rl
LT5mdW5jdGlvbnN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAg
fQorfQorCitzdWIgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsK
KyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAg
ICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVm
aW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAg
ICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qt
PnsiTmFtZWRDb25zdHJ1Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlz
ICglYXR0cmlidXRlcyk7CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRl
S2V5c1swXTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0
dHJpYnV0ZXN7JGNvbnN0cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAk
ZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisjIEZv
ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisKK3N1YiBwYXJzZURlZmluaXRpb25zT2xkCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVl
KCkgPX4gL14oZGljdGlvbmFyeXx0eXBlZGVmfG1vZHVsZXw6OnxpbnRlcmZhY2V8ZXhjZXB0aW9u
fHBhcnRpYWwpJC8pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgJHNlbGYtPnBh
cnNlRGVmaW5pdGlvbk9sZCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAZGVmaW5pdGlvbnM7Cit9CisKK3N1YiBw
YXJzZURlZmluaXRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlh
bCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxJbnRlcmZhY2VPbGQoKTsK
KyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKGRpY3Rpb25hcnl8dHlwZWRlZnxleGNlcHRpb258bW9kdWxlfGlu
dGVyZmFjZXw6OikkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5vcm1hbERlZmlu
aXRpb24oKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZU1vZHVsZU9sZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBwcmludCAiIHwt
IFRyeWluZyB0byBwYXJzZSBtb2R1bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0OworCisgICAgbXkg
JGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmli
dXRlTGlzdCgpOworCisgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgJHNl
bGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisKKyAgICAkZG9jdW1l
bnQtPm1vZHVsZSgkdG9rZW4tPnZhbHVlKCkpOworCisgICAgbXkgJGRlZmluaXRpb25zID0gJHNl
bGYtPnBhcnNlRGVmaW5pdGlvbnNPbGQoKTsKKyAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2Vz
fSwgQHskZGVmaW5pdGlvbnN9KTsKKworICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAifSIpOworICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsU2VtaWNvbG9uKCk7
CisKKyAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwiIiAuICR0b2tlbi0+dmFsdWUo
KSAuICJcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CisKKyAgICByZXR1cm4gJGRvY3Vt
ZW50OworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiKTsKKworICAgIG15ICRk
YXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKworICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworCisgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7
CisgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigwKTsKKyAgICBwdXNoKEB7JGRhdGFOb2RlLT5w
YXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisKKyAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKworICAgIG15ICRpbnRlcmZh
Y2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyc09sZCgpOworCisgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisKKyAgICBhcHBseU1l
bWJlckxpc3QoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTWVtYmVycyk7CisgICAgYXBwbHlFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICBy
ZXR1cm4gJGRhdGFOb2RlOworfQorCitzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNlT2xkCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7
CisgICAgICAgICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnNPbGQoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJzT2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSBAaW50ZXJmYWNlTWVtYmVycyA9ICgpOworCisgICAgd2hpbGUg
KDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlm
ICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihkb3VibGV8Y2FsbGVyfGJ5dGV8dm9pZHxnZXR0ZXJ8b2N0ZXR8Y29uc3R8RE9NU3RyaW5n
fGxvbmd8c2hvcnR8aW50fFxbfG9taXR0YWJsZXxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRv
bmx5fGRlbGV0ZXJ8b2JqZWN0fGJvb2xlYW58Ojp8dW5zaWduZWR8YW55fHNldHRlcnxEYXRlfGNy
ZWF0b3J8c2VxdWVuY2UpJC8pKSB7CisgICAgICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyID0g
JHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyT2xkKCk7CisgICAgICAgICAgICBpZiAoZGVmaW5l
ZCAkaW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAgICAgICAgICAgcHVzaChAaW50ZXJmYWNlTWVt
YmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGludGVy
ZmFjZU1lbWJlcnM7Cit9CisKK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlck9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ocmVhZG9ubHl8YXR0cmlidXRlKSQvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPbGQoKTsKKyAgICB9CisgICAgaWYgKCgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9e
KGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxjb25zdHxET01TdHJpbmd8bG9u
Z3xzaG9ydHxpbnR8XFt8b21pdHRhYmxlfGZsb2F0fHN0YXRpY3xkZWxldGVyfGJvb2xlYW58Ojp8
dW5zaWduZWR8b3B0aW9uYWx8c2V0dGVyfERhdGV8Y3JlYXRvcnxhbnl8b2JqZWN0fHNlcXVlbmNl
KSQvKSkgeworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25z
dE9yT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlRGlj
dGlvbmFyeU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRp
Y3Rpb25hcnkiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50
aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAg
ICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyc09sZCgpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7
Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJzT2xkCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91
YmxlfGJvb2xlYW58Ynl0ZXw6Onx1bnNpZ25lZHxvY3RldHxzZXF1ZW5jZXxET01TdHJpbmd8bG9u
Z3xzaG9ydHxpbnR8RGF0ZXxmbG9hdHxhbnl8b2JqZWN0KSQvKSkgeworICAgICAgICAkc2VsZi0+
cGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKCk7CisgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25h
cnlNZW1iZXJzT2xkKCk7CisgICAgfQorfQorCitzdWIgcGFyc2VFeGNlcHRpb25PbGQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7
CisKKyAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2Vw
dGlvbiIpOworICAgIAorICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKworICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICRkYXRhTm9k
ZS0+aXNFeGNlcHRpb24oMSk7CisgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNl
bGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworCisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisKKyAgICBteSAkZXhjZXB0aW9uTWVtYmVyczsKKyAg
ICBpZiAoJGV4Y2VwdGlvbklzVGhlU2FtZUFzSW50ZXJmYWNlKSB7CisgICAgICAgICRleGNlcHRp
b25NZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyc09sZCgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVt
YmVyc09sKCk7CisgICAgfQorCisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ9Iik7CisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7Iik7CisKKyAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9u
TWVtYmVycyk7CisgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICByZXR1cm4gJGRhdGFOb2RlOworfQorCitzdWIgcGFy
c2VFeGNlcHRpb25NZW1iZXJzT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBA
bWVtYmVycyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8b2JqZWN0fGJvb2xlYW58Ynl0
ZXw6Onx1bnNpZ25lZHxvY3RldHxET01TdHJpbmd8bG9uZ3xzaG9ydHxpbnR8RGF0ZXxjb25zdHxm
bG9hdHxhbnkpJC8pKSB7CisgICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkc2VsZi0+cGFyc2VF
eGNlcHRpb25NZW1iZXJPbGQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG1lbWJlcnM7Cit9CisKK3N1YiBwYXJz
ZUNvbnN0T3JPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKGRvdWJsZXxjYWxsZXJ8Ynl0ZXx2b2lkfGdldHRlcnxvY3RldHxET01TdHJpbmd8
bG9uZ3xzaG9ydHxpbnR8b21pdHRhYmxlfGZsb2F0fHN0YXRpY3xkZWxldGVyfG9iamVjdHxib29s
ZWFufDo6fHVuc2lnbmVkfHNlcXVlbmNlfHNldHRlcnxEYXRlfGNyZWF0b3J8YW55KSQvKSkgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICRuZXh0LT52YWx1ZSgp
IC4gIiB3aGlsZSBhcHBseWluZyB0aGUgcnVsZTogQ29uc3RPck9wZXJhdGlvbiAtPiBDb25zdHxP
cGVyYXRpb24gYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZU9s
ZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ocmVhZG9ubHl8YXR0cmlidXRl
KSQvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKwor
ICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0KKwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJp
YnV0ZSIpOworCisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PnR5cGUoJHNlbGYtPnBhcnNlQXR0cmlidXRlVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisKKyAgICAgICAgJHNl
bGYtPnBhcnNlU2V0R2V0UmFpc2VzKCRuZXdEYXRhTm9kZSk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm4gJG5l
d0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlU2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgewor
ICAgICAgICAkc2VsZi0+cGFyc2VTZXRSYWlzZXNPbGQoJGRhdGFOb2RlKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlR2V0UmFpc2VzT2xkMigkZGF0YU5vZGUpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXig7fGdldHRlcikkLykgeworICAgICAgICAk
c2VsZi0+cGFyc2VHZXRSYWlzZXNPbGQoJGRhdGFOb2RlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30K
Kworc3ViIHBhcnNlR2V0UmFpc2VzT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJyYWlzZXMiKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Z2V0dGVyRXhjZXB0
aW9uc30sIEB7JHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpfSk7CisgICAgfQorfQorCitzdWIg
cGFyc2VHZXRSYWlzZXNPbGQyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0
dGVyIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAicmFpc2VzIik7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9
LCBAeyRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKX0pOworICAgIH0KK30KKworc3ViIHBhcnNl
U2V0UmFpc2VzT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlz
ZXMiKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7JHNl
bGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBw
YXJzZUFyZ3VtZW50T2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfGJ5dGV8b2N0ZXR8RE9NU3Ry
aW5nfGxvbmd8c2hvcnR8aW50fFxbfGZsb2F0fG9iamVjdHxib29sZWFufDo6fHVuc2lnbmVkfG9w
dGlvbmFsfGlufGFueXxEYXRlfHNlcXVlbmNlKSQvKSkgeworICAgICAgICBteSAkcGFyYW1EYXRh
Tm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZGly
ZWN0aW9uKCRzZWxmLT5wYXJzZUluKCkpOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlT3B0aW9uYWwoKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAi
PyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVt
b3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgor
ICAgICAgICAkdHlwZSA9fiBzL1w/Ly87CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0
eXBlKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0
YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKCkpOworICAgICAgICBy
ZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCisxOworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAppbmRl
eCAwMTNmOTA5N2ZjYTI1OWI1NWI4ZTgzMzI2OWZkZjNiYTkzMWU5MWQ1Li4zMDRmYTA3ZmRlZTI3
N2I1MDQwMjgwNDU2ZDJmZDlkNjUxYTk5NGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKQEAgLTQy
NSw5ICs0MjUsNyBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKGludCBuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikKICAgICBpZiAoIWltcGwoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
aW1wbCgpLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbiwgZWMpOwotICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3RhdGljX2Nhc3Q8V2ViRE9NRXhjZXB0
aW9uQ29kZT4oZWMpKTsKKyAgICBpbXBsKCktPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5l
d0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogaW50IFdlYkRPTVRlc3RPYmo6OmF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKCkgY29uc3QKQEAgLTQ2NCw5ICs0NjIsNyBAQCB2b2lkIFdlYkRP
TVRlc3RPYmo6OnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKGNvbnN0IFdlYkRPTVN0
cmluZyYgbmV3U3RyaQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNldFN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7
Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihl
YykpOworICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBXZWJET01TdHJpbmcgV2ViRE9NVGVz
dE9iajo6c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCA0N2NiZTZjZWE3OTMzZGZlMzdkMTliNDJhODE4Mjll
N2JmY2ZiZjY5Li5iYmZmZjQwNGQyMzA5NTc1NjZlYTQyODM5M2UxYzkxODM3NTY1MWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMjMwLDggKzIzMCw3IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9B
VFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNldEF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9O
OiB7CkBAIC0yNDAsOCArMjM5LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQ
VElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAg
Y29yZVNlbGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpm
cm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3JlU2Vs
Zi0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZyb21VVEY4
KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046IHsKQEAgLTE4NjYs
MTcgKzE4NjQsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9l
eGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSwgZWMpOwot
ICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24g
ZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19m
cm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAg
IH0KKyAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSk7CiB9CiAKIGds
b25nCkBAIC0xOTE1LDE5ICsxOTA4LDE0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmlu
Z19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiB9CiAK
IHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4
Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJv
cioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkK
IHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwogICAgIFdURjo6U3RyaW5n
IGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRTdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIGdjaGFyKgpA
QCAtMjAxOCw3ICsyMDA2LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwKIH0KIAogdm9pZAot
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNl
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9y
KiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjAyOSwxMiArMjAxNyw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9N
VGVzdE9iaiogc2VsCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVl
KTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewot
ICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAg
ICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VC
S0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBX
ZWJLaXRET01UZXN0T2JqKgpAQCAtMjA1NCw3ICsyMDM3LDcgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET00KIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwpAQCAtMjA2NSwxMiArMjA0OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dp
dGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiAg
ICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAg
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAg
ICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRf
RE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsK
IH0KIAogV2ViS2l0RE9NVGVzdE9iaioKQEAgLTIxMTYsNyArMjA5NCw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2Ny
aXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29u
dGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMTI3
LDEyICsyMTA1LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUKICAgICAgICAgY29udmVydGVk
VmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNv
bnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZl
cnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaAppbmRleCA0OGQ3M2ZmZWFjZGM4MWQ3YWI1YTMyNzgxOWE3MzllZGM0Yzk1YTU0Li4x
NWUwMWIxMjE1M2ZhZDgzOTIyZDg0YjY5NmU4YzUzMmIzMTI0M2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oCkBAIC05MTksMTMgKzkxOSwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBH
RXJybwogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRp
b246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnbG9uZwot
ICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24o
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTk2NCwxMyArOTYzLDEyIEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlv
bihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJp
bmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagogICogQHZhbHVlOiBBICNnY2hhcgotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
c3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29i
al9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfc3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtMTA1MSwxMyArMTA0
OSwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICogd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJL
aXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0
cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2
YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3Jp
cHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0
aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKQEAgLTEwNzQsMTMg
KzEwNzEsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAqIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0
T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUp
OwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlOgpAQCAtMTExOCwxMyArMTExNCwx
MiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVf
cmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2Vi
S2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJp
YnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5k
X3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNlc19hdHRyaWJ1dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDU0NmYy
NGUzNzI3ZTM2ZTY3Y2RiZGNlMDdmZTkxNGFmYjRhMDhlZjYuLjA4ZjgwZGQ2ZjE2N2NhOWIzM2Jk
YjJjN2ZiNzA4ZmI5MGRiMzk1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMTE3LDkgKzExMTcsNyBAQCB2
b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPYmplY3QsCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihl
eGVjLCBlYyk7CisgICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9J
bnQzMihleGVjKSk7CiB9CiAKIApAQCAtMTEzOSw5ICsxMTM3LDcgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bih1c3RyaW5nVG9TdHJpbmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odXN0cmlu
Z1RvU3RyaW5nKHZhbHVlLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKSkpOwogfQogCiAKQEAgLTExODksOSArMTE4NSw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzKGV4ZWMsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjAwLDEyICsxMTk0LDEwIEBA
IHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNj
cmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFs
dWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0
b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjI2LDEyICsxMjE4LDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhFeGVjU3RhCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRv
VGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmoubW0KaW5kZXggZmMwOTM3Zjg0NjI0NmQ3NTI0NDI3MzAxMjRjNDdhYmM3NDJmYmUz
Yy4uMTE2NDJhZThhNjYxNDgzNTdlNDdjNDYwYjY3MzE2YzY3MjIwM2I5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
Lm1tCkBAIC0zNDgsOSArMzQ4LDcgQEAKIC0gKHZvaWQpc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b246KGludCluZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAg
SU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24pOwogfQogCiAtIChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTM3OSw5ICszNzcs
NyBAQAogLSAodm9pZClzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjooTlNTdHJpbmcg
KiluZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJv
cihlYyk7CisgICAgSU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0F0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC00NTAsOSArNDQ2LDcgQEAKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRP
TUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMo
Y29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVz
dE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzCkBAIC00Njks
OSArNDYzLDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAg
ICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKTsK
IAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VP
bkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlCkBAIC01MDIsOSArNDk0LDcgQEAKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0g
ICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwog
fQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCA1YzQ4Zjg1YTQ1ZThmMGRmODU0MGQzNjBkMThh
ZDBlZDZkNDMxYmE5Li5iYzk4ZmZhZjcyYTFkMTk3NTQzMzAwYmQxNGFlMWVhMmIwNjZhZjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CkBAIC01MCw3ICs1MCw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9i
aiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOwogCi0gICAgICAgIEpTLCBWOAorICAgICAg
ICAvLyBKUywgVjgKICAgICAgICAgLy8gV0tfdWNmaXJzdCwgV0tfbGNmaXJzdCBleGNlcHRpb25h
bCBjYXNlcy4KICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAgICAgICBYTUxP
YmpBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICAgICAgIGNyZWF0
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAKaW5kZXggNDYyZGQ5ZWFjN2RmN2M1YTU2Y2FmMzk3YzAzMjA5YTk0NjJhYjRj
Mi4uZDA2ODY0NjExZGZmODdhZTgwYjEyYzVhNDk0ZDA3ZWZiNzRlOWVjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
QEAgLTQzMywxMCArNDMzLDcgQEAgc3RhdGljIHZvaWQgYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25B
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG8KICAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIGludCB2
ID0gdG9JbnQzMih2YWx1ZSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5z
ZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkK
LSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7
CisgICAgaW1wLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9
CiAKQEAgLTQ3NSwxMCArNDcyLDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAgIElOQ19T
VEFUUygiRE9NLlRlc3RPYmouc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVy
PD4sIHYsIHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMp
KQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgp
KTsKKyAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJl
dHVybjsKIH0KIApAQCAtNTY4LDEzICs1NjIsMTAgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwK
ICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkg
PyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUp
KSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRl
ID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1
cm47Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdU
Rjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRX
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpKTsKICAg
ICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhj
ZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC01OTksMTMgKzU5
MCwxMCBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJh
aXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
Ymoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMuX3NldCIpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAg
VGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENv
bnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250
ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSwgZWMpOwot
ICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
YywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodikpOwogICAg
IHJldHVybjsKIH0KIApAQCAtNjYzLDE2ICs2NTEsMTMgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIo
djgKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgVGVzdE9iaiogdiA9IFY4
VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlwdFN0YXRlOjpjdXJyZW50KCk7CiAg
ICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBzY3Jp
cHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0g
ICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOwor
ICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodikpOwogICAgIGlm
IChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRp
b24oKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155495</attachid>
            <date>2012-07-31 04:53:57 -0700</date>
            <delta_ts>2012-08-10 01:40:35 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-26398-20120731205339.patch</filename>
            <type>text/plain</type>
            <size>194536</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlMjE4YjAyYzNjMmNh
N2I5YTMzZDliMWM2MjFjZGE4NTFhMWU3MS4uZDBhNzYxM2UzYjJiODEwZTJiYzIzMjg0NjdmZTZk
YjA1OWE2YjJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxMi0wNy0xMSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL3d3
dy53My5vcmcvVFIvMjAxMS9XRC1XZWJJREwtMjAxMTA3MTIvI2lkbC1ncmFtbWFyCisgICAgICAg
IFRoZSBncmFtbWFyIGFuZCB0aGUgb2xkIGdyYW1tYXIgd2VyZSB1cGxvYWRlZCB0byBidWdzLndl
YmtpdC5vcmcuCisKKyAgICAgICAgRmlyc3RseSB0ZW1wbGF0ZSBJREwgcGFyc2VyIHdhcyBnZW5l
cmF0ZWQgYnkgdXBsb2FkZWQgcHl0aG9uIHNjcmlwdCwKKyAgICAgICAgYW5kIG1vZGlmaWVkIHRv
IGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dHMgYXMgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4K
KyAgICAgICAgVG8gc2VwYXJhdGUgSURMIGZpbGVzJyBjaGFuZ2VzIGZyb20gdGhpcyBwYXRjaCwg
dGhlIGludGVybmFsIHZhcmlhYmxlOgorICAgICAgICAkYmFja3dhcmRDb21wYXRpYmxlTW9kZSBk
ZWZpbmVkIGluIElETFBhcnNlci5wbSBpcyB1c2VkLiBJZiBpdHMgdmFsdWUKKyAgICAgICAgaXMg
MSwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURMIGZpbGVzIGdlbmVyYXRlZCBieSBjdXJyZW50IFdl
YktpdCBJREwKKyAgICAgICAgZ3JhbW1hci4gSWYgMCwgSURMUGFyc2VyLnBtIGV4cGVjdHMgSURM
IGZpbGVzIHdob3NlIGV4dGVuZGVkIGF0dHJpYnV0ZXMKKyAgICAgICAgYXJlIG1vdmVkIHRvIHRo
ZSBsb2NhdGlvbiBzcGVjaWZpZWQgaW4gV2ViSURMLgorICAgICAgICBUbyBpbXBsZW1lbnQgdGhl
IG1vZGUsIHR3byBkaWZmZXJlbnQgV2ViSURMIGdyYW1tYXJzIHdlcmUgdXNlZCB0bworICAgICAg
ICBnZW5lYXJldGUgdGhpcyBJRExQYXJzZXIucG0uIFRoZSB0d28gZ2VuZXJhdGVkIHRlbXBhbGF0
ZSBwYXJzZXJzIHdlcmUKKyAgICAgICAgbWVyZ2VkIG1hbnVhbGx5LgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gVGVzdGVkIGJ5IGNvbXBhcmluZyB3aXRoIHNvdXJjZXMgZ2VuZXJhdGVkIGJ5Cisg
ICAgICAgIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0uCisKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgVG8gcGFyc2UgdGhlIGV4aXN0aW5nIFdlYktp
dCBJREwuIEZpeGVkIHRoZSBidWcgd2hlbiBwYXJzaW5nIGxvbmcKKyAgICAgICAgbG9uZ0F0dHIu
IEV4cGVjdGVkIHJlc3VsdCBpcyBpbnQgbG9uZ0F0dHIsIGJ1dCB0aGUgcHJldmlvdXMgb25lIGdl
bmVyYXRlcworICAgICAgICBsb25nIGxvbmcgQXR0ci4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0lETFBhcnNlckVkaXRvcnNEcmFmdC5wbToKKyAgICAgICAgVG8gcGFyc2UgV2ViSURMIGJh
c2VkIG9uIEVkaXRvcidzIERyYWZ0LiBIb3dldmVyIEVkaXRvcidzIERyYWZ0IGRvZXNuJ3QKKyAg
ICAgICAgaGF2ZSBzZXRyYWlzZXMsIGdldHJhaXNlcyBhbmQgZXhjZXB0aW9uIGxpc3QuIE1vZGlm
aWVkIHRoZSBncmFtbWFyIHRvCisgICAgICAgIHN1cHBvcnQgdGhlc2UgZXhjZXB0aW9ucy4KKyAg
ICAgICAgVG8gY2hhbmdlIElETEdyYW1tYXIsIG1vZGlmeSAidXNlIElETFBhcnNlcjsiIHRvCisg
ICAgICAgICJ1c2UgSURMUGFyc2VyRWRpdG9yc0RyYWZ0OyIgb3IganVzdCByZW5hbWUgSURMUGFy
c2VyRWRpdG9yc0RyYWZ0LnBtLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpsb25nQXR0cik6Cisg
ICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRMb25nQXR0cik6CisgICAgICAgIChXZWJET01UZXN0
T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJET01UZXN0T2Jq
OjpzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik6CisgICAgICAgIChXZWJET01UZXN0
T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6bG9uZ01l
dGhvZCk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kV2l0aEFyZ3MpOgorICAg
ICAgICAoV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAod2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcHJvcGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jbGFzc19p
bml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdz
KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2QpOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Vi
a2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9zZXRfbG9uZ19hdHRyKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJf
d2l0aF9nZXR0ZXJfZXhjZXB0aW9uKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0
aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFp
c2VzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakxvbmdB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakxvbmdBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZVJhaXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhB
cmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01l
dGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RP
YmogbG9uZ0F0dHJdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRMb25nQXR0cjpdKToKKyAg
ICAgICAgKC1bRE9NVGVzdE9iaiBzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjpdKToKKyAgICAg
ICAgKC1bRE9NVGVzdE9iaiBzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjpdKToKKyAg
ICAgICAgKC1bRE9NVGVzdE9iaiBzZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXM6XSk6
CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlczpdKToKKyAgICAgICAgKC1b
RE9NVGVzdE9iaiB2b2lkTWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAg
KC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogbG9uZ01l
dGhvZFdpdGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogb2Jq
TWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBj
dXN0b21NZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
d2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVSYWlzZXNBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
Ojp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
QXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1l
dGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJu
YWw6OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2Qy
Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2Fk
ZWRNZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVy
Q29udGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRl
c3RPYmpUZW1wbGF0ZSk6CisgICAgICAgIFVwZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cywgYmVjYXVz
ZSB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtIGdlbmVyYXRlcworICAgICAgICAic2V0dGVyIHJh
aXNlcyIgY29kZSAgd2hlbiBvbmx5ICJnZXR0ZXIgcmFpc2VzIiBvciAiZ2V0cmFpc2VzIiBpcwor
ICAgICAgICBzcGVjaWZpZWQuIEFuZCB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtIGZhaWxlZCB0
byBwYXJzZSAibG9uZyBsb25nQXR0ciIuCisKIDIwMTItMDctMzEgIFJhdWwgSHVkZWEgIDxyaHVk
ZWFAYWRvYmUuY29tPgogCiAgICAgICAgIEluc3BlY3RvciBjcmFzaGVzIHdoZW4gdHJ5aW5nIHRv
IGluc3BlY3QgYSBwYWdlIHdpdGggQ1NTIHJlZ2lvbiBzdHlsaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IDA1N2MwM2Q2YzZhMmI5MWY5M2Jk
ZWE1YzAyYjc0OTYxYmZiODlkNDEuLmU3MjE2M2QyMTU3ZDU1ZDI2YzRkMWZmZDM4NzQ1MzdmZmYz
YTZjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBt
CkBAIC0yMSw0NTEgKzIxLDE0MTcgQEAKIAogcGFja2FnZSBJRExQYXJzZXI7CiAKK3VzZSBDbGFz
czo6U3RydWN0OworCiB1c2Ugc3RyaWN0OwotdXNlIHJlICdldmFsJzsKIAogdXNlIElQQzo6T3Bl
bjI7CiB1c2UgSURMU3RydWN0dXJlOwogdXNlIHByZXByb2Nlc3NvcjsKIAotdXNlIGNvbnN0YW50
IE1PREVfVU5ERUYgICAgPT4gMDsgIyBEZWZhdWx0IG1vZGUuCit1c2UgY29uc3RhbnQgU3RyaW5n
VG9rZW4gPT4gMDsKK3VzZSBjb25zdGFudCBJbnRlZ2VyVG9rZW4gPT4gMTsKK3VzZSBjb25zdGFu
dCBGbG9hdFRva2VuID0+IDI7Cit1c2UgY29uc3RhbnQgSWRlbnRpZmllclRva2VuID0+IDM7Cit1
c2UgY29uc3RhbnQgT3RoZXJUb2tlbiA9PiA0OwordXNlIGNvbnN0YW50IEVtcHR5VG9rZW4gPT4g
NTsKIAotdXNlIGNvbnN0YW50IE1PREVfTU9EVUxFICA9PiAxMDsgIyAnbW9kdWxlJyBzZWN0aW9u
Ci11c2UgY29uc3RhbnQgTU9ERV9JTlRFUkZBQ0UgID0+IDExOyAjICdpbnRlcmZhY2UnIHNlY3Rp
b24KLXVzZSBjb25zdGFudCBNT0RFX0VYQ0VQVElPTiAgPT4gMTI7ICMgJ2V4Y2VwdGlvbicgc2Vj
dGlvbgorc3RydWN0KCBUb2tlbiA9PiB7CisgICAgdHlwZSA9PiAnJCcsICMgdHlwZSBvZiB0b2tl
bgorICAgIHZhbHVlID0+ICckJyAjIHZhbHVlIG9mIHRva2VuCit9KTsKIAotIyBIZWxwZXIgdmFy
aWFibGVzCi1teSBAdGVtcG9yYXJ5Q29udGVudDsKK215ICRiZVF1aWV0ID0gMDsKIAotbXkgJHBh
cnNlTW9kZTsKLW15ICRwcmVzZXJ2ZWRQYXJzZU1vZGU7CitzdWIgbmV3IHsKKyAgICBteSAkY2xh
c3MgPSBzaGlmdDsKKyAgICAkYmVRdWlldCA9IHNoaWZ0OwogCi1teSAkYmVRdWlldDsgIyBTaG91
bGQgbm90IGRpc3BsYXkgYW55dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwg
aG9sZCB0aGUgcmVzdWx0aW5nICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAx
LCBwYXJzZSBvbmx5IGVub3VnaCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKKyAgICBteSAkZW1w
dHlUb2tlbiA9IFRva2VuLT5uZXcoKTsKKyAgICAkZW1wdHlUb2tlbi0+dHlwZShFbXB0eVRva2Vu
KTsKKyAgICAkZW1wdHlUb2tlbi0+dmFsdWUoImVtcHR5Iik7CisKKyAgICBteSAkc2VsZiA9IHsK
KyAgICAgICAgRG9jdW1lbnRDb250ZW50ID0+ICIiLAorICAgICAgICBFbXB0eVRva2VuID0+ICRl
bXB0eVRva2VuLAorICAgICAgICBOZXh0VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIFRv
a2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBMaW5lID0+ICIiLAorICAgICAgICBMaW5lTnVt
YmVyID0+IDEKKyAgICB9OworICAgIHJldHVybiBibGVzcyAkc2VsZiwgJGNsYXNzOworfQogCi1z
dWIgSW5pdGlhbGl6ZUdsb2JhbERhdGEKK3N1YiBhc3NlcnRUb2tlblZhbHVlCiB7Ci0gICAgQHRl
bXBvcmFyeUNvbnRlbnQgPSAiIjsKLQotICAgICRwYXJzZU1vZGUgPSBNT0RFX1VOREVGOwotICAg
ICRwcmVzZXJ2ZWRQYXJzZU1vZGUgPSBNT0RFX1VOREVGOwotCi0gICAgJGRvY3VtZW50ID0gMDsK
LSAgICAkcGFyZW50c09ubHkgPSAwOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRv
a2VuID0gc2hpZnQ7CisgICAgbXkgJHZhbHVlID0gc2hpZnQ7CisgICAgZGllICJOZXh0IHRva2Vu
IHNob3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0
ICIgLiAkc2VsZi0+e0xpbmV9IHVubGVzcyAkdG9rZW4tPnZhbHVlKCkgZXEgJHZhbHVlOwogfQog
Ci0jIERlZmF1bHQgQ29uc3RydWN0b3IKLXN1YiBuZXcKK3N1YiBhc3NlcnRUb2tlblR5cGUKIHsK
LSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKLQotICAg
IEluaXRpYWxpemVHbG9iYWxEYXRhKCk7Ci0KLSAgICAkYmVRdWlldCA9IHNoaWZ0OworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAi
LCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3Mg
JHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cit9CiAKLSAgICBibGVzcygkcmVmZXJlbmNlLCAkb2Jq
ZWN0KTsKLSAgICByZXR1cm4gJHJlZmVyZW5jZTsKK3N1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4K
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIGRp
ZSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJHRva2VuIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsK
IH0KIAotIyBSZXR1cm5zIHRoZSBwYXJzZWQgJ2lkbERvY3VtZW50Jwogc3ViIFBhcnNlCiB7Ci0g
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJGZp
bGVOYW1lID0gc2hpZnQ7CiAgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKICAgICBteSAkcHJlcHJv
Y2Vzc29yID0gc2hpZnQ7Ci0gICAgJHBhcmVudHNPbmx5ID0gc2hpZnQ7CisKKyAgICBteSBAZGVm
aW5pdGlvbnMgPSAoKTsKIAogICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcgdG8gcGFyc2UgJGZp
bGVOYW1lLi4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkgQGRvY3VtZW50Q29udGVu
dCA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3Ip
OwogCi0gICAgbXkgJGRhdGFBdmFpbGFibGUgPSAwOworICAgIG15IEBsaW5lcyA9IGFwcGx5UHJl
cHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOworICAgICRzZWxm
LT57TGluZX0gPSAkbGluZXNbMF07CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID0gam9p
bignICcsIEBsaW5lcyk7CiAKLSAgICAjIFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3Jl
YWNoIChAZG9jdW1lbnRDb250ZW50KSB7Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2Jq
ZWN0LT5EZXRlcm1pbmVQYXJzZU1vZGUoJF8pOworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAg
IGV2YWwgeworICAgICAgICBteSAkcmVzdWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsK
KyAgICAgICAgcHVzaChAZGVmaW5pdGlvbnMsIEB7JHJlc3VsdH0pOwogCi0gICAgICAgIGlmICgk
bmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAgIGlmICgkZGF0YUF2YWls
YWJsZSBlcSAwKSB7Ci0gICAgICAgICAgICAgICAgJGRhdGFBdmFpbGFibGUgPSAxOyAjIFN0YXJ0
IG5vZGUgYnVpbGRpbmcuLi4KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
JG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpICE9IEVt
cHR5VG9rZW4pIHsKKyAgICAgICAgICAgIGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5kICIgLiAk
bmV4dC0+dmFsdWUoKTsKICAgICAgICAgfQorICAgIH07CisgICAgZGllICRAIC4gIiBpbiAkZmls
ZU5hbWUiIGlmICRAOwogCi0gICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRhdGEgc3RyZWFtIG1v
ZGUuLi4KLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAg
ICAgICAgJHBhcnNlTW9kZSA9ICRuZXdQYXJzZU1vZGU7Ci0gICAgICAgIH0KKyAgICBkaWUgIk5v
IGRvY3VtZW50IGZvdW5kIiB1bmxlc3MgQGRlZmluaXRpb25zOworCisgICAgbXkgJGRvY3VtZW50
ID0gJGRlZmluaXRpb25zWzBdOworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBy
ZWYoJGRvY3VtZW50KSBlcSAiaWRsRG9jdW1lbnQiOworCisgICAgcHJpbnQgIiB8ICoqKiBGaW5p
c2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7CisKKyAgICAkZG9jdW1lbnQtPmZpbGVO
YW1lKCRmaWxlTmFtZSk7CisgICAgcmV0dXJuICRkb2N1bWVudDsKK30KKworc3ViIG5leHRUb2tl
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgcmV0dXJuICRzZWxmLT57TmV4dFRva2Vu
fTsKK30KKworc3ViIGdldFRva2VuCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2Vs
Zi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2VufTsKKyAgICAkc2VsZi0+e05leHRUb2tlbn0g
PSAkc2VsZi0+Z2V0VG9rZW5JbnRlcm5hbCgpOworICAgIHJldHVybiAkc2VsZi0+e1Rva2VufTsK
K30KKworbXkgJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4gPSAnXltcdFxuXHIgXSpbXG5ccl0nOwor
bXkgJGZsb2F0VG9rZW5QYXR0ZXJuID0gJ14oLT8oKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAt
OV0rKShbRWVdWystXT9bMC05XSspP3xbMC05XStbRWVdWystXT9bMC05XSspKSc7CitteSAkaW50
ZWdlclRva2VuUGF0dGVybiA9ICdeKC0/WzEtOV1bMC05XSp8LT8wW1h4XVswLTlBLUZhLWZdK3wt
PzBbMC03XSopJzsKK215ICRzdHJpbmdUb2tlblBhdHRlcm4gPSAnXihcIlteXCJdKlwiKSc7Citt
eSAkaWRlbnRpZmllclRva2VuUGF0dGVybiA9ICdeKFtBLVpfYS16XVswLTlBLVpfYS16XSopJzsK
K215ICRvdGhlclRva2VuUGF0dGVybiA9ICdeKDo6fFwuXC5cLnxbXlx0XG5cciAwLTlBLVpfYS16
XSknOwogCi0gICAgICAgIHB1c2goQHRlbXBvcmFyeUNvbnRlbnQsICRfKTsKK3N1YiBnZXRUb2tl
bkludGVybmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIGlmICgkc2VsZi0+e0Rv
Y3VtZW50Q29udGVudH0gPX4gLyR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8oJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4pLy87
CisgICAgICAgIG15ICRza2lwcGVkID0gJDE7CisgICAgICAgICRzZWxmLT57TGluZU51bWJlcn0r
KyB3aGlsZSAoJHNraXBwZWQgPX4gbS9cbi9nKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENv
bnRlbnR9ID1+IC9eKFteXG5ccl0rKS87CisgICAgICAgICMgTGluZSBpcyB1c2VkIGZvciBlcnJv
ciBvdXRwdXQuCisgICAgICAgIGlmIChkZWZpbmVkKCQxKSkgeworICAgICAgICAgICAgJHNlbGYt
PntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJlcn0gLiAiOiIgLiAkMTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0gPSAiVW5rbm93biI7CisgICAgICAgIH0KKyAg
ICB9CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvXihbXHRcblxyIF0rKS8vOwor
ICAgIGlmIChsZW5ndGgoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9KSA9PSAwKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+e0VtcHR5VG9rZW59OwogICAgIH0KIAotICAgICMgQ2hlY2sgaWYgdGhl
cmUgaXMgYW55dGhpbmcgcmVtYWluaW5nIHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2Rl
IG5lIE1PREVfVU5ERUYpIGFuZCAoJCN0ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAg
JG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7
CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0VG9rZW5QYXR0ZXJu
LykgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tlbi0+
dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kZmxvYXRU
b2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRz
ZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRlcm4vKSB7CisgICAg
ICAgICR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQx
KTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGludGVnZXJUb2tlblBh
dHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRv
a2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAg
ICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tlblBhdHRlcm4vLzsK
KyAgICAgICAgcmV0dXJuICR0b2tlbjsKICAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRD
b250ZW50fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+
dHlwZShJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5
cGUoT3RoZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2Vs
Zi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4vLzsKKyAgICAgICAg
cmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBhdCAi
IC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgIHByaW50ICIgfCAqKiogRmluaXNoZWQgcGFyc2lu
ZyFcbiIgdW5sZXNzICRiZVF1aWV0OwotIAotICAgICRkb2N1bWVudC0+ZmlsZU5hbWUoJGZpbGVO
YW1lKTsKIAotICAgIHJldHVybiAkZG9jdW1lbnQ7CitzdWIgcGFyc2VEZWZpbml0aW9ucworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3
aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKDo6fGRpY3Rpb25hcnl8ZXhjZXB0aW9ufGludGVyZmFjZXxtb2R1bGV8cGFydGlh
bHx0eXBlZGVmKSQvKSkgeworICAgICAgICAgICAgcHVzaChAZGVmaW5pdGlvbnMsICRzZWxmLT5w
YXJzZURlZmluaXRpb24oKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25zOwogfQogCi1zdWIgUGFy
c2VNb2R1bGUKK3N1YiBwYXJzZURlZmluaXRpb24KIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
InBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsSW50ZXJmYWNl
KCk7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXig6OnxkaWN0aW9uYXJ5fGV4Y2VwdGlvbnxpbnRlcmZhY2V8
bW9kdWxlfHR5cGVkZWYpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOb3JtYWxE
ZWZpbml0aW9uKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCkpOworfQogCi0gICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxl
Li4uXG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZU5vcm1hbERlZmluaXRpb24KK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlTW9kdWxlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50
ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnkoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRp
b24oKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZigpOworICAgIH0KKyAgICBpZiAoKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgZXEgIjo6Iikp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoKTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CiAKLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLSAgICAkZGF0
YSA9fiAvJElETFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworc3ViIHBhcnNlTW9kdWxlCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgcHJpbnQg
IiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICAg
ICAgbXkgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIik7CisgICAgICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qo
KTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJGRv
Y3VtZW50LT5tb2R1bGUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb25z
ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+
Y2xhc3Nlc30sIEB7JGRlZmluaXRpb25zfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+cGFyc2VPcHRpb25h
bFNlbWljb2xvbigpOworICAgICAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwiIiAu
ICR0b2tlbi0+dmFsdWUoKSAuICJcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAg
ICAgIHJldHVybiAkZG9jdW1lbnQ7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQogCi0gICAgbXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5l
ZCgkMSkgPyAkMSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwot
ICAgICRkYXRhTm9kZS0+bW9kdWxlKCRtb2R1bGVOYW1lKTsKK3N1YiBwYXJzZUludGVyZmFjZQor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIG15
ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIpOworICAgICAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2Rl
LT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24o
MCk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUlu
aGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ7Iik7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBh
cnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5v
ZGUsICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxp
c3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRk
YXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSk7Cit9CiAKLSAgICBwcmludCAiICB8LS0tLT4gTW9kdWxlOyBOQU1FIFwiJG1vZHVs
ZU5hbWVcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFyc2VQYXJ0aWFsSW50
ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImlu
dGVyZmFjZSIpOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCkpOwogfQogCi1zdWIgZHVtcEV4dGVuZGVkQXR0cmlidXRlcworc3ViIHBh
cnNlSW5oZXJpdGFuY2UKIHsKLSAgICBteSAkcGFkU3RyID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJz
ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOiIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZUxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtd
OworfQogCi0gICAgaWYgKCEleyRhdHRyc30pIHsKLSAgICAgICAgcmV0dXJuICIiOworc3ViIHBh
cnNlSW50ZXJmYWNlTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGlu
dGVyZmFjZU1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8
XFt8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y2FsbGVyfGNvbnN0fGNyZWF0b3J8ZGVsZXRl
cnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGxvbmd8b2JqZWN0fG9jdGV0fG9taXR0YWJsZXxyZWFkb25s
eXxzZXF1ZW5jZXxzZXR0ZXJ8c2hvcnR8c3RhdGljfHVuc2lnbmVkfHZvaWQpJC8pKSB7CisgICAg
ICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVy
KCk7CisgICAgICAgICAgICBpZiAoZGVmaW5lZCAkaW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW50ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9
CiAgICAgfQorICAgIHJldHVybiBcQGludGVyZmFjZU1lbWJlcnM7Cit9CiAKLSAgICBteSBAdGVt
cDsKLSAgICB3aGlsZSAoKG15ICRuYW1lLCBteSAkdmFsdWUpID0gZWFjaCgleyRhdHRyc30pKSB7
Ci0gICAgICAgIHB1c2goQHRlbXAsICIkbmFtZT0kdmFsdWUiKTsKK3N1YiBwYXJzZUludGVyZmFj
ZU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdGF0aWMiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3RhdGljIik7
CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
KCk7CisgICAgICAgICRkYXRhTm9kZS0+aXNTdGF0aWMoMSk7CisgICAgICAgIHJldHVybiAkZGF0
YU5vZGU7CiAgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihhdHRyaWJ1dGV8cmVh
ZG9ubHkpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZSgpOworICAg
IH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQt
PnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxjYWxs
ZXJ8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8bG9uZ3xvYmplY3R8
b2N0ZXR8b21pdHRhYmxlfG9wdGlvbmFsfHNlcXVlbmNlfHNldHRlcnxzaG9ydHxzdGF0aWN8dW5z
aWduZWR8dm9pZCkkLykpIHsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRz
ZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlQ29uc3RPck9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAg
ICByZXR1cm4gJHBhZFN0ciAuICJbIiAuIGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBh
cnNlQXR0cmlidXRlT3JPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
XihhdHRyaWJ1dGV8cmVhZG9ubHkpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZSgpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xl
YW58Ynl0ZXxjYWxsZXJ8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8bG9uZ3xv
YmplY3R8b2N0ZXR8b21pdHRhYmxlfHNlcXVlbmNlfHNldHRlcnxzaG9ydHxzdGF0aWN8dW5zaWdu
ZWR8dm9pZCkkLykpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9u
KCk7CisgICAgICAgICRzZWxmLT5wYXJzZVF1YWxpZmllcnMoJG5ld0RhdGFOb2RlKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkbmV3RGF0YU5vZGUpOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHt9KTsKKyAgICAgICAgcmV0
dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7CiB9CiAKLXN1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworc3Vi
IHBhcnNlRGljdGlvbmFyeQogewotICAgIG15ICRzdHIgPSBzaGlmdDsKLSAgICAkc3RyID1+IHMv
XFtccyooLiopXHMqXF0vJDEvZzsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlv
bmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigp
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsK
KyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCkpOworfQogCi0gICAgbXkgJWF0dHJzID0gKCk7CitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVy
cworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICB3aGlsZSAoJHN0ciAhfiAvXlxzKiQv
KSB7Ci0gICAgICAgICMgUGFyc2UgbmFtZQotICAgICAgICBpZiAoJHN0ciAhfiAvXlxzKihbXHdc
ZF0rKS8pIHsKLSAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICck
c3RyJ1xuIik7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4p
IHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXig6OnxET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxi
eXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnNpZ25l
ZCkkLykpIHsKKyAgICAgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXIoKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KLSAgICAgICAgbXkg
JG5hbWUgPSAkMTsKLSAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLQotICAgICAg
ICBpZiAoJHN0ciA9fiAvXlxzKj0vKSB7Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKj0vLzsK
LSAgICAgICAgICAgIGlmICgkbmFtZSBlcSAiTmFtZWRDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAg
ICAgICAgICAjIFBhcnNlICc9JyBuYW1lICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAg
ICAgICAgICBteSAkY29uc3RydWN0b3JOYW1lOwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+
IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JOYW1l
ID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlk
IGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICAgICAgICAg
IyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAgICAgICAgICRzdHIg
PX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14pXSop
XCksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRzaWduYXR1cmUgPSAkMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICRzaWduYXR1cmUgPX4gcy9eKC4qPylccyokLyQxLzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIg
PT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gJHNpZ25hdHVyZX07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0
ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAgICAg
ICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5h
bWUsICJTaWduYXR1cmUiID0+ICIifTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15c
cyosPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRp
ZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAjIFBhcnNlICc9JyB2
YWx1ZSAnLCc/Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyooW14sXSopLD8vKSB7
Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAg
ICAgICAkc3RyID1+IHMvXlxzKihbXixdKiksPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICck
c3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2lmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1bWVu
dHMgJyknICcsJz8KLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAg
IGlmICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRu
YW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyok
LyQxLzsKLSAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRy
aWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRzdHIg
PX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJycgfCAnLCcKLSAgICAgICAgICAg
IGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRu
YW1lfSA9ICIiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7
JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
JHN0ciA9fiBzL15ccyosPy8vOworICAgIH0KK30KKworc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJl
cgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRu
ZXh0LT52YWx1ZSgpID1+IC9eKDo6fERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91
YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVuc2lnbmVkKSQvKSkg
eworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxm
LT5wYXJzZURlZmF1bHRWYWx1ZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNl
RGVmYXVsdFZhbHVlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VDb25zdEV4cHIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICByZXR1cm47Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21D
bGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUo
KSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgICAgIHB1c2goQHsk
ZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAg
ICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygp
OworICAgICAgICAjJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFw
cGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRleGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBw
bHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1l
bWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBtZW1iZXJzID0gKCk7Cisg
ICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+
dmFsdWUoKSA9fiAvXig6OnxET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRv
dWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzaG9ydHx1bnNpZ25lZCkkLykpIHsKKyAgICAg
ICAgICAgIHB1c2goQG1lbWJlcnMsICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigpKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1
dGU6ICckc3RyJ1xuIik7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9CiAgICAgfQorICAg
IHJldHVybiBcQG1lbWJlcnM7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJzZVR5
cGVkZWYKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIik7
CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSk7CiB9CiAKLXN1YiBwYXJzZVBhcmFtZXRlcnMKK3N1YiBwYXJzZUltcGxlbWVudHNTdGF0ZW1l
bnQKIHsKLSAgICBteSAkbmV3RGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkbWV0aG9kU2lnbmF0
dXJlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB8fCAoJG5leHQtPnZhbHVlKCkgZXEgIjo6IikpIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2Nv
cGVkTmFtZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImltcGxlbWVudHMiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRzIGF0IGNvbW1hcyBi
dXQgb25seSBpZiB0aGUgY29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0cmlidXRlIGJyYWNr
ZXRzLCBleHByZXNzZWQgaGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQgYnkgYSAnXScgd2l0
aG91dCBhIHByZWNlZGluZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVzIHRoYXQg
YXR0cmlidXRlcyBkb24ndCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/IVteW10q
XF0pLywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFtcykgewotICAgICAg
ICBteSAkbGluZSA9ICRfOworc3ViIHBhcnNlQ29uc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3Qi
KSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNvbnN0Iik7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5cGUoKSk7CisgICAg
ICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnZhbHVlKCRz
ZWxmLT5wYXJzZUNvbnN0RXhwcigpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0Rh
dGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpKTsKK30KIAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNl
UGFyYW1ldGVyU2VsZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAg
ICAgICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAi
ICIpOyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5
cGUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIikpOwotICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAk
NCA6ICIiOwotICAgICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZUNvbnN0RXhw
cgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGZhbHNlfHRydWUpJC8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUJvb2xlYW5MaXRlcmFsKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAibnVsbCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJudWxsIik7CisgICAgICAgIHJldHVybiAibnVsbCI7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+
dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbikgewor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0
b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9r
ZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJl
dHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQogCi0gICAgICAgIG15ICRpc051bGxhYmxlID0gJHBh
cmFtVHlwZVN1ZmZpeCBlcSAiPyI7CitzdWIgcGFyc2VCb29sZWFuTGl0ZXJhbAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiKTsKKyAgICAgICAgcmV0dXJuICJ0cnVl
IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIpOworICAg
ICAgICByZXR1cm4gImZhbHNlIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBu
ZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5kaXJlY3Rpb24oJHBh
cmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHBhcmFtTmFtZSk7
Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCRwYXJhbVR5cGUpOwotICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRw
YXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxs
YWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VDb25zdE9yT3BlcmF0aW9uCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAK
LSAgICAgICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzOwotICAgICAg
ICBwdXNoKEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2RlKTsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4
dC0+dmFsdWUoKSA9fiAvXig6OnxET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGNhbGxl
cnxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxsb25nfG9iamVjdHxvY3RldHxv
bWl0dGFibGV8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHN0YXRpY3x1bnNpZ25lZHx2b2lkKSQvKSkg
eworICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOworfQogCi0gICAgICAgIHByaW50ICIgIHwgICB8PiAgUGFyYW07IFRZUEUgXCIkcGFy
YW1UeXBlXCIgTkFNRSBcIiRwYXJhbU5hbWVcIiIgLiAKLSAgICAgICAgICAgIGR1bXBFeHRlbmRl
ZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAiLCAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0OyAgICAgICAgICAKK3N1YiBwYXJz
ZUF0dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGF0dHJpYnV0ZXxy
ZWFkb25seSkkLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRl
KCk7CisgICAgICAgIGlmICgkc2VsZi0+cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAg
fQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0
dHJpYnV0ZSIpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT50eXBlKCRzZWxmLT5wYXJzZUF0dHJpYnV0ZVR5cGUoKSk7CisgICAgICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYt
PnBhcnNlU2V0R2V0UmFpc2VzKCRuZXdEYXRhTm9kZSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm4gJG5ld0Rh
dGFOb2RlOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpKTsKIH0KIAotc3ViIFBhcnNlSW50ZXJmYWNlCitzdWIgcGFyc2VSZWFkT25seQogewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmVh
ZG9ubHkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAicmVhZG9ubHkiKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAw
OworfQorCitzdWIgcGFyc2VTZXRHZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgICRz
ZWxmLT5wYXJzZVNldFJhaXNlcygkZGF0YU5vZGUpOworICAgICAgICAkc2VsZi0+cGFyc2VHZXRS
YWlzZXMyKCRkYXRhTm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpID1+IC9eKDt8Z2V0dGVyKSQvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUdldFJh
aXNlcygkZGF0YU5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VHZXRSYWlz
ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIik7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUt
PmdldHRlckV4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKX0pOworICAg
IH0KK30KKworc3ViIHBhcnNlR2V0UmFpc2VzMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAg
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJHNlY3Rpb25OYW1lID0gc2hpZnQ7Ci0K
LSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLQotICAgICMgTG9v
ayBmb3IgZW5kLW9mLWludGVyZmFjZSBtYXJrCi0gICAgJGRhdGEgPX4gL307L2c7Ci0gICAgJGRh
dGEgPSBzdWJzdHIoJGRhdGEsIGluZGV4KCRkYXRhLCAkc2VjdGlvbk5hbWUpLCBwb3MoJGRhdGEp
IC0gbGVuZ3RoKCRkYXRhKSk7Ci0KLSAgICAkZGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0KLSAgICAj
IEJlZ2lubmluZyBvZiB0aGUgcmVnZXhwIHBhcnNpbmcgbWFnaWMKLSAgICBpZiAoJHNlY3Rpb25O
YW1lIGVxICJpbnRlcmZhY2UiIHx8ICRzZWN0aW9uTmFtZSBlcSAiZXhjZXB0aW9uIikgewotICAg
ICAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJzZSBpbnRlcmZhY2UuLi5cbiIgdW5sZXNzICRi
ZVF1aWV0OwotCi0gICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gIiI7Ci0gICAgICAgIG15ICRp
bnRlcmZhY2VEYXRhID0gIiI7Ci0KLSAgICAgICAgIyBNYXRjaCBpZGVudGlmaWVyIG9mIHRoZSBp
bnRlcmZhY2UsIGFuZCBlbmNsb3NlZCBkYXRhLi4uCi0gICAgICAgICRkYXRhID1+IC8kSURMU3Ry
dWN0dXJlOjppbnRlcmZhY2VTZWxlY3Rvci87Ci0KLSAgICAgICAgbXkgJGlzRXhjZXB0aW9uID0g
KGRlZmluZWQoJDEpID8gKCQxIGVxICdleGNlcHRpb24nKSA6IGRpZSgiUGFyc2luZyBlcnJvciFc
blNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlRXh0ZW5kZWRBdHRy
aWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRpbnRlcmZhY2VFeHRlbmRl
ZEF0dHJpYnV0ZXMpOwotICAgICAgICAkaW50ZXJmYWNlTmFtZSA9IChkZWZpbmVkKCQzKSA/ICQz
IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15
ICRpbnRlcmZhY2VCYXNlID0gKGRlZmluZWQoJDQpID8gJDQgOiAiIik7Ci0gICAgICAgICRpbnRl
cmZhY2VEYXRhID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3Vy
Y2U6XG4kZGF0YVxuKSIpKTsKLQotICAgICAgICAjIEZpbGwgaW4ga25vd24gcGFydHMgb2YgdGhl
IGRvbUNsYXNzIGRhdGFzdHJ1Y3R1cmUgbm93Li4uCi0gICAgICAgICRkYXRhTm9kZS0+aXNFeGNl
cHRpb24oJGlzRXhjZXB0aW9uKTsKLSAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCRpbnRlcmZhY2VO
YW1lKTsKLSAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVzKCRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBpZiAoZGVmaW5l
ZCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgICAgIG15
ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVz
KTsKLSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgICAk
ZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7Ci0gICAgICAgIH0gZWxzaWYgKGRl
ZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKLSAgICAg
ICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJOYW1lZENvbnN0cnVjdG9yIik7Ci0gICAg
ICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRl
bmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9k
ZSwgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0tPnsiU2lnbmF0dXJl
In0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9y
In0gPSAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifXsiQ29uc3RydWN0
b3JOYW1lIn07Ci0gICAgICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9k
ZSk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2Rl
LT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCl9KTsKKyAg
ICB9Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXR0ZXIiKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMiKTsK
KyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7JHNlbGYtPnBh
cnNlRXhjZXB0aW9uTGlzdCgpfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZU9w
ZXJhdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1
ZSgpID1+IC9eKDo6fERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8Y2FsbGVyfGNyZWF0
b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGxvbmd8b2JqZWN0fG9jdGV0fG9taXR0YWJs
ZXxzZXF1ZW5jZXxzZXR0ZXJ8c2hvcnR8c3RhdGljfHVuc2lnbmVkfHZvaWQpJC8pKSB7CisgICAg
ICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkc2VsZi0+
cGFyc2VRdWFsaWZpZXJzKCRuZXdEYXRhTm9kZSk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wZXJh
dGlvblJlc3QoJG5ld0RhdGFOb2RlKTsKKyAgICAgICAgZGllICJGb3VuZCB1bmRlZmluZWQgc2ln
bmF0dXJlIHdoaWxlIHBhcnNpbmcgT3BlcmF0aW9uLiIgdW5sZXNzIGRlZmluZWQoJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5l
d0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlUXVhbGlmaWVycworeworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0YXRpYyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzdGF0
aWMiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9taXR0YWJsZSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvbWl0dGFibGUi
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbHMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQt
PnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjYWxsZXJ8
Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2Vx
dWVuY2V8c2V0dGVyfHNob3J0fHVuc2lnbmVkfHZvaWQpJC8pKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVNwZWNpYWxzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVNwZWNpYWxz
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC9eKGNhbGxlcnxjcmVhdG9yfGRlbGV0ZXJ8Z2V0dGVyfHNldHRlcikkLykgeworICAgICAgICAg
ICAgJHNlbGYtPnBhcnNlU3BlY2lhbCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
bGFzdDsKICAgICAgICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygk
ZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZVNwZWNpYWwKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3JlYXRv
ciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJjcmVhdG9yIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJkZWxldGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImRlbGV0ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjYWxsZXIiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsK
K30KKworc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAo
JG5leHQtPnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxk
b3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5zaWduZWR8dm9p
ZCkkLykpIHsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVy
ZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNl
UmV0dXJuVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHNl
bGYtPnBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKCkpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiKTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRh
Tm9kZS0+cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCl9KTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAg
ICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJz
ZVJhaXNlcygpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VPcHRpb25hbElk
ZW50aWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
ICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VS
YWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICBy
ZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkxpc3QKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgIG15ICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VT
Y29wZWROYW1lTGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRyZXN1bHQ7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFy
c2VBcmd1bWVudExpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVu
dHMgPSAoKTsKIAotICAgICAgICAjIEluaGVyaXRhbmNlIGRldGVjdGlvbgotICAgICAgICBteSBA
aW50ZXJmYWNlUGFyZW50cyA9IHNwbGl0KC8sLywgJGludGVyZmFjZUJhc2UpOwotICAgICAgICBm
b3JlYWNoKEBpbnRlcmZhY2VQYXJlbnRzKSB7Ci0gICAgICAgICAgICBteSAkbGluZSA9ICRfOwot
ICAgICAgICAgICAgJGxpbmUgPX4gcy9ccyovL2c7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKDo6fERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5
dGV8ZG91YmxlfGZsb2F0fGlufGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNo
b3J0fHVuc2lnbmVkKSQvKSkgeworICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJz
ZUFyZ3VtZW50KCkpOworICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEB7JHNlbGYtPnBhcnNlQXJn
dW1lbnRzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQogCi0gICAgICAg
ICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPnBhcmVudHM7Ci0gICAgICAgICAgICBwdXNo
KEAkYXJyYXlSZWYsICRsaW5lKTsKK3N1YiBwYXJzZUFyZ3VtZW50cworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAg
ICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2Vs
Zi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7
CiAgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQogCi0gICAgICAg
IHJldHVybiBpZiAkcGFyZW50c09ubHk7CitzdWIgcGFyc2VBcmd1bWVudAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+
IC9eKDo6fERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlu
fGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVuc2lnbmVkKSQvKSkg
eworICAgICAgICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKyAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPmRpcmVjdGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAg
JHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZUxpc3QoKSk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsKCk7CisgICAgICAg
IG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNh
biBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL14oLiopXD8k
LykgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAg
ICAgICAgfQorICAgICAgICAjIFJlbW92ZSBhbGwgIj8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0
P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAgICAgICAgJHR5cGUgPX4gcy9cPy8vOworICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgICRzZWxmLT5wYXJzZUVsbGlwc2lz
KCk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZU9wdGlvbmFsSWRl
bnRpZmllcigpKTsKKyAgICAgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICAg
ICAkaW50ZXJmYWNlRGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0gICAgICAgIG15IEBpbnRlcmZhY2VN
ZXRob2RzID0gc3BsaXQoLzsvLCAkaW50ZXJmYWNlRGF0YSk7CitzdWIgcGFyc2VJbgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbiIpOworICAgICAgICByZXR1cm4gImluIjsK
KyAgICB9CisgICAgcmV0dXJuICIiOworfQogCi0gICAgICAgIGZvcmVhY2ggbXkgJGxpbmUgKEBp
bnRlcmZhY2VNZXRob2RzKSB7Ci0gICAgICAgICAgICBuZXh0IGlmICRsaW5lID1+IC9eXHMqJC87
Ci0gICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7Ci0gICAgICAgICAg
ICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9y
LzsKK3N1YiBwYXJzZU9wdGlvbmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9w
dGlvbmFsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIm9wdGlvbmFsIik7CisgICAgfQorfQogCi0gICAgICAgICAgICAgICAgbXkgJGlzU3Rh
dGljID0gZGVmaW5lZCgkMSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAo
ZGVmaW5lZCgkMykgPyAkMyA6ICIgIik7IGNob3AoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRl
cyk7CitzdWIgcGFyc2VFbGxpcHNpcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIu
Li4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiLi4uIik7CisgICAgfQorfQogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFU
eXBlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVm
aW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OwotICAKLSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVl
ZGVkIGZvciByZWdleHAgbWF0Y2hpbmcKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OwogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmdldHRlclJhaXNl
c1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkZ2V0dGVyRXhjZXB0aW9uID0gKGRlZmlu
ZWQoJDEpID8gJDEgOiAiIik7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14o
Ojp8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmpl
Y3R8b2N0ZXR8c2hvcnR8dW5zaWduZWQpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeGNlcHRpb25GaWVsZCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAg
ICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6c2V0dGVyUmFpc2VzU2VsZWN0b3IvOwot
ICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6
ICIiKTsKK3N1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oOjp8RE9NU3RyaW5nfERhdGV8YW55fGJv
b2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2hvcnR8dW5zaWduZWQp
JC8pKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlQXR0cmlidXRlVHlwZSgpKTsK
KyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAgICAgICAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7Ci0gICAgICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT50eXBlKCRhdHRyaWJ1dGVUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKK3N1YiBwYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZSgpOworICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAg
ICAgICAgJGF0dHJzLT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAg
ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgIGZvciBt
eSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRh
dHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7Cit9CiAK
LSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRl
RGF0YU5hbWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBl
KCRhdHRyaWJ1dGVEYXRhVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmli
dXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRhdHRycyA9IHt9OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwi
KTsKKyAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTIoKTsK
KyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0pIHsKKyAgICAgICAgICAgICRhdHRy
cy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
bXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5hdHRyaWJ1dGVzOwotICAgICAgICAgICAgICAgIHB1
c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKKyAgICAgICAgJGF0dHIgPSAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0
cn0pIHsKKyAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gJGF0dHJzOworfQogCi0gICAgICAgICAgICAgICAgcHJp
bnQgIiAgfCAgfD4gIEF0dHJpYnV0ZTsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkYXR0
cmlidXRlVHlwZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwiIERBVEEgVFlQRSBc
IiRhdHRyaWJ1dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRlckV4Y2VwdGlvblwi
IFNFVCBFWENFUFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAgICAgICAgICAgICAg
ICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRi
ZVF1aWV0Oworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
UmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
J10nKSB7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAgICAgICAgICAkZ2V0dGVy
RXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgICRzZXR0ZXJFeGNlcHRpb24g
PX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2Vw
dGlvbnN9ID0gc3BsaXQoLywvLCAkZ2V0dGVyRXhjZXB0aW9uKTsKLSAgICAgICAgICAgICAgICBA
eyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRzZXR0ZXJFeGNl
cHRpb24pOwotICAgICAgICAgICAgfSBlbHNpZiAoJGxpbmUgIX4gL15ccyooJElETFN0cnVjdHVy
ZTo6ZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggKT9jb25zdFxzKy8pIHsKLSAgICAgICAgICAgICAg
ICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlTWV0aG9kU2VsZWN0b3IvIG9yIGRp
ZSAiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIjsKK3N1YiBwYXJzZUV4dGVuZGVk
QXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7Cisg
ICAgfQorICAgIHJldHVybiB7fTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRtZXRob2RFeHRl
bmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJG1ldGhvZEV4
dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5l
ZCgkMik7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZFR5cGUgPSAoZGVmaW5lZCgkMykgPyAk
MyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAg
ICAgICAgIG15ICRtZXRob2ROYW1lID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcg
ZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9k
U2lnbmF0dXJlID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3Vy
Y2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMg
PSB7fTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRzZWxmLT5w
YXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0g
JHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MigpOworICAgICAgICByZXR1cm4gJGF0
dHJzOworICAgIH0KIAotICAgICAgICAgICAgICAgICgnJyA9fiAvXi8pOyAjIFJlc2V0IHZhcmlh
YmxlcyBuZWVkZWQgZm9yIHJlZ2V4cCBtYXRjaGluZworICAgIGlmICgkbmFtZSBlcSAiQ29uc3Ry
dWN0b3IiKSB7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9IFtdOworICAgIH0gZWxzZSB7Cisg
ICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9CisgICAg
cmV0dXJuICRhdHRyczsKK30KIAotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0
dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4Y2VwdGlv
biA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVS
ZXN0MgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MygkdG9rZW4tPnZhbHVlKCkpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OworfQogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9u
KCk7CitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiKTsKKyAgICAgICAgbXkg
JHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5
cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAiJiIg
LiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAifCIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ8
Iik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0
dXJuICRuYW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkYXR0
ci0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJu
ICRhdHRyOworICAgIH0KKyAgICByZXR1cm4gJG5hbWU7Cit9CiAKLSAgICAgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAgICAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNl
VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwi
KTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIpOworICAgICAgICBpZiAo
JHNlbGYtPnBhcnNlTnVsbCgpKSB7CisgICAgICAgICAgICByZXR1cm4gInNlcXVlbmNlPCIgLiAk
dHlwZSAuICI+PyI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gInNlcXVl
bmNlPCIgLiAkdHlwZSAuICI+IjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oOjp8RE9N
U3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0
ZXR8c2hvcnR8dW5zaWduZWQpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVUeXBlCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSBAdHlwZXMgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihET01TdHJpbmd8Ym9v
bGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9jdGV0fHNob3J0fHVuc2lnbmVkKSQvKSB7Cisg
ICAgICAgIHB1c2goQHR5cGVzLCRzZWxmLT5wYXJzZVByaW1pdGl2ZU9yU3RyaW5nVHlwZSgpKTsK
KyAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAg
ICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJvYmplY3QiKTsKKyAgICAgICAgcHVzaChAdHlwZXMsICJvYmplY3QiKTsK
KyAgICAgICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAg
ICAgIHJldHVybiBqb2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkRhdGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiRGF0ZSIpOworICAgICAgICBwdXNoKEB0eXBlcywgIkRhdGUiKTsKKyAgICAg
ICAgcHVzaChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJl
dHVybiBqb2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJhbnkiKTsKKyAgICAgICAgcHVzaChAdHlwZXMsICJhbnkiKTsKKyAgICAgICAgcHVzaChA
dHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCl9KTsKKyAg
ICAgICAgcmV0dXJuIGpvaW4oJycsIEB0eXBlcyk7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSkgewor
ICAgICAgICBwdXNoKEB0eXBlcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAg
cHVzaChAdHlwZXMsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVy
biBqb2luKCcnLCBAdHlwZXMpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHwt
ICBNZXRob2Q7IFNUQVRJQz8gXCIkaXNTdGF0aWNcIiBUWVBFIFwiJG1ldGhvZFR5cGVcIiBOQU1F
IFwiJG1ldGhvZE5hbWVcIiBFWENFUFRJT04/IFwiJG1ldGhvZEV4Y2VwdGlvblwiIiAuCi0gICAg
ICAgICAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAg
ICAiLCAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIg
dW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlQ29uc3RUeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gL14oRE9NU3RyaW5nfGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xv
Y3RldHxzaG9ydHx1bnNpZ25lZCkkLykgeworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJz
ZVByaW1pdGl2ZU9yU3RyaW5nVHlwZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlTnVsbCgp
KSB7CisgICAgICAgICAgICByZXR1cm4gJHR5cGUgLiAiPyI7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICR0eXBlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICAgICAgICAgICAgICRtZXRob2RFeGNlcHRpb24gPX4g
cy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlv
bnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsKK3N1YiBwYXJzZVByaW1pdGl2ZU9y
U3RyaW5nVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGxvbmd8c2hvcnR8
dW5zaWduZWQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuc2lnbmVkSW50ZWdl
clR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJvb2xl
YW4iKTsKKyAgICAgICAgcmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJieXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImJ5dGUiKTsKKyAgICAgICAgcmV0dXJuICJieXRlIjsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvY3RldCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvY3RldCIpOworICAgICAgICByZXR1cm4g
Im9jdGV0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmbG9hdCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmbG9hdCIp
OworICAgICAgICByZXR1cm4gImZsb2F0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJkb3VibGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiZG91YmxlIik7CisgICAgICAgIHJldHVybiAiZG91YmxlIjsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9NU3RyaW5nIik7CisgICAgICAg
IHJldHVybiAiRE9NU3RyaW5nIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRl
cnMoJG5ld0RhdGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZVVuc2lnbmVkSW50
ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5zaWdu
ZWQiKTsKKyAgICAgICAgcmV0dXJuICJ1bnNpZ25lZCAiIC4gJHNlbGYtPnBhcnNlSW50ZWdlclR5
cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGxvbmd8c2hvcnR8aW50
KSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KIAot
ICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAg
ICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0
YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRl
cyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0
ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJv
ciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFZhbHVl
ID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGlu
ZVxuKSIpKTsKK3N1YiBwYXJzZUludGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gL14oc2hvcnR8aW50KSQvKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImxvbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibG9uZyIpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNl
T3B0aW9uYWxMb25nKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAibG9uZyBsb25nIjsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gImxvbmciOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+bmFtZSgkY29uc3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5
cGUoJGNvbnN0VHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29u
c3RWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Citz
dWIgcGFyc2VPcHRpb25hbExvbmcKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9u
ZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJsb25nIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KIAot
ICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+Y29uc3RhbnRzOwotICAg
ICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKK3N1YiBwYXJzZVR5
cGVTdWZmaXgKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBzdWZmaXggPSAoKTsK
KworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJbIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiXSIpOworICAgICAgICBwdXNoKEBzdWZmaXgsICJbXSIpOworICAgICAgICBw
dXNoKEBzdWZmaXgsIEB7JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpfSk7CisgICAgICAgIHJldHVy
biBcQHN1ZmZpeDsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAg
ICAgICAgcHVzaChAc3VmZml4LCAiPyIpOworICAgICAgICBwdXNoKEBzdWZmaXgsIEB7JHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCl9KTsKKyAgICAgICAgcmV0dXJuIFxA
c3VmZml4OworICAgIH0KKyAgICByZXR1cm4gW107Cit9CiAKLSAgICAgICAgICAgICAgICBwcmlu
dCAiICB8ICAgfD4gIENvbnN0YW50OyBUWVBFIFwiJGNvbnN0VHlwZVwiIE5BTUUgXCIkY29uc3RO
YW1lXCIgVkFMVUUgXCIkY29uc3RWYWx1ZVwiXG4iIHVubGVzcyAkYmVRdWlldDsKLSAgICAgICAg
ICAgIH0KK3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQHN1ZmZpeCA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAg
ICAgIHB1c2goQHN1ZmZpeCwgIltdIik7CisgICAgICAgIHB1c2goQHN1ZmZpeCwgQHskc2VsZi0+
cGFyc2VUeXBlU3VmZml4KCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAc3VmZml4OworfQorCitz
dWIgcGFyc2VOdWxsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj8iKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPyIpOworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBwYXJzZVJldHVy
blR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidm9pZCIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ2b2lkIik7CisgICAg
ICAgIHJldHVybiAidm9pZCI7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXig6OnxET01TdHJpbmd8RGF0ZXxh
bnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxz
aG9ydHx1bnNpZ25lZCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGUoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7
Cit9CisKK3N1YiBwYXJzZVNjb3BlZE5hbWVMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgZXEgIjo6IikpIHsKKyAg
ICAgICAgbXkgQG5hbWVzID0gKCk7CisgICAgICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+cGFyc2VT
Y29wZWROYW1lKCkpOworICAgICAgICBwdXNoKEBuYW1lcywgQHskc2VsZi0+cGFyc2VTY29wZWRO
YW1lcygpfSk7CisgICAgICAgIHJldHVybiBcQG5hbWVzOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlU2NvcGVk
TmFtZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBuYW1lcyA9ICgpOworCisg
ICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAgICAgcHVz
aChAbmFtZXMsICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBsYXN0OwogICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG5hbWVzOwor
fQogCi0gICAgICAgIHByaW50ICIgIHwtLS0tPiBJbnRlcmZhY2U7IE5BTUUgXCIkaW50ZXJmYWNl
TmFtZVwiIiAuCi0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAg
ICAgICAgICAgICAgIiwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIHwtXG4g
fFxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFyc2VTY29wZWROYW1lCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQWJz
b2x1dGVTY29wZWROYW1lKCk7CiAgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUmVsYXRpdmVTY29wZWRO
YW1lKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIERldGVybWluZVBhcnNlTW9kZQor
c3ViIHBhcnNlQWJzb2x1dGVTY29wZWROYW1lCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OyAg
Ci0gICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OjoiKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBy
ZXR1cm4gIjo6IiAuICR0b2tlbi0+dmFsdWUoKSAuICRzZWxmLT5wYXJzZVNjb3BlZE5hbWVQYXJ0
cygpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpKTsKK30KIAotICAgIG15ICRtb2RlID0gTU9ERV9VTkRFRjsKLSAgICBpZiAoJF8gPX4gL21v
ZHVsZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX01PRFVMRTsKLSAgICB9IGVsc2lmICgkXyA9
fiAvaW50ZXJmYWNlLykgewotICAgICAgICAkbW9kZSA9IE1PREVfSU5URVJGQUNFOwotICAgIH0g
ZWxzaWYgKCRfID1+IC9leGNlcHRpb24vKSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9FWENFUFRJ
T047CitzdWIgcGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKSAuICRzZWxmLT5wYXJzZVNj
b3BlZE5hbWVQYXJ0cygpOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpKTsKK30KIAotICAgIHJldHVybiAkbW9kZTsKK3N1YiBwYXJzZVNjb3Bl
ZE5hbWVQYXJ0cworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7
CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjo6Iik7CisgICAgICAgICAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAgICAgcHVzaChA
bmFtZXMsICc6OicpOworICAgICAgICAgICAgcHVzaChAbmFtZXMsICR0b2tlbi0+dmFsdWUoKSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiBqb2luKCcnLCBAbmFtZXMpOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3Vi
IFByb2Nlc3NTZWN0aW9uCitzdWIgcGFyc2VPcHRpb25hbFNlbWljb2xvbgogewotICAgIG15ICRv
YmplY3QgPSBzaGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9NT0RVTEUpIHsK
LSAgICAgICAgZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZhdGFsIGVycm9yIVxuIikg
aWYgKCRkb2N1bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50
KCk7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVudCk7Ci0gICAgfSBlbHNp
ZiAoJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VNb2RlIGVxIE1PREVfRVhD
RVBUSU9OKSB7Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNzKCk7Ci0gICAgICAgIG15
ICRzZWN0aW9uTmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgPyAiaW50ZXJmYWNl
IiA6ICJleGNlcHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJzZUludGVyZmFjZSgkbm9kZSwg
JHNlY3Rpb25OYW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8gbW9kdWxlIHNwZWNpZmllZCEg
RmF0YWwgRXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAgICAgICBteSAkYXJyYXlS
ZWYgPSAkZG9jdW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5vZGUp
OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKICAgICB9Cit9CisKK3N1YiBh
cHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkbWVt
YmVycyA9IHNoaWZ0OwogCi0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKKyAgICBmb3IgbXkg
JGl0ZW0gKEB7JG1lbWJlcnN9KSB7CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21BdHRy
aWJ1dGUiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGl0
ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVt
KSBlcSAiZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5jb25z
dGFudHN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlm
IChyZWYoJGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0
YU5vZGUtPmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3N1YiBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
KworICAgIGlmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3Ii
fSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifX0pOworICAgICAgICAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Cisg
ICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9IGVsc2lm
IChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7
CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgICAgICBteSAlYXR0cmlidXRlcyA9ICV7JGV4dGVuZGVkQXR0cmlidXRl
TGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn19OworICAgICAgICBteSBAYXR0cmlidXRlS2V5cyA9
IGtleXMgKCVhdHRyaWJ1dGVzKTsKKyAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZSA9ICRhdHRy
aWJ1dGVLZXlzWzBdOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwg
QHskYXR0cmlidXRlc3skY29uc3RydWN0b3JOYW1lfX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSA9ICRjb25zdHJ1Y3Rvck5hbWU7CisgICAg
ICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9CisgICAgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiB9CiAK
IDE7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyRWRpdG9yc0RyYWZ0LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXJFZGl0b3JzRHJhZnQucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRjMTg5NGVkNTVkMzAxZTc3MTM0NDA4
ZGJjMmM3MTM5MDQwM2MwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMUGFyc2VyRWRpdG9yc0RyYWZ0LnBtCkBAIC0wLDAgKzEsMTkyNiBAQAor
IyAKKyMgS0RPTSBJREwgcGFyc2VyCisjCisjIENvcHlyaWdodCAoQykgMjAwNSBOaWtvbGFzIFpp
bW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyMgCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyMgCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMgCisjIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyMgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisjIAorCitwYWNrYWdlIElETFBhcnNlcjsKKwordXNlIENsYXNzOjpTdHJ1Y3Q7CisK
K3VzZSBJUEM6Ok9wZW4yOwordXNlIElETFN0cnVjdHVyZTsKK3VzZSBwcmVwcm9jZXNzb3I7CisK
K3VzZSBzdHJpY3Q7Cit1c2UgY29uc3RhbnQgU3RyaW5nVG9rZW4gPT4gMDsKK3VzZSBjb25zdGFu
dCBJbnRlZ2VyVG9rZW4gPT4gMTsKK3VzZSBjb25zdGFudCBGbG9hdFRva2VuID0+IDI7Cit1c2Ug
Y29uc3RhbnQgSWRlbnRpZmllclRva2VuID0+IDM7Cit1c2UgY29uc3RhbnQgT3RoZXJUb2tlbiA9
PiA0OwordXNlIGNvbnN0YW50IEVtcHR5VG9rZW4gPT4gNTsKKworc3RydWN0KCBUb2tlbiA9PiB7
CisgICAgdHlwZSA9PiAnJCcsICMgdHlwZSBvZiB0b2tlbgorICAgIHZhbHVlID0+ICckJyAjIHZh
bHVlIG9mIHRva2VuCit9KTsKKworbXkgJGJlUXVpZXQgPSAwOworCitzdWIgbmV3IHsKKyAgICBt
eSAkY2xhc3MgPSBzaGlmdDsKKyAgICAkYmVRdWlldCA9IHNoaWZ0OworCisgICAgbXkgJGVtcHR5
VG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAgJGVtcHR5VG9rZW4tPnR5cGUoRW1wdHlUb2tlbik7
CisgICAgJGVtcHR5VG9rZW4tPnZhbHVlKCJlbXB0eSIpOworCisgICAgbXkgJHNlbGYgPSB7Cisg
ICAgICAgIERvY3VtZW50Q29udGVudCA9PiAiIiwKKyAgICAgICAgRW1wdHlUb2tlbiA9PiAkZW1w
dHlUb2tlbiwKKyAgICAgICAgTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBUb2tl
biA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTGluZSA9PiAiIiwKKyAgICAgICAgTGluZU51bWJl
ciA9PiAxCisgICAgfTsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKK30KKworc3Vi
IGFzc2VydFRva2VuVmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tl
biA9IHNoaWZ0OworICAgIG15ICR2YWx1ZSA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7
CisgICAgbXkgJG1zZyA9ICJOZXh0IHRva2VuIHNob3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0
ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlmIChk
ZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAkbGluZTsKKyAgICB9Cisg
ICAgZGllICRtc2cgdW5sZXNzICR0b2tlbi0+dmFsdWUoKSBlcSAkdmFsdWU7Cit9CisKK3N1YiBh
c3NlcnRUb2tlblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9
IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgZGllICJOZXh0IHRva2VuJ3MgdHlw
ZSBzaG91bGQgYmUgIiAuICR0eXBlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnR5cGUoKSAuICIgYXQg
IiAuICRzZWxmLT57TGluZX0gdW5sZXNzICR0b2tlbi0+dHlwZSgpIGVxICR0eXBlOworfQorCitz
dWIgYXNzZXJ0VW5leHBlY3RlZFRva2VuCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkdG9rZW4gPSBzaGlmdDsKKyAgICBkaWUgIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tlbiAu
ICIgYXQgIiAuICRzZWxmLT57TGluZX07Cit9CisKK3N1YiBQYXJzZQoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGZpbGVOYW1lID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBz
aGlmdDsKKyAgICBteSAkcHJlcHJvY2Vzc29yID0gc2hpZnQ7CisKKyAgICBteSBAZGVmaW5pdGlv
bnMgPSAoKTsKKworICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcgdG8gcGFyc2UgJGZpbGVOYW1l
Li4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CisKKyAgICBteSBAbGluZXMgPSBhcHBseVByZXBy
b2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKTsKKyAgICAkc2VsZi0+
e0xpbmV9ID0gJGxpbmVzWzBdOworICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9IGpvaW4o
JyAnLCBAbGluZXMpOworCisgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgZXZhbCB7CisgICAg
ICAgIG15ICRyZXN1bHQ7CisgICAgICAgICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9u
cygpOworICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgQHskcmVzdWx0fSk7CisKKyAgICAgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgp
ICE9IEVtcHR5VG9rZW4pIHsKKyAgICAgICAgICAgIGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5k
ICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgYXQgIiAuICRzZWxmLT57TGluZX07CisgICAgICAgIH0K
KyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsKKworICAgIGRpZSAi
Tm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBAZGVmaW5pdGlvbnM7CisKKyAgICBteSAkZG9jdW1l
bnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKyAgICAkZG9jdW1lbnQtPm1vZHVsZSgiIik7CisgICAg
cHVzaChAeyRkb2N1bWVudC0+Y2xhc3Nlc30sIEBkZWZpbml0aW9ucyk7CisKKyAgICBwcmludCAi
IHwgKioqIEZpbmlzaGVkIHBhcnNpbmchXG4iIHVubGVzcyAkYmVRdWlldDsKKworICAgICRkb2N1
bWVudC0+ZmlsZU5hbWUoJGZpbGVOYW1lKTsKKyAgICByZXR1cm4gJGRvY3VtZW50OworfQorCitz
dWIgbmV4dFRva2VuCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICByZXR1cm4gJHNlbGYt
PntOZXh0VG9rZW59OworfQorCitzdWIgZ2V0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgICRzZWxmLT57VG9rZW59ID0gJHNlbGYtPntOZXh0VG9rZW59OworICAgICRzZWxmLT57
TmV4dFRva2VufSA9ICRzZWxmLT5nZXRUb2tlbkludGVybmFsKCk7CisgICAgcmV0dXJuICRzZWxm
LT57VG9rZW59OworfQorCitteSAkd2hpdGVzcGFjZVRva2VuUGF0dGVybiA9ICdeW1x0XG5cciBd
KltcblxyXSc7CitteSAkZmxvYXRUb2tlblBhdHRlcm4gPSAnXigtPygoWzAtOV0rXC5bMC05XSp8
WzAtOV0qXC5bMC05XSspKFtFZV1bKy1dP1swLTldKyk/fFswLTldK1tFZV1bKy1dP1swLTldKykp
JzsKK215ICRpbnRlZ2VyVG9rZW5QYXR0ZXJuID0gJ14oLT9bMS05XVswLTldKnwtPzBbWHhdWzAt
OUEtRmEtZl0rfC0/MFswLTddKiknOworbXkgJHN0cmluZ1Rva2VuUGF0dGVybiA9ICdeKFwiW15c
Il0qXCIpJzsKK215ICRpZGVudGlmaWVyVG9rZW5QYXR0ZXJuID0gJ14oW0EtWl9hLXpdWzAtOUEt
Wl9hLXpdKiknOworbXkgJG90aGVyVG9rZW5QYXR0ZXJuID0gJ14oOjp8XC5cLlwufFteXHRcblxy
IDAtOUEtWl9hLXpdKSc7CisKK3N1YiBnZXRUb2tlbkludGVybmFsCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyR3aGl0ZXNw
YWNlVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4g
cy8oJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4pLy87CisgICAgICAgIG15ICRza2lwcGVkID0gJDE7
CisgICAgICAgICRzZWxmLT57TGluZU51bWJlcn0rKyB3aGlsZSAoJHNraXBwZWQgPX4gbS9cbi9n
KTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC9eKFteXG5ccl0rKS87Cisg
ICAgICAgICMgTGluZSBpcyB1c2VkIGZvciBlcnJvciBvdXRwdXQuCisgICAgICAgIGlmIChkZWZp
bmVkKCQxKSkgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJl
cn0gLiAiOiIgLiAkMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT57TGlu
ZX0gPSAiVW5rbm93biI7CisgICAgICAgIH0KKyAgICB9CisgICAgJHNlbGYtPntEb2N1bWVudENv
bnRlbnR9ID1+IHMvXihbXHRcblxyIF0rKS8vOworICAgIGlmIChsZW5ndGgoJHNlbGYtPntEb2N1
bWVudENvbnRlbnR9KSA9PSAwKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+e0VtcHR5VG9rZW59
OworICAgIH0KKworICAgIG15ICR0b2tlbiA9IFRva2VuLT5uZXcoKTsKKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kZmxvYXRUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0
b2tlbi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAg
ICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRmbG9hdFRva2VuUGF0dGVybi8vOwor
ICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENv
bnRlbnR9ID1+IC8kaW50ZWdlclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBl
KEludGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2Vs
Zi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaW50ZWdlclRva2VuUGF0dGVybi8vOworICAgICAg
ICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9
ID1+IC8kc3RyaW5nVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoU3RyaW5n
VG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1
bWVudENvbnRlbnR9ID1+IHMvJHN0cmluZ1Rva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4g
JHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaWRl
bnRpZmllclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3Vt
ZW50Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1
cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8k
b3RoZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShPdGhlclRva2VuKTsK
KyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250
ZW50fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOwor
ICAgIH0KKyAgICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworfQorCitzdWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfEJ5dGVTdHJpbmd8
dHlwZWRlZnxieXRlfERPTVN0cmluZ3xzaG9ydHxleGNlcHRpb258ZmxvYXR8YXR0cmlidXRlfHN0
YXRpY3xyZWFkb25seXxjYWxsYmFja3xkZWxldGVyfGRpY3Rpb25hcnl8dW5zaWduZWR8bGVnYWN5
Y2FsbGVyfHNldHRlcnxpbnRlcmZhY2V8b3B0aW9uYWx8c2VxdWVuY2V8dW5yZXN0cmljdGVkfHN0
cmluZ2lmaWVyfFwofHZvaWR8Z2V0dGVyfGludHxsb25nfFxbfGNvbnN0fG9jdGV0fGVudW18Ym9v
bGVhbnxpbmhlcml0fHBhcnRpYWx8RGF0ZXxjcmVhdG9yfGFueXxzZXJpYWxpemVyfG9iamVjdCkk
LykpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgIG15ICRkZWZpbml0aW9uID0g
JHNlbGYtPnBhcnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
ICAgIGlmIChkZWZpbmVkICgkZGVmaW5pdGlvbikpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBk
ZWZpbml0aW9ucywgJGRlZmluaXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBkZWZp
bml0aW9uczsKK30KKworc3ViIHBhcnNlRGVmaW5pdGlvbgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGNh
bGxiYWNrfGludGVyZmFjZSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJh
Y2tPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
UGFydGlhbCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGlj
dGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNl
cHRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW0oJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlw
ZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrT3JJbnRlcmZh
Y2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY2FsbGJhY2siKTsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSk7Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jl
c3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2UKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcg
ZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRpbnRlcmZh
Y2VOYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgk
aW50ZXJmYWNlTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+
cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgbXkgJGlu
dGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAg
ICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMpOworICAgICAg
ICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlUGFydGlh
bAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInBhcnRpYWwiKTsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZVBhcnRpYWxEZWZpbml0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30K
Kworc3ViIHBhcnNlUGFydGlhbERlZmluaXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNl
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbEludGVyZmFjZSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0
aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbERpY3Rpb25hcnko
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7Cisg
ICAgICAgICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAjIHJldHVy
biB1bmRlZmVpbmVkLgorICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VN
ZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAaW50ZXJmYWNlTWVtYmVy
cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4p
IHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8Qnl0ZVN0cmluZ3x0eXBlZGVmfGJ5dGV8
RE9NU3RyaW5nfHNob3J0fGV4Y2VwdGlvbnxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRvbmx5
fGNhbGxiYWNrfGRlbGV0ZXJ8ZGljdGlvbmFyeXx1bnNpZ25lZHxsZWdhY3ljYWxsZXJ8c2V0dGVy
fGludGVyZmFjZXxvcHRpb25hbHxzZXF1ZW5jZXx1bnJlc3RyaWN0ZWR8c3RyaW5naWZpZXJ8XCh8
dm9pZHxnZXR0ZXJ8aW50fGxvbmd8XFt8Y29uc3R8b2N0ZXR8ZW51bXxib29sZWFufGluaGVyaXR8
cGFydGlhbHxEYXRlfGNyZWF0b3J8YW55fHNlcmlhbGl6ZXJ8b2JqZWN0KSQvKSkgeworICAgICAg
ICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdCgpOworICAgICAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlciA9ICRzZWxmLT5w
YXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgICAg
IGlmIChkZWZpbmVkICRpbnRlcmZhY2VNZW1iZXIpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bnRlcmZhY2VNZW1iZXJzLCAkaW50ZXJmYWNlTWVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVyCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
c2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29u
c3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3RyaWN0
ZWR8ZG91YmxlfEJ5dGVTdHJpbmd8Ynl0ZXxcKHx2b2lkfGdldHRlcnxpbnR8RE9NU3RyaW5nfHN0
cmluZ2lmaWVyfGxvbmd8c2hvcnR8ZmxvYXR8YXR0cmlidXRlfHN0YXRpY3xyZWFkb25seXxvY3Rl
dHxkZWxldGVyfG9iamVjdHxib29sZWFufGluaGVyaXR8dW5zaWduZWR8bGVnYWN5Y2FsbGVyfHNl
cXVlbmNlfHNldHRlcnxEYXRlfGNyZWF0b3J8c2VyaWFsaXplcnxhbnkpJC8pKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2Vs
Zi0+cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1l
bWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiOyIpOworICAgICAgICAjIHJldHVybiB1bmRlZmVpbmVkLgorICAgICAgICByZXR1cm47
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKGRvdWJsZXxCeXRlU3RyaW5nfHR5cGVkZWZ8Ynl0ZXxET01T
dHJpbmd8c2hvcnR8ZXhjZXB0aW9ufGZsb2F0fGF0dHJpYnV0ZXxzdGF0aWN8cmVhZG9ubHl8Y2Fs
bGJhY2t8ZGVsZXRlcnxkaWN0aW9uYXJ5fHVuc2lnbmVkfGxlZ2FjeWNhbGxlcnxzZXR0ZXJ8aW50
ZXJmYWNlfG9wdGlvbmFsfHNlcXVlbmNlfHVucmVzdHJpY3RlZHxzdHJpbmdpZmllcnxcKHx2b2lk
fGdldHRlcnxpbnR8bG9uZ3xcW3xjb25zdHxvY3RldHxlbnVtfGJvb2xlYW58aW5oZXJpdHxwYXJ0
aWFsfERhdGV8Y3JlYXRvcnxhbnl8c2VyaWFsaXplcnxvYmplY3QpJC8pKSB7CisgICAgICAgICAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KCk7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgIH0KKyAgICAjIHJldHVybiB1bmRlZmluZWQuCisgICAgcmV0dXJuOwor
fQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14odW5yZXN0cmlj
dGVkfGRvdWJsZXxCeXRlU3RyaW5nfGJ5dGV8XCh8aW50fERPTVN0cmluZ3xsb25nfHNob3J0fGZs
b2F0fG9jdGV0fGJvb2xlYW58dW5zaWduZWR8RGF0ZXxvYmplY3R8c2VxdWVuY2V8YW55KSQvKSkg
eworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxm
LT5wYXJzZURlZmF1bHQoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI7Iik7CisgICAgICAgICMgcmV0dXJuIHVuZGVmaW5lZC4KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlUGFydGlhbERpY3Rpb25hcnkKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICMgcmV0
dXJuIHVuZGVmaW5lZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlRGVmYXVsdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZURlZmF1bHRWYWx1ZSgpOworICAgIH0KKyAgICAjIHJldHVybiB1bmRlZmluZWQu
CisgICAgcmV0dXJuOworfQorCitzdWIgcGFyc2VEZWZhdWx0VmFsdWUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgo
JG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB8fCAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2Vy
VG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXigtfG51bGx8TmFOfHRydWV8ZmFsc2V8SW5m
aW5pdHkpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdFZhbHVlKCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlv
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9
IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXhjZXB0aW9uTmFtZVRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGV4
Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5u
YW1lKCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlz
RXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2Vs
Zi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICBteSAkZXhjZXB0aW9uTWVtYmVycyA9
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBhcHBseU1lbWJlckxp
c3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAg
IHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25NZW1iZXJzCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWVtYmVycyA9ICgpOworCisgICAgd2hpbGUg
KDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlm
ICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihkb3VibGV8Qnl0ZVN0cmluZ3x0eXBlZGVmfGJ5dGV8RE9NU3RyaW5nfHNob3J0fGV4Y2Vw
dGlvbnxmbG9hdHxhdHRyaWJ1dGV8c3RhdGljfHJlYWRvbmx5fGNhbGxiYWNrfGRlbGV0ZXJ8ZGlj
dGlvbmFyeXx1bnNpZ25lZHxsZWdhY3ljYWxsZXJ8c2V0dGVyfGludGVyZmFjZXxvcHRpb25hbHxz
ZXF1ZW5jZXx1bnJlc3RyaWN0ZWR8c3RyaW5naWZpZXJ8XCh8dm9pZHxnZXR0ZXJ8aW50fGxvbmd8
XFt8Y29uc3R8b2N0ZXR8ZW51bXxib29sZWFufGluaGVyaXR8cGFydGlhbHxEYXRlfGNyZWF0b3J8
YW55fHNlcmlhbGl6ZXJ8b2JqZWN0KSQvKSkgeworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAg
ICAgICAgbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICRtZW1iZXIpIHsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkbWVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAbWVtYmVyczsKK30KKworc3ViIHBhcnNlSW5oZXJpdGFuY2UKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15IEBwYXJlbnQgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6Iik7CisgICAgICAg
IG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcHVzaChAcGFyZW50LCAk
dG9rZW4tPnZhbHVlKCkpOworICAgICAgICAjIE11bHRpcGxlIGluaGVyaXRhbmNlPworICAgICAg
ICBwdXNoKEBwYXJlbnQsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgIH0KKyAg
ICByZXR1cm4gXEBwYXJlbnQ7Cit9CisKK3N1YiBwYXJzZUVudW0KK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
ZW51bSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJlbnVtIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVM
aXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlRW51bVZhbHVlTGlzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAg
ICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1
YiBwYXJzZUVudW1WYWx1ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmlu
Z1Rva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgIH0KKyAgICBy
ZXR1cm47Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkc2VsZi0+cGFyc2VSZXR1cm5UeXBl
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
KCIpOworICAgICAgICAkc2VsZi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAjIHVu
ZGVmaW5lZAorICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VUeXBlZGVmCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAidHlwZWRlZiIpOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgIyB1bmRlZmluZWQKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNl
SW1wbGVtZW50c1N0YXRlbWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiaW1wbGVtZW50cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxm
LT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKwor
c3ViIHBhcnNlQ29uc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNvbnN0Iik7CisgICAgICAgICRuZXdEYXRhTm9k
ZS0+dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5cGUoKSk7CisgICAgICAgIG15ICRjb25zdE5hbWVU
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCRjb25zdE5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5uYW1lKCRjb25zdE5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkbmV3RGF0YU5vZGUt
PnZhbHVlKCRzZWxmLT5wYXJzZUNvbnN0VmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAkbmV3RGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0
dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VmFsdWUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihmYWxzZXx0cnVlKSQvKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIm51bGwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAibnVsbCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgoJG5l
eHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oLXxOYU58
SW5maW5pdHkpJC8pKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VGbG9hdExpdGVyYWwo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUJv
b2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInRydWUiKSB7Cisg
ICAgICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gInRydWUiOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZhbHNlIikgeworICAgICAgICAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICJmYWxzZSI7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VGbG9hdExp
dGVyYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICItIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5pdHkiKTsKKyAg
ICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIkluZmluaXR5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIkluZmluaXR5Iik7CisgICAgICAgIHJldHVybiAiSW5maW5pdHkiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIk5hTiIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJOYU4iKTsKKyAgICAgICAgcmV0dXJu
ICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJz
ZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxp
emVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXplcigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHN0cmlu
Z2lmaWVyfHN0YXRpYykkLykgeworICAgICAgICBteSAkcXVhbGlmaWVyID0gJHNlbGYtPnBhcnNl
UXVhbGlmaWVyKCk7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9ICRzZWxmLT5wYXJzZUF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYg
KGRlZmluZWQoJG5ld0RhdGFOb2RlKSAmJiAkcXVhbGlmaWVyIGVxICJzdGF0aWMiKSB7CisgICAg
ICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKDEpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihy
ZWFkb25seXxhdHRyaWJ1dGV8aW5oZXJpdCkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14o
dW5yZXN0cmljdGVkfGRvdWJsZXxCeXRlU3RyaW5nfGJ5dGV8XCh8dm9pZHxnZXR0ZXJ8aW50fERP
TVN0cmluZ3xsb25nfHNob3J0fGZsb2F0fG9jdGV0fGRlbGV0ZXJ8b2JqZWN0fGJvb2xlYW58dW5z
aWduZWR8bGVnYWN5Y2FsbGVyfHNlcXVlbmNlfHNldHRlcnxEYXRlfGNyZWF0b3J8YW55KSQvKSkg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJzZXJpYWxpemVyIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJz
ZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgk
bmV4dC0+dmFsdWUoKSBlcSAiKCIpKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVy
YXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm47Cit9
CisKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInsiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIp
OworICAgICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcCgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50
aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVNlcmlhbGl6YXRp
b25QYXR0ZXJuTWFwCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0
ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiaW5oZXJpdCIpOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tl
bigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNlU2Vy
aWFsaXphdGlvblBhdHRlcm5MaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdl
dHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJnZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm47Cit9
CisKK3N1YiBwYXJzZUlkZW50aWZpZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSBAaWRlbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgewor
ICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIs
Iik7CisgICAgICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAg
ICAgICAgICAgcHVzaChAaWRlbnRzLCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBpZGVu
dHM7Cit9CisKK3N1YiBwYXJzZVF1YWxpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJzdGF0aWMiKTsKKyAgICAgICAgcmV0dXJuICJzdGF0aWMiOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0cmluZ2lmaWVyIik7Cisg
ICAgICAgIHJldHVybiAic3RyaW5naWZpZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JP
cGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14ocmVhZG9ubHl8YXR0cmlidXRlKSQvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3RyaWN0ZWR8ZG91YmxlfEJ5dGVT
dHJpbmd8Ynl0ZXxcKHx2b2lkfGludHxET01TdHJpbmd8bG9uZ3xzaG9ydHxmbG9hdHxhbnl8b2N0
ZXR8Ym9vbGVhbnx1bnNpZ25lZHxzZXF1ZW5jZXxEYXRlfG9iamVjdCkkLykpIHsKKyAgICAgICAg
bXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRk
YXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0
YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKHJlYWRvbmx5fGF0dHJpYnV0ZXxpbmhlcml0KSQvKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZUluaGVyaXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3Qo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
c2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gL14ocmVhZG9ubHl8YXR0cmlidXRlKSQvKSB7CisgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJz
ZVJlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkg
YXR0cmlidXRlIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnR5cGUoImF0dHJpYnV0ZSIpOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYXR0cmlidXRlIik7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0
b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
Pm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJz
ZUdldCgpOworICAgICAgICBpZiAoZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNo
KEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNl
cyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhj
ZXB0aW9uc30sIEB7JHNlbGYtPnBhcnNlU2V0UmFpc2VzKCl9KTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJbmhlcml0
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIpOworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBwYXJzZVJlYWRP
bmx5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInJlYWRvbmx5IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJlYWRvbmx5Iik7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNl
T3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGNyZWF0b3J8ZGVsZXRlcnxz
ZXR0ZXJ8bGVnYWN5Y2FsbGVyfGdldHRlcikkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlU3BlY2lhbE9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
aWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKHVucmVzdHJpY3RlZHxkb3VibGV8Qnl0ZVN0cmluZ3xieXRlfFwofHZvaWR8aW50fERP
TVN0cmluZ3xsb25nfHNob3J0fGZsb2F0fGFueXxvY3RldHxib29sZWFufHVuc2lnbmVkfHNlcXVl
bmNlfERhdGV8b2JqZWN0KSQvKSkgeworICAgICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5w
YXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlT3Bl
cmF0aW9uT3JJdGVyYXRvclJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlm
IChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNpZ25hdHVy
ZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9k
ZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSk7Cit9CisKK3N1YiBwYXJzZVNwZWNpYWxPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihj
cmVhdG9yfGRlbGV0ZXJ8c2V0dGVyfGxlZ2FjeWNhbGxlcnxnZXR0ZXIpJC8pIHsKKyAgICAgICAg
JHNlbGYtPnBhcnNlU3BlY2lhbCgpOworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOwor
ICAgICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAg
ICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAg
ICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlU3BlY2lhbHMKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihj
cmVhdG9yfGRlbGV0ZXJ8c2V0dGVyfGxlZ2FjeWNhbGxlcnxnZXR0ZXIpJC8pIHsKKyAgICAgICAg
ICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VT
cGVjaWFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiKTsK
KyAgICAgICAgcmV0dXJuICJnZXR0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInNldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJzZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY3JlYXRvciIpOworICAgICAgICByZXR1
cm4gImNyZWF0b3IiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
ZGVsZXRlciIpOworICAgICAgICByZXR1cm4gImRlbGV0ZXIiOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsZWdhY3ljYWxsZXIiKTsKKyAgICAgICAgcmV0
dXJuICJsZWdhY3ljYWxsZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvclJl
c3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiaXRlcmF0b3IiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VJdGVyYXRvclJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlm
ICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSBl
cSAiKCIpKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlSXRlcmF0b3JSZXN0Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIml0ZXJhdG9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIml0ZXJhdG9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZU9wdGlv
bmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVjdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKwor
c3ViIHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXig9fDspJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBw
YXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0
dXJuOworfQorCitzdWIgcGFyc2VPcGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSkgeworICAgICAgICBteSAkbmV3
RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFy
c2VPcHRpb25hbElkZW50aWZpZXIoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
Pm5hbWUoJG5hbWUpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIigiLCAkbmFtZSk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFt
ZXRlcnN9LCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICBwdXNoKEB7
JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CisKK3N1YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICByZXR1
cm4gIiI7Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50TGlzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKHVucmVzdHJpY3RlZHxkb3VibGV8Qnl0ZVN0cmluZ3xieXRl
fFwofGludHxET01TdHJpbmd8bG9uZ3xzaG9ydHxcW3xmbG9hdHxvY3RldHxib29sZWFufHVuc2ln
bmVkfG9wdGlvbmFsfERhdGV8b2JqZWN0fHNlcXVlbmNlfGFueSkkLykpIHsKKyAgICAgICAgcHVz
aChAYXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgcHVzaChAYXJn
dW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgfQorICAgIHJldHVybiBc
QGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5w
YXJzZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1YiBwYXJzZUFy
Z3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8
fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oZG91YmxlfEJ5dGVTdHJpbmd8dHlwZWRlZnxieXRlfERP
TVN0cmluZ3xzaG9ydHxleGNlcHRpb258ZmxvYXR8YXR0cmlidXRlfHN0YXRpY3xyZWFkb25seXxj
YWxsYmFja3xkZWxldGVyfGRpY3Rpb25hcnl8dW5zaWduZWR8bGVnYWN5Y2FsbGVyfHNldHRlcnxp
bnRlcmZhY2V8b3B0aW9uYWx8c2VxdWVuY2V8dW5yZXN0cmljdGVkfHN0cmluZ2lmaWVyfFwofHZv
aWR8Z2V0dGVyfGludHxsb25nfFxbfGNvbnN0fG9jdGV0fGVudW18Ym9vbGVhbnxpbmhlcml0fHBh
cnRpYWx8RGF0ZXxjcmVhdG9yfGFueXxzZXJpYWxpemVyfG9iamVjdCkkLykpIHsKKyAgICAgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
TGlzdCgpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJn
dW1lbnQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9y
UmVxdWlyZWRBcmd1bWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcg
ZG9tU2lnbmF0dXJlKCk7CisgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib3B0aW9uYWwiKTsKKyAg
ICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5v
ZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAiPyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXigu
KilcPyQvKSB7CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDAp
OworICAgICAgICB9CisgICAgICAgICMgUmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJv
YmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAg
ICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgICRwYXJhbURhdGFOb2Rl
LT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RGVmYXVsdCgpOworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlm
ICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9
fiAvXih1bnJlc3RyaWN0ZWR8ZG91YmxlfEJ5dGVTdHJpbmd8Ynl0ZXxcKHxpbnR8RE9NU3RyaW5n
fGxvbmd8c2hvcnR8ZmxvYXR8b2N0ZXR8Ym9vbGVhbnx1bnNpZ25lZHxEYXRlfG9iamVjdHxzZXF1
ZW5jZXxhbnkpJC8pKSB7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwor
ICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgICAg
ICBpZiAoJHR5cGUgPX4gL14oLiopXD8kLykgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUt
PmlzTnVsbGFibGUoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAgICAgICAgfQorICAgICAgICAjIFJlbW92ZSBhbGwgIj8i
IGlmIGV4aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAgICAgICAgJHR5
cGUgPX4gcy9cPy8vZzsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOworICAg
ICAgICAkc2VsZi0+cGFyc2VFbGxpcHNpcygpOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+bmFt
ZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAgIHJldHVybiAkcGFyYW1EYXRh
Tm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSk7Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50TmFtZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC9eKHVucmVzdHJpY3RlZHxzdHJpbmdpZmllcnxleGNlcHRpb258Z2V0dGVyfGlt
cGxlbWVudHN8dHlwZWRlZnxjcmVhdG9yfGNvbnN0fGF0dHJpYnV0ZXxzdGF0aWN8Y2FsbGJhY2t8
ZGVsZXRlcnxlbnVtfGRpY3Rpb25hcnl8aW5oZXJpdHxsZWdhY3ljYWxsZXJ8c2V0dGVyfHBhcnRp
YWx8aW50ZXJmYWNlfHNlcmlhbGl6ZXIpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUFyZ3VtZW50TmFtZUtleXdvcmQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSk7Cit9CisKK3N1YiBwYXJzZUVsbGlwc2lzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIi4uLiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIuLi4iKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAw
OworfQorCitzdWIgcGFyc2VFeGNlcHRpb25NZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3Qi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
fHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHVucmVzdHJpY3RlZHxkb3VibGV8Qnl0ZVN0cmluZ3xi
eXRlfFwofGludHxET01TdHJpbmd8bG9uZ3xzaG9ydHxmbG9hdHxhbnl8b2N0ZXR8Ym9vbGVhbnx1
bnNpZ25lZHxzZXF1ZW5jZXxEYXRlfG9iamVjdCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUV4Y2VwdGlvbkZpZWxkKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3Vi
IHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8
ICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3RyaWN0ZWR8ZG91YmxlfEJ5dGVTdHJpbmd8Ynl0
ZXxcKHxpbnR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8ZmxvYXR8b2N0ZXR8Ym9vbGVhbnx1bnNpZ25l
ZHxEYXRlfG9iamVjdHxzZXF1ZW5jZXxhbnkpJC8pKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9k
ZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFk
b25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRv
bVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNl
bGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4p
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOworICAgICAgICBteSAkYXR0
ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7CisgICAgICAgIGZvciBteSAka2V5
IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57
JGtleX07CisgICAgICAgIH0KKyAgICAgICAgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0pIHsKKyAgICAg
ICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQorICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iKTsKKyAgICB9
CisgICAgcmV0dXJuICRhdHRyczsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMgPSB7fTsKKworICAgIHdoaWxl
ICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsKKyAgICAgICAgICAgIG15ICRhdHRyID0g
JHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKCk7CisgICAgICAgICAgICBmb3IgbXkgJGtl
eSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0
dHItPnska2V5fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICRhdHRyczsKK30KKworc3ViIHBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZh
bHVlKCkpOworICAgIH0KKyAgICAjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFNwZWMgZG9lc24n
IGFsbG93ICJbXSIuIEJ1dCBXZWJLaXQgcmVxdWlyZXMuCisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICddJykgeworICAgICAgICByZXR1cm4ge307CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZTIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAg
IH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAk
YXR0cnMgPSB7fTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRz
ZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgJGF0dHJzLT57JG5h
bWV9ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MigpOworICAgICAgICByZXR1
cm4gJGF0dHJzOworICAgIH0KKworICAgIGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7Cisg
ICAgICAgICRhdHRycy0+eyRuYW1lfSA9IFtdOworICAgIH0gZWxzZSB7CisgICAgICAgICRhdHRy
cy0+eyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9CisgICAgcmV0dXJuICRhdHRy
czsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVSZXN0MygkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFt
ZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlm
aWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAiJiIgLiAkdG9rZW4tPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAifCIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ8Iik7CisgICAgICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gInwiIC4g
JHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7
CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkYXR0ci0+eyRuYW1lfSA9ICRzZWxm
LT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAg
ICByZXR1cm4gJG5hbWU7Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYXR0cmlidXRlIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIpOworICAgICAg
ICByZXR1cm4gImF0dHJpYnV0ZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Y2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiY2FsbGJhY2siKTsKKyAgICAgICAgcmV0dXJuICJjYWxsYmFjayI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY29uc3QiKTsKKyAgICAgICAgcmV0dXJu
ICJjb25zdCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3JlYXRvciIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjcmVh
dG9yIik7CisgICAgICAgIHJldHVybiAiY3JlYXRvciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZGVsZXRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJkZWxldGVyIik7CisgICAgICAgIHJldHVybiAiZGVsZXRlciI7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5
Iik7CisgICAgICAgIHJldHVybiAiZGljdGlvbmFyeSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJlbnVtIik7CisgICAgICAgIHJldHVybiAiZW51bSI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAg
ICByZXR1cm4gImV4Y2VwdGlvbiI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Z2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1cm4gImdldHRlciI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiaW1wbGVtZW50cyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIik7CisgICAgICAgIHJl
dHVybiAiaW1wbGVtZW50cyI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5o
ZXJpdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJpbmhlcml0Iik7CisgICAgICAgIHJldHVybiAiaW5oZXJpdCI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIpOworICAgICAgICByZXR1
cm4gImludGVyZmFjZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5
Y2FsbGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImxlZ2FjeWNhbGxlciIpOworICAgICAgICByZXR1cm4gImxlZ2FjeWNhbGxlciI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJwYXJ0aWFsIik7CisgICAg
ICAgIHJldHVybiAicGFydGlhbCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c2VyaWFsaXplciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJzZXJpYWxpemVyIik7CisgICAgICAgIHJldHVybiAic2VyaWFsaXplciI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOworICAgICAg
ICByZXR1cm4gInNldHRlciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3Rh
dGljIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInN0YXRpYyIpOworICAgICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3RyaW5naWZpZXIiKTsKKyAgICAgICAgcmV0
dXJuICJzdHJpbmdpZmllciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlw
ZWRlZiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJ0eXBlZGVmIik7CisgICAgICAgIHJldHVybiAidHlwZWRlZiI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIpOworICAgICAg
ICByZXR1cm4gInVucmVzdHJpY3RlZCI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlw
ZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgICMgVW5pb24g
dHlwZSBpcyBub3Qgc3VwcG9ydGVkLiBVbmRlZmluZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52
YWx1ZSgpID1+IC9eKHVucmVzdHJpY3RlZHxkb3VibGV8Qnl0ZVN0cmluZ3xieXRlfGludHxET01T
dHJpbmd8bG9uZ3xzaG9ydHxmbG9hdHxhbnl8b2N0ZXR8Ym9vbGVhbnx1bnNpZ25lZHxzZXF1ZW5j
ZXxEYXRlfG9iamVjdCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5
cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSk7Cit9CisKK3N1YiBwYXJzZVNpbmdsZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiYW55IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImFueSIpOworICAgICAgICByZXR1cm4gImFueSIgLiAkc2VsZi0+cGFyc2VU
eXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHVucmVzdHJp
Y3RlZHxkb3VibGV8Qnl0ZVN0cmluZ3xieXRlfGludHxET01TdHJpbmd8bG9uZ3xzaG9ydHxmbG9h
dHxvY3RldHxib29sZWFufHVuc2lnbmVkfHNlcXVlbmNlfERhdGV8b2JqZWN0KSQvKSkgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlVW5p
b25UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAk
c2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlv
bk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9u
VHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55Iik7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUo
KSA9fiAvXih1bnJlc3RyaWN0ZWR8ZG91YmxlfEJ5dGVTdHJpbmd8Ynl0ZXxpbnR8RE9NU3RyaW5n
fGxvbmd8c2hvcnR8ZmxvYXR8b2N0ZXR8Ym9vbGVhbnx1bnNpZ25lZHxzZXF1ZW5jZXxEYXRlfG9i
amVjdCkkLykpIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVy
VHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgfQor
ICAgICMgcmV0dXJuIHVuZGVmaW5lZC4KKyAgICByZXR1cm47Cit9CisKK3N1YiBwYXJzZU5vbkFu
eVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3RyaWN0ZWR8ZG91
YmxlfGJvb2xlYW58b2N0ZXR8Ynl0ZXx1bnNpZ25lZHxpbnR8bG9uZ3xzaG9ydHxmbG9hdCkkLykg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkJ5dGVT
dHJpbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiQnl0ZVN0cmluZyIpOworICAgICAgICByZXR1cm4gIkJ5dGVTdHJpbmciIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRP
TVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJET01TdHJpbmciKTsKKyAgICAgICAgcmV0dXJuICJET01TdHJpbmciIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNl
cXVlbmNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgInNlcXVlbmNlIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiPCIpOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI+
Iik7CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4iIC4gJHNlbGYtPnBh
cnNlTnVsbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVjdCIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvYmpl
Y3QiKTsKKyAgICAgICAgcmV0dXJuICJvYmplY3QiIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRhdGUiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRGF0ZSIpOworICAgICAg
ICByZXR1cm4gIkRhdGUiIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCkgLiAk
c2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VDb25zdFR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3RyaWN0ZWR8ZG91YmxlfGJvb2xlYW58
b2N0ZXR8Ynl0ZXx1bnNpZ25lZHxpbnR8bG9uZ3xzaG9ydHxmbG9hdCkkLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAg
ICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4t
PnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VOdWxsKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VQcmltaXRpdmVU
eXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oaW50fGxvbmd8c2hvcnR8dW5z
aWduZWQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuc2lnbmVkSW50ZWdlclR5
cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHVucmVzdHJpY3RlZHxm
bG9hdHxkb3VibGUpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVucmVzdHJpY3Rl
ZEZsb2F0VHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImJvb2xlYW4i
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
Ym9vbGVhbiIpOworICAgICAgICByZXR1cm4gImJvb2xlYW4iOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImJ5dGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiYnl0ZSIpOworICAgICAgICByZXR1cm4gImJ5dGUiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9jdGV0IikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9jdGV0Iik7CisgICAgICAgIHJl
dHVybiAib2N0ZXQiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInVucmVzdHJpY3RlZCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ1bnJlc3RyaWN0ZWQiKTsK
KyAgICAgICAgcmV0dXJuICJ1bnJlc3RyaWN0ZWQiIC4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihmbG9hdHxkb3VibGUpJC8pIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNl
RmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZsb2F0IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImZsb2F0Iik7
CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImRvdWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJkb3VibGUiKTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUiOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3Vi
IHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJ1bnNpZ25lZCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ1bnNpZ25lZCIpOworICAgICAgICByZXR1cm4gInVuc2lnbmVkICIgLiAkc2Vs
Zi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
L14oaW50fGxvbmd8c2hvcnQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVn
ZXJUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJbnRlZ2VyVHlwZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzaG9ydCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJzaG9ydCIpOworICAgICAgICByZXR1cm4gInNob3J0IjsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnQiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50Iik7CisgICAgICAgIHJldHVy
biAiaW50IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJsb25nIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImxvbmciKTsK
KyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygpKSB7CisgICAgICAgICAgICBy
ZXR1cm4gImxvbmcgbG9uZyI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJsb25nIjsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9
CisKK3N1YiBwYXJzZU9wdGlvbmFsTG9uZworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJsb25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImxvbmciKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOwor
fQorCitzdWIgcGFyc2VUeXBlU3VmZml4Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiWyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIl0iKTsKKyAgICAgICAgcmV0dXJuICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/Iik7CisgICAgICAgIHJldHVy
biAiPyIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKTsKKyAgICB9
CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJy
YXkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJbIik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICByZXR1
cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgcmV0dXJuICIi
OworfQorCitzdWIgcGFyc2VOdWxsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj8i
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
PyIpOworICAgICAgICByZXR1cm4gIj8iOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1
YiBwYXJzZVJldHVyblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidm9pZCIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ2
b2lkIik7CisgICAgICAgIHJldHVybiAidm9pZCI7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXih1bnJlc3Ry
aWN0ZWR8ZG91YmxlfEJ5dGVTdHJpbmd8Ynl0ZXxcKHxpbnR8RE9NU3RyaW5nfGxvbmd8c2hvcnR8
ZmxvYXR8b2N0ZXR8Ym9vbGVhbnx1bnNpZ25lZHxEYXRlfG9iamVjdHxzZXF1ZW5jZXxhbnkpJC8p
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgYXBwbHlN
ZW1iZXJMaXN0Cit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJG1lbWJlcnMg
PSBzaGlmdDsKKworICAgIGZvciBteSAkaXRlbSAoQHskbWVtYmVyc30pIHsKKyAgICAgICAgaWYg
KHJlZigkaXRlbSkgZXEgImRvbUF0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0
YU5vZGUtPmF0dHJpYnV0ZXN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9
CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21Db25zdGFudCIpIHsKKyAgICAgICAgICAg
IHB1c2goQHskZGF0YU5vZGUtPmNvbnN0YW50c30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUZ1bmN0aW9uIikgewor
ICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSwgJGl0ZW0pOworICAgICAg
ICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIGFwcGx5RXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0Cit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5l
dyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9t
U2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiQ29u
c3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRh
Tm9kZS0+cGFyYW1ldGVyc30sIEB7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1Y3Rv
ciJ9fSk7CisgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifSA9
ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3
RGF0YU5vZGUpOworICAgIH0gZWxzaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+
eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWdu
YXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJOYW1lZENv
bnN0cnVjdG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIG15ICVhdHRyaWJ1dGVz
ID0gJXskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifX07CisgICAg
ICAgIG15IEBhdHRyaWJ1dGVLZXlzID0ga2V5cyAoJWF0dHJpYnV0ZXMpOworICAgICAgICBteSAk
Y29uc3RydWN0b3JOYW1lID0gJGF0dHJpYnV0ZUtleXNbMF07CisgICAgICAgIHB1c2goQHskbmV3
RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRhdHRyaWJ1dGVzeyRjb25zdHJ1Y3Rvck5hbWV9fSk7
CisgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0g
JGNvbnN0cnVjdG9yTmFtZTsKKyAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0
YU5vZGUpOworICAgIH0KKyAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKK30KKworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW5o
ZXJpdHNHZXR0ZXIoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXRyYWlz
ZXMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VHZXRSYWlzZXMoKTsKKyAgICB9Cisg
ICAgcmV0dXJuOworfQorCitzdWIgcGFyc2VJbmhlcml0c0dldHRlcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0cyIpIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAg
ICAgICAgJGF0dHItPnsiaW5oZXJpdHMifSA9IDE7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNl
cyJ9ID0gW107CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiaW5oZXJpdHMiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3Vi
IHBhcnNlR2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHJhaXNl
cyIpIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJGF0dHItPnsiaW5oZXJpdHMi
fSA9IDA7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZ2V0cmFpc2VzIik7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBh
cnNlRXhjZXB0aW9uTGlzdCgpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFy
c2VTZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0cmFpc2VzIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNl
dHJhaXNlcyIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwor
ICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkxpc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgbXkgQGV4Y2VwdGlvbnMg
PSAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICIoIik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
cHVzaChAZXhjZXB0aW9ucywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAZXhjZXB0
aW9ucywgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVycygpfSk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gXEBl
eGNlcHRpb25zOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlUmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4
Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCisxOworCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmNwcAppbmRleCBhOTNmOTY4ZTRmYTlmY2FjZjQ3ODQ2ZjIxYWYxOGQ3MDNiMGFkNThh
Li4wYTE1MjYzNjYzNDYyOTdiOTM1ZGE5MGQ0NWFmOGU0NmE3YWViYTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVz
dE9iai5jcHAKQEAgLTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VW5z
aWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIpCiAgICAg
aW1wbCgpLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAK
LWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01UZXN0T2Jq
Ojpsb25nQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdB
dHRyKCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcgbmV3QXR0
cikKK3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRyKQogewog
ICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNldEF0dHIo
bmV3QXR0cik7CisgICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIGxv
bmcgbG9uZyBXZWJET01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1LDkgKzQy
NSw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50
IG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCkt
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBl
Yyk7Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2Rl
PihlYykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9i
ajo6c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBu
ZXdTdHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3
ZWJET01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7Cisg
ICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NjEsMjggKzY1NywyOCBA
QCB2b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9pZE1ldGhv
ZCgpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxv
bmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYg
b2JqQXJnKQordm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdB
cmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpB
cmcpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+
dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAg
aW1wbCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2Jq
QXJnKSk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50IFdlYkRP
TVRlc3RPYmo6OmxvbmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBpbXBsKCkt
PmxvbmdNZXRob2QoKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZFdpdGhB
cmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJE
T01UZXN0T2JqJiBvYmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdpdGhBcmdz
KGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIHJldHVybiBpbXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUo
b2JqQXJnKSk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRl
c3RPYmo6Om9iak1ldGhvZCgpCkBAIC02OTMsMTIgKzY4OSwxMiBAQCBXZWJET01UZXN0T2JqIFdl
YkRPTVRlc3RPYmo6Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRy
KGltcGwoKS0+b2JqTWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2Jq
OjpvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0
ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBXZWJET01U
ZXN0T2JqOjpvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5n
JiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwo
KSkKICAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0b1dlYktp
dChXVEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dl
YkNvcmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgp
LT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkp
OwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1aXJlc0Fs
bEFyZ3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRl
c3RPYmomIG9iakFyZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggYmQzNzNkODM3OGYzZTM4M2Q4OTli
NGY5NTE3Nzk0OTU3ZTI5ZTRhYy4uN2YxYzAzZTNkMWU1NWE1NzkwMTg0YmZhZmMyNjc2NTMwZTk3
ZDUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvcnRBdHRyKHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0
QXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hv
cnQpOwotICAgIGxvbmcgbG9uZyBBdHRyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBdHRyKGxvbmcg
bG9uZyk7CisgICAgaW50IGxvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRMb25nQXR0cihp
bnQpOwogICAgIGxvbmcgbG9uZyBsb25nTG9uZ0F0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldExv
bmdMb25nQXR0cihsb25nIGxvbmcpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bnNpZ25lZExv
bmdMb25nQXR0cigpIGNvbnN0OwpAQCAtMTQ1LDExICsxNDUsMTEgQEAgcHVibGljOgogICAgIGlu
dCByZXBsYWNlYWJsZUF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCB2b2lkTWV0aG9kKCk7
Ci0gICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Ci0gICAgbG9uZyBs
b25nIE1ldGhvZCgpOwotICAgIGxvbmcgbG9uZyBNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJn
LCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJn
KTsKKyAgICB2b2lkIHZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgaW50IGxv
bmdNZXRob2QoKTsKKyAgICBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25z
dCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAg
ICBXZWJET01UZXN0T2JqIG9iak1ldGhvZCgpOwotICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0
IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRo
QXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRPTVN0
cmluZyYgc2VyaWFsaXplZEFyZyk7CiAgICAgdm9pZCBpZGJLZXkoY29uc3QgV2ViRE9NSURCS2V5
JiBrZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCA1ZTJiZGU0YTA0
NzJiNjNmYmM1M2QzMDIxMDIyYjFlZDU5YTZkZGM2Li42ZTY5OTc2NmZkMWQ4YzM2MmRmZWI3MmEx
ZWIyZDdjZGNiY2Y1NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAt
MTA1LDcgKzEwNSw3IEBAIGVudW0gewogICAgIFBST1BfUkVBRF9PTkxZX1RFU1RfT0JKX0FUVFIs
CiAgICAgUFJPUF9TSE9SVF9BVFRSLAogICAgIFBST1BfVU5TSUdORURfU0hPUlRfQVRUUiwKLSAg
ICBQUk9QX0FUVFIsCisgICAgUFJPUF9MT05HX0FUVFIsCiAgICAgUFJPUF9MT05HX0xPTkdfQVRU
UiwKICAgICBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSLAogICAgIFBST1BfU1RSSU5HX0FU
VFIsCkBAIC0xNzcsNiArMTc3LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAg
Y29yZVNlbGYtPnNldFVuc2lnbmVkU2hvcnRBdHRyKChnX3ZhbHVlX2dldF91aW50KHZhbHVlKSkp
OwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAg
ICAgICBjb3JlU2VsZi0+c2V0TG9uZ0F0dHIoKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFBST1BfVU5TSUdORURfTE9OR19MT05HX0FU
VFI6IHsKICAgICAgICAgY29yZVNlbGYtPnNldFVuc2lnbmVkTG9uZ0xvbmdBdHRyKChnX3ZhbHVl
X2dldF91aW50NjQodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjI2LDggKzIzMCw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
UFJPUF9BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYt
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9TRVRURVJfRVhD
RVBUSU9OOiB7CkBAIC0yMzYsOCArMjM5LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfR0VUVEVS
X0VYQ0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICAgICAgY29yZVNlbGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3Ry
aW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSwgZWMpOworICAgICAgICBj
b3JlU2VsZi0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZy
b21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046IHsKQEAg
LTMyNyw4ICszMjksOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGdfdmFsdWVf
c2V0X3VpbnQodmFsdWUsIGNvcmVTZWxmLT51bnNpZ25lZFNob3J0QXR0cigpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIGNhc2UgUFJPUF9BVFRSOiB7Ci0gICAgICAgIGdfdmFsdWVfc2V0
X2ludDY0KHZhbHVlLCBjb3JlU2VsZi0+YXR0cigpKTsKKyAgICBjYXNlIFBST1BfTE9OR19BVFRS
OiB7CisgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5sb25nQXR0cigp
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9MT05HX0xPTkdfQVRUUjog
ewpAQCAtNTg2LDEyICs1ODgsMTIgQEAgR19NQVhVSU5ULCAvKiBtYXggKi8KIDAsIC8qIGRlZmF1
bHQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9BVFRSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2ludDY0KCJhdHRyIiwgLyogbmFtZSAqLwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYXR0ciIs
IC8qIHNob3J0IGRlc2NyaXB0aW9uICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnaW50NjQgVGVzdE9iai5h
dHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJl
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdfTUlOSU5UNjQsIC8qIG1pbiAqLwotR19NQVhJTlQ2NCwgLyogbWF4ICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0xPTkdfQVRUUiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJsb25nLWF0dHIi
LCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0ZXN0X29ial9sb25nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlv
biAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVhZC13cml0ZSAgZ2xvbmcgVGVzdE9iai5sb25nLWF0dHIiLCAvKiBsb25nZXIg
LSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5MT05H
LCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKQEAgLTkxNyw3ICs5MTksNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFy
ZykKK3dlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTkzMCwyMSArOTMyLDIxIEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktp
dDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZE9iakFy
Zyk7CiAgICAgfQotICAgIGl0ZW0tPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0
ckFyZywgY29udmVydGVkT2JqQXJnKTsKKyAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9u
Z0FyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwogfQogCi1naW50NjQKLXdl
YmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitnbG9uZwor
d2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQog
ewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5NZXRob2QoKTsKKyAg
ICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nTWV0aG9kKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0
RE9NVGVzdE9iaiogb2JqQXJnKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRo
b2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0
IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC05NTcsNyArOTU5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGcKICAg
ICAgICAgY29udmVydGVkT2JqQXJnID0gV2ViS2l0Ojpjb3JlKG9iakFyZyk7CiAgICAgICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZlcnRlZE9iakFyZywgMCk7CiAgICAgfQotICAgIGdpbnQ2
NCByZXN1bHQgPSBpdGVtLT5NZXRob2RXaXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29u
dmVydGVkT2JqQXJnKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nTWV0aG9kV2l0aEFy
Z3MobG9uZ0FyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKQEAgLTk3Myw3ICs5NzUsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29i
al9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioK
LXdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9i
aiogb2JqQXJnKQord2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBX
ZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2Vs
ZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTg2
LDcgKzk4OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9i
akFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9i
aj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFy
ZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdp
dGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAg
V2ViS2l0RE9NVGVzdE9iaiogcmVzdWx0ID0gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE1MjIsMjMgKzE1MjQsMjMgQEAgd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBndXNob3J0IHZhbHUKICAgICBpdGVtLT5zZXRVbnNpZ25lZFNob3J0QXR0cih2YWx1ZSk7
CiB9CiAKLWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cihXZWJLaXRET01UZXN0
T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cihXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDAp
OwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3Jl
OjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdpbnQ2NCByZXN1bHQg
PSBpdGVtLT5hdHRyKCk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ0F0dHIoKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSkKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkKIHsK
ICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGl0ZW0tPnNldEF0dHIodmFsdWUpOworICAgIGl0ZW0tPnNldExvbmdBdHRy
KHZhbHVlKTsKIH0KIAogZ2ludDY0CkBAIC0xODY2LDE3ICsxODY4LDEyIEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIEdFcnJvCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlLCBH
RXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJf
ZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24odmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0
X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwg
ZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24odmFsdWUpOwogfQogCiBnbG9uZwpAQCAtMTkxNSwxOSArMTkxMiwxNCBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRp
b24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZgogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2Vi
Q29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBnX3JldHVybl9p
Zl9mYWlsKHZhbHVlKTsKICAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgaXRlbS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29udmVydGVkVmFs
dWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5u
YW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
Y29udmVydGVkVmFsdWUpOwogfQogCiBnY2hhcioKQEAgLTIwMTgsNyArMjAxMCw3IEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dp
dGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9m
YWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAg
LTIwMjksMTIgKzIwMjEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9z
dGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICAgICAgICBjb252
ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2Zh
aWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVy
dGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwo
ZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVj
ZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKQEAgLTIwNTQs
NyArMjA0MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9y
YWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdF
cnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJL
aXRET01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwNjUsMTIgKzIwNTIs
NyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdl
YktpdDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFs
dWUpOwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVt
LT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRW
YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJv
ciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNj
Lm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCkBA
IC0yMTE2LDcgKzIwOTgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9l
eGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogfQogCiB2b2lkCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRf
c2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2Vi
S2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjEyNywxMiArMjEwOSw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVl
KTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFs
dWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5u
YW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERP
TVRlc3RPYmoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXggYjhkNTdkZTE2YTRh
MjA1YjViZjVhZWNjZTE1MTY2ODk5NTIxYWZlMy4uNzFiZDhlODQ2OGY1OTkxNzg2ODYzMjYzMmI5
Y2E0YzU0MTlmNGI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtNTgsNyAr
NTgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYpOwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJn
czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJnOiBBICNnaW50NjQKKyAq
IEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIKICAqIEBvYmpBcmc6IEEg
I1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC02NiwzMCArNjYsMzAgQEAgd2Via2l0X2RvbV90ZXN0
X29ial92b2lkX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2Vi
S2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdj
aGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgotICogd2Via2l0
X2RvbV90ZXN0X29ial9tZXRob2Q6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9k
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoq
LwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYpOworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9s
b25nX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX21ldGhvZF93aXRoX2FyZ3M6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdf
bWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJn
OiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIK
ICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoq
LwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJn
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJn
LCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2Rv
bV90ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2Jq
QXJnKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Q6CkBAIC0xMDQs
NyArMTA0LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpOwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9h
cmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAor
ICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzog
QSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTExMiw3ICsxMTIsNyBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAgKgogKiovCiBXRUJL
SVRfQVBJIFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFy
KiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdB
cmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CiAKIC8q
KgogICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19h
bmRfdGhyb3dzOgpAQCAtNTY5LDI1ICs1NjksMjUgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9ydF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGd1c2hvcnQgdmFsdWUpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0
dHI6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHI6CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJIGdp
bnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxm
KTsKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyOgogICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEB2YWx1ZTogQSAjZ2ludDY0CisgKiBAdmFsdWU6IEEg
I2dsb25nCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgdmFs
dWUpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2xvbmdfYXR0cjoKQEAgLTkxOSwxMyArOTE5LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdF
cnJvCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlv
bjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI2dsb25nCi0g
KiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtOTY0LDEzICs5NjMsMTIgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9u
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmlu
Z19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0
T2JqCiAgKiBAdmFsdWU6IEEgI2djaGFyCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9z
dHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2dldF9zdHJpbmdfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb246CkBAIC0xMDUxLDEzICsxMDQ5
LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERP
TVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRo
X3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgpAQCAtMTA3NCwxMyAr
MTA3MSwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25f
Y29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICogd2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKICAq
IEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RP
YmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToK
ICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9z
Y3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRl
X3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7
CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGU6CkBAIC0xMTE4LDEzICsxMTE0LDEy
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93
aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9y
YWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJL
aXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmli
dXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1
ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRf
c2NyaXB0X3N0YXRlX3dpdGhfc3BhY2VzX2F0dHJpYnV0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYmQ3OTAw
NjQ2NGNhZjMwZTlmMjE2MzkxZmVmZmI4MDgwZGM1YWQyMS4uZjQzMWJhYzEwYjJiY2Y4OTA3OGVi
YWJiMzc1YTVlMTE5MjhmZWIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzW10gPQogICAgIHsgInJl
YWRPbmx5VGVzdE9iakF0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVhZE9ubHlUZXN0
T2JqQXR0ciksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInNob3J0QXR0ciIs
IERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqU2hvcnRBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialNob3J0QXR0
ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ1bnNpZ25lZFNob3J0QXR0ciIsIERvbnREZWxldGUs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dHIsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0ciks
IChpbnRwdHJfdClzZXRKU1Rlc3RPYmpBdHRyLCBOb0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdB
dHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpMb25n
QXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJsb25nTG9uZ0F0dHIiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akxvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIsIE5vSW50
cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVu
c2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xv
bmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInN0cmluZ0F0dHIiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqU3RyaW5nQXR0ciwgTm9JbnRyaW5z
aWMgfSwKQEAgLTI2Miw4ICsyNjIsOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiQ09OU1RfSkFWQVNDUklQVCIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9KQVZBU0NSSVBUKSwgKGludHB0cl90KTAs
IE5vSW50cmluc2ljIH0sCiAgICAgeyAidm9pZE1ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1
bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAog
ICAgIHsgInZvaWRNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCi0g
ICAgeyAiTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2Qp
LCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJNZXRob2RXaXRoQXJncyIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRy
X3QpMywgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpT
Qzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2lj
IH0sCisgICAgeyAibG9uZ01ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMg
fSwKICAgICB7ICJvYmpNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9iak1ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm9iak1ldGhv
ZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RX
aXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm1ldGhvZFdpdGhT
ZXF1ZW5jZUFyZyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFNlcXVlbmNlQXJnKSwgKGludHB0cl90KTEsIE5vSW50cmluc2ljIH0sCkBAIC00NjAsMTIgKzQ2
MCwxMiBAQCBKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYQogfQogCiAKLUpTVmFsdWUganNUZXN0T2Jq
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKK0pT
VmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpT
VGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmF0dHIoKSk7CisgICAg
SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nQXR0cigpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkBAIC05NzgsMTIgKzk3OCwxMiBAQCB2b2lkIHNldEpTVGVzdE9ialVuc2ln
bmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFs
dQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGltcGwtPnNldEF0dHIoc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPih2YWx1ZS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbXBsLT5z
ZXRMb25nQXR0cih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0xMTI3LDkgKzExMjcs
NyBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsK
ICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFs
dWUudG9JbnQzMihleGVjKSk7CiB9CiAKIApAQCAtMTE0OSw5ICsxMTQ3LDcgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoq
IGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmcodmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFs
dWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
dXN0cmluZ1RvU3RyaW5nKHZhbHVlLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IHZhbHVlLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogfQogCiAKQEAgLTExOTksOSArMTE5NSw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjEwLDEyICsxMjA0
LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0
KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBp
ZiAoIXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RP
YmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBs
LT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250
ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjM2LDEyICsxMjI4LDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlw
dENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRl
eHQsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OworICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9
CiAKIApAQCAtMTQxMCw3ICsxNDAwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAg
IGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0
IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpKSk7CkBAIC0xNDE5LDExICsxNDA5LDExIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0
aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwotICAgIGltcGwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJn
KTsKKyAgICBpbXBsLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2Qo
RXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVl
LmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDMyLDExICsxNDIyLDExIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2QoRXhlY1N0YXRlKiBleGVjKQogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoaW1wbC0+bWV0aG9kKCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQg
PSBqc051bWJlcihpbXBsLT5sb25nTWV0aG9kKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9k
V2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RP
Ymo6OnNfaW5mbykpCkBAIC0xNDQ2LDcgKzE0MzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRl
KgogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMp
KSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAg
ICAgY29uc3QgU3RyaW5nJiBzdHJBcmcodXN0cmluZ1RvU3RyaW5nKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkuaXNFbXB0eSgpID8gVVN0cmluZygp
IDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKQEAgLTE0NTYsNyArMTQ0Niw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQXJncyhFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1Zh
bHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBv
YmpBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ01l
dGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xNDgzLDcgKzE0NzMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0
aEFyZ3MoRXhlY1N0YQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykK
ICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9J
bnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcodXN0cmluZ1RvU3RyaW5nKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkuaXNFbXB0eSgp
ID8gVVN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElz
VW5kZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKQEAgLTE0OTMsNyArMTQ4
Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0g
ICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBv
YmpBcmcpKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgb2JqQXJnKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIApAQCAtMTUyNCwxMSArMTUxNCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2Uo
RQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMp
KSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAK
LSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgaW1wbC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSk7CisgICAgSlND
OjpKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIGltcGwtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdBcmcpKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIxMDMsMTAgKzIwOTMsMTAgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMigKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcg
bG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsK
KyAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjEzNywxMCArMjEyNywx
MCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KAogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNf
Y2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMp
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChBcmcp
OworICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDNhN2U5Y2MyNzFkOGI1
NDdhODQ1NzUzYjY1MGFjZTE5ZjI4MDQwMzIuLjYzOTkzMjBjZTBiOTUxZmM3MDc2NzkwMjVkYzY1
NTI4NmFjMmY1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0ZWQ6CiAKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZvaWRNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhKU0M6
OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QXJncyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoSlND
OjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTIyOSw4ICsyMjks
OCBAQCBKU0M6OkpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZQogdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNW
YWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwotSlND
OjpKU1ZhbHVlIGpzVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxv
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNl
dEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKaW5kZXggNDJlNTRjYTJmZmM5ZDdjYzZhYzhkNmJlMGIxNDI1NGEwMjcwOTlkNS4uNGFm
OWY0YjFkZGY2ZjU4YTFiN2RmN2NkNzczZTU0YTIzZDQ5Mjc5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAt
NzIsOCArNzIsOCBAQCBlbnVtIHsKIC0gKHZvaWQpc2V0U2hvcnRBdHRyOihzaG9ydCluZXdTaG9y
dEF0dHI7CiAtICh1bnNpZ25lZCBzaG9ydCl1bnNpZ25lZFNob3J0QXR0cjsKIC0gKHZvaWQpc2V0
VW5zaWduZWRTaG9ydEF0dHI6KHVuc2lnbmVkIHNob3J0KW5ld1Vuc2lnbmVkU2hvcnRBdHRyOwot
LSAobG9uZyBsb25nKUF0dHI7Ci0tICh2b2lkKXNldEF0dHI6KGxvbmcgbG9uZyluZXdBdHRyOwor
LSAoaW50KWxvbmdBdHRyOworLSAodm9pZClzZXRMb25nQXR0cjooaW50KW5ld0xvbmdBdHRyOwog
LSAobG9uZyBsb25nKWxvbmdMb25nQXR0cjsKIC0gKHZvaWQpc2V0TG9uZ0xvbmdBdHRyOihsb25n
IGxvbmcpbmV3TG9uZ0xvbmdBdHRyOwogLSAodW5zaWduZWQgbG9uZyBsb25nKXVuc2lnbmVkTG9u
Z0xvbmdBdHRyOwpAQCAtMTcwLDE4ICsxNzAsMTggQEAgZW51bSB7CiAtIChpbnQpcmVwbGFjZWFi
bGVBdHRyaWJ1dGU7CiAtICh2b2lkKXNldFJlcGxhY2VhYmxlQXR0cmlidXRlOihpbnQpbmV3UmVw
bGFjZWFibGVBdHRyaWJ1dGU7CiAtICh2b2lkKXZvaWRNZXRob2Q7Ci0tICh2b2lkKXZvaWRNZXRo
b2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKLS0gKGxvbmcgbG9uZylNZXRob2Q7Ci0tIChsb25nIGxv
bmcpTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFy
ZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKXZvaWRNZXRob2RXaXRoQXJn
czooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RP
YmogKilvYmpBcmc7CistIChpbnQpbG9uZ01ldGhvZDsKKy0gKGludClsb25nTWV0aG9kV2l0aEFy
Z3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnOwogLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZDsKLS0gKERPTVRlc3RPYmog
KilvYmpNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3Ry
QXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKERPTVRlc3RPYmogKilvYmpNZXRo
b2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnOwogLSAodm9pZClzZXJpYWxpemVkVmFsdWU6KE5TU3RyaW5nICopc2VyaWFsaXplZEFy
ZzsKIC0gKHZvaWQpaWRiS2V5OihET01JREJLZXkgKilrZXk7CiAtICh2b2lkKW9wdGlvbnNPYmpl
Y3Q6KERPTURpY3Rpb25hcnkgKilvbyBvb286KERPTURpY3Rpb25hcnkgKilvb287CiAtICh2b2lk
KW1ldGhvZFdpdGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1ldGhvZDsKLS0gKHZvaWQpY3Vz
dG9tTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFy
ZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBl
IGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9P
TCl1c2VDYXB0dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5
cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihC
T09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5t
bQppbmRleCBkMDg2MTFjZjYwYzlmMTUzZmM1OWM5MzA3OWI2MWRjZWRlNGQwYTQyLi5kNGIxNzY3
ZGM4ZDQyMzVhMmViZWUyZmRjZWE5YmNiMTU0ODI0MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTE0
MCwxNiArMTQwLDE2IEBACiAgICAgSU1QTC0+c2V0VW5zaWduZWRTaG9ydEF0dHIobmV3VW5zaWdu
ZWRTaG9ydEF0dHIpOwogfQogCi0tIChsb25nIGxvbmcpQXR0cgorLSAoaW50KWxvbmdBdHRyCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJ
TVBMLT5hdHRyKCk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdBdHRyKCk7CiB9CiAKLS0gKHZvaWQp
c2V0QXR0cjoobG9uZyBsb25nKW5ld0F0dHIKKy0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdM
b25nQXR0cgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBJTVBMLT5zZXRBdHRyKG5ld0F0dHIpOworICAgIElNUEwtPnNldExvbmdBdHRyKG5ld0xvbmdB
dHRyKTsKIH0KIAogLSAobG9uZyBsb25nKWxvbmdMb25nQXR0cgpAQCAtMzQ4LDkgKzM0OCw3IEBA
CiAtICh2b2lkKXNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOihpbnQpbmV3QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBX
ZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogLSAoaW50KWF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uCkBAIC0zNzksOSArMzc3LDcgQEAKIC0gKHZvaWQpc2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KE5TU3RyaW5nICopbmV3U3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24s
IGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFN0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKTsKIH0KIAogLSAoTlNTdHJpbmcgKilzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpA
QCAtNDUwLDkgKzQ0Niw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+
c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcwpAQCAtNDY5LDkgKzQ2Myw3IEBACiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1Q
TC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01U
ZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZQpAQCAtNTAyLDkgKzQ5NCw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
CkBAIC03MjUsMjIgKzcxNSwyMiBAQAogICAgIElNUEwtPnZvaWRNZXRob2QoKTsKIH0KIAotLSAo
dm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAq
KXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKHZvaWQpdm9pZE1ldGhvZFdp
dGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9N
VGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBJTVBMLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2Jq
QXJnKSk7CisgICAgSU1QTC0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29y
ZShvYmpBcmcpKTsKIH0KIAotLSAobG9uZyBsb25nKU1ldGhvZAorLSAoaW50KWxvbmdNZXRob2QK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJu
IElNUEwtPm1ldGhvZCgpOworICAgIHJldHVybiBJTVBMLT5sb25nTWV0aG9kKCk7CiB9CiAKLS0g
KGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5n
ICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAoaW50KWxvbmdNZXRob2RX
aXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERP
TVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpOworICAgIHJldHVybiBJTVBMLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
c3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQogCiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kCkBA
IC03NDksMTAgKzczOSwxMCBAQAogICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2Jq
TWV0aG9kKCkpKTsKIH0KIAotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25n
IGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnCistIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0
ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2Jq
QXJnKSkpKTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhB
cmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKSkpOwogfQogCiAtIChET01UZXN0T2Jq
ICopbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcg
b2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCkBAIC03OTYsMTAgKzc4NiwxMCBAQAogICAgIElN
UEwtPmN1c3RvbU1ldGhvZCgpOwogfQogCi0tICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihs
b25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnCistICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jdXN0b21N
ZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT5jdXN0
b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0g
KHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9N
RXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXgg
YzhhN2EwMmE5MjNiZDA0MGUzOTczOWIxZjAzMzgxZDNkOTM4NDVlYy4uNzY4NGVhM2E5OTU0NWI5
MjAyNWM5ZmEwYTBhYzEyMTlkYjYxZWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNTEsNyArNTEsNiBAQCBtb2R1bGUgdGVz
dCB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgICAgc3RyaW5nQXR0
cjsKICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAgICAgICB0ZXN0T2JqQXR0
cjsKIAotICAgICAgICBKUywgVjgKICAgICAgICAgLy8gV0tfdWNmaXJzdCwgV0tfbGNmaXJzdCBl
eGNlcHRpb25hbCBjYXNlcy4KICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAg
ICAgICBYTUxPYmpBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICAg
ICAgIGNyZWF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggMmRiYjk3YjMwNjM3Zjc1MDU3ZDc1ZWM1ZjZiNGM4
Yzg1Y2MwMTAzYi4uZjMxNjgxZDBhNTVkNzMxNWUxMTY5MzcxOTYzNTQ0MTI1YzkyM2UwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE9iai5jcHAKQEAgLTE2MSwxOSArMTYxLDE5IEBAIHN0YXRpYyB2b2lkIHVuc2lnbmVkU2hvcnRB
dHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4CiAg
ICAgcmV0dXJuOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEF0dHJBdHRyR2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nQXR0ckF0dHJHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7
Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9nZXQiKTsKKyAgICBJTkNfU1RBVFMo
IkRPTS5UZXN0T2JqLmxvbmdBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXco
c3RhdGljX2Nhc3Q8ZG91YmxlPihpbXAtPmF0dHIoKSkpOworICAgIHJldHVybiB2OEludGVnZXIo
aW1wLT5sb25nQXR0cigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIEF0
dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2b2lkIGxv
bmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9zZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLmxvbmdBdHRyLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIGxvbmcgbG9uZyB2ID0gdG9JbnQ2NCh2YWx1ZSk7Ci0g
ICAgaW1wLT5zZXRBdHRyKFdURjo6Z2V0UHRyKHYpKTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFs
dWUpOworICAgIGltcC0+c2V0TG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00MzMs
MTAgKzQzMyw3IEBAIHN0YXRpYyB2b2lkIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvCiAgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBpbnQgdiA9IHRvSW50
MzIodmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAg
IFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGlt
cC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00
NzUsMTAgKzQ3Miw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFNUUklO
R19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2
YWx1ZSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAg
ICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAg
aW1wLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9
CiAKQEAgLTU2OCwxMyArNTYyLDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3NldCIp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0
T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlw
dFN0YXRlOjpjdXJyZW50KCk7CiAgICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGltcC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0
cih2KSwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERP
TUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0
YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigp
LCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuOwpAQCAtNTk5LDEzICs1OTAsMTAgQEAg
c3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoq
IHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0g
Z2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAg
ICAgICAgcmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAo
VU5MSUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8u
R2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47
CiB9CiAKQEAgLTY2MywxNiArNjUxLDEzIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6
Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICgh
c3RhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0
Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4
dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBW
OFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAt
PnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUu
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGlu
Zm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDY1LDMwICsxMDUwLDMwIEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAg
IEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJ
T05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9i
ajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZv
aWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRo
b2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIHY4OjpIYW5k
bGU8djg6OlZhbHVlPigpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IE1ldGhv
ZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGxvbmdNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouTWV0aG9kIik7CisgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai5sb25nTWV0aG9kIik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRp
Y19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2QoKSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1w
LT5sb25nTWV0aG9kKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5NZXRob2RXaXRoQXJncyIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9u
Z01ldGhvZFdpdGhBcmdzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAgICBy
ZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05f
QkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICByZXR1cm4gdjg6
Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2RXaXRoQXJncyhBcmcs
IHN0ckFyZywgb2JqQXJnKSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5sb25nTWV0aG9k
V2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9
CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9kQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExMDQsMTAgKzEwODksMTAgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9O
X0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VY
Q0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhU
ZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB0b1Y4KGltcC0+
b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKKyAgICByZXR1cm4gdG9WOChpbXAtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFy
Zywgb2JqQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCkBAIC0xMTI3LDggKzExMTIsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9O
X0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICByZXR1cm4gdjhBcnJheShpbXAtPm1l
dGhvZFJldHVybmluZ1NlcXVlbmNlKEFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBFWENF
UFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICByZXR1cm4gdjhBcnJheShpbXAt
Pm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9
CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJn
c0FuZFRocm93c0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xNTQyLDgg
KzE1MjcsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Qy
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgICAgICBpbXAtPm92ZXJsb2Fk
ZWRNZXRob2Qob2JqQXJnKTsKICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigp
OwogICAgIH0KLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAg
IGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywg
bG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCkBAIC0x
NTY0LDggKzE1NDksOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoQXJnKTsKKyAgICBFWENF
UFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwogfQogCkBA
IC0xNzQ2LDggKzE3MzEsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRB
dFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdz
Lkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcg
bG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1
bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKEFyZyk7
CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFi
bGVkQXRSdW50aW1lTWV0aG9kMShsb25nQXJnKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6
VmFsdWU+KCk7CiB9CiAKQEAgLTE3NTcsOCArMTc0Miw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZU1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENF
UFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDIoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0lu
dDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKKyAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyKGxvbmdBcmcpOwogICAgIHJldHVy
biB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIApAQCAtMTc2OCw4ICsxNzUzLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMShs
b25nQXJnKTsKICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCk7CiB9CiAKQEAgLTE3
NzksOCArMTc2NCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNv
bnRleHRNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25n
LCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QyKEFyZyk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVk
UGVyQ29udGV4dE1ldGhvZDIobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpOwogfQogCkBAIC0xOTM1LDggKzE5MjAsOCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7InNob3J0QXR0ciIsIFRlc3RPYmpWOElu
dGVybmFsOjpzaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRy
QXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJv
bD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpO
b25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZFNo
b3J0QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidW5zaWduZWRT
aG9ydEF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVy
LCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfSwKLSAgICAvLyBBdHRyaWJ1dGUgJ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnJykKLSAgICB7IkF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJHZXR0ZXIs
IFRlc3RPYmpWOEludGVybmFsOjpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0
aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6
UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAg
Ly8gQXR0cmlidXRlICdsb25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQor
ICAgIHsibG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAg
ICAvLyBBdHRyaWJ1dGUgJ2xvbmdMb25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6
ICcnKQogICAgIHsibG9uZ0xvbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0
ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAo
VHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCkBAIC0yMDQ3LDcgKzIwMzIsNyBAQCBzdGF0
aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKIAogc3RhdGljIGNv
bnN0IEJhdGNoZWRDYWxsYmFjayBUZXN0T2JqQ2FsbGJhY2tzW10gPSB7CiAgICAgeyJ2b2lkTWV0
aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RDYWxsYmFja30sCi0gICAgeyJNZXRo
b2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsibG9uZ01ldGhv
ZCIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kQ2FsbGJhY2t9LAogICAgIHsib2JqTWV0
aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZENhbGxiYWNrfSwKICAgICB7Im1ldGhv
ZFJldHVybmluZ1NlcXVlbmNlIiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1Nl
cXVlbmNlQ2FsbGJhY2t9LAogICAgIHsic2VyaWFsaXplZFZhbHVlIiwgVGVzdE9ialY4SW50ZXJu
YWw6OnNlcmlhbGl6ZWRWYWx1ZUNhbGxiYWNrfSwKQEAgLTIxODcsMTEgKzIxNzIsMTEgQEAgc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RP
YmpUZW1wbGF0ZSh2ODo6UGVyc2kKICAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IHZvaWRN
ZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCB2b2lkTWV0
aG9kV2l0aEFyZ3NBcmdjLCB2b2lkTWV0aG9kV2l0aEFyZ3NBcmd2KTsKICAgICBwcm90by0+U2V0
KHY4OjpTdHJpbmc6Ok5ldygidm9pZE1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBs
YXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAK
LSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAgICBjb25zdCBpbnQg
TWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBNZXRob2RXaXRoQXJnc0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6
U2lnbmF0dXJlPiBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhk
ZXNjLCBNZXRob2RXaXRoQXJnc0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7Ci0gICAgcHJvdG8t
PlNldCh2ODo6U3RyaW5nOjpOZXcoIk1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBs
YXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4OjpI
YW5kbGU8djg6OlZhbHVlPigpLCBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSkpOworICAgIC8vIEN1
c3RvbSBTaWduYXR1cmUgJ2xvbmdNZXRob2RXaXRoQXJncycKKyAgICBjb25zdCBpbnQgbG9uZ01l
dGhvZFdpdGhBcmdzQXJnYyA9IDM7CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQXJndltsb25nTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07CisgICAgdjg6OkhhbmRs
ZTx2ODo6U2lnbmF0dXJlPiBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0
dXJlOjpOZXcoZGVzYywgbG9uZ01ldGhvZFdpdGhBcmdzQXJnYywgbG9uZ01ldGhvZFdpdGhBcmdz
QXJndik7CisgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoImxvbmdNZXRob2RXaXRoQXJn
cyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0
aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIGxvbmdNZXRob2RX
aXRoQXJnc1NpZ25hdHVyZSkpOwogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnb2JqTWV0aG9k
V2l0aEFyZ3MnCiAgICAgY29uc3QgaW50IG9iak1ldGhvZFdpdGhBcmdzQXJnYyA9IDM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157442</attachid>
            <date>2012-08-09 05:20:53 -0700</date>
            <delta_ts>2012-08-10 00:50:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120809212025.patch</filename>
            <type>text/plain</type>
            <size>180580</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJhN2Y0NDFjMjgwNjk1
OGMyNjA2ZTA3NGE2Y2YxNmRmYjA1MjdlMi4uZDlkZjE3Njc3MmViMDUxOWI2ZDQzMjk4NjM4MGUz
NjBhYzAxOTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdHJvcyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOC0wOSAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBp
bXByb3ZlIGxhcmdlIGFycmF5IGxvZ2dpbmcgZXhwZXJpZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNkNmM2YTJiOTFmOTNiZGVh
NWMwMmI3NDk2MWJmYjg5ZDQxLi5mN2ZlY2NiNGZkOWVlYWViY2I2MDdjOTg1ZmNkZDU0N2I1YjBi
YzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpA
QCAtMjEsNDUxICsyMSwyMzA0IEBACiAKIHBhY2thZ2UgSURMUGFyc2VyOwogCit1c2UgQ2xhc3M6
OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAKIHVzZSBJUEM6Ok9wZW4y
OwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAKLXVzZSBjb25zdGFudCBN
T0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgordXNlIGNvbnN0YW50IFN0cmluZ1Rv
a2VuID0+IDA7Cit1c2UgY29uc3RhbnQgSW50ZWdlclRva2VuID0+IDE7Cit1c2UgY29uc3RhbnQg
RmxvYXRUb2tlbiA9PiAyOwordXNlIGNvbnN0YW50IElkZW50aWZpZXJUb2tlbiA9PiAzOwordXNl
IGNvbnN0YW50IE90aGVyVG9rZW4gPT4gNDsKK3VzZSBjb25zdGFudCBFbXB0eVRva2VuID0+IDU7
CiAKLXVzZSBjb25zdGFudCBNT0RFX01PRFVMRSAgPT4gMTA7ICMgJ21vZHVsZScgc2VjdGlvbgot
dXNlIGNvbnN0YW50IE1PREVfSU5URVJGQUNFICA9PiAxMTsgIyAnaW50ZXJmYWNlJyBzZWN0aW9u
Ci11c2UgY29uc3RhbnQgTU9ERV9FWENFUFRJT04gID0+IDEyOyAjICdleGNlcHRpb24nIHNlY3Rp
b24KK3N0cnVjdCggVG9rZW4gPT4geworICAgIHR5cGUgPT4gJyQnLCAjIHR5cGUgb2YgdG9rZW4K
KyAgICB2YWx1ZSA9PiAnJCcgIyB2YWx1ZSBvZiB0b2tlbgorfSk7CiAKLSMgSGVscGVyIHZhcmlh
YmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7CitteSAkYmVRdWlldCA9IDA7CiAKLW15ICRwYXJz
ZU1vZGU7Ci1teSAkcHJlc2VydmVkUGFyc2VNb2RlOworc3ViIG5ldyB7CisgICAgbXkgJGNsYXNz
ID0gc2hpZnQ7CisgICAgJGJlUXVpZXQgPSBzaGlmdDsKIAotbXkgJGJlUXVpZXQ7ICMgU2hvdWxk
IG5vdCBkaXNwbGF5IGFueXRoaW5nIG9uIFNURE9VVD8KLW15ICRkb2N1bWVudDsgIyBXaWxsIGhv
bGQgdGhlIHJlc3VsdGluZyAnaWRsRG9jdW1lbnQnCi1teSAkcGFyZW50c09ubHk7ICMgSWYgMSwg
cGFyc2Ugb25seSBlbm91Z2ggdG8gcG9wdWxhdGUgcGFyZW50cyBsaXN0CisgICAgbXkgJGVtcHR5
VG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAgJGVtcHR5VG9rZW4tPnR5cGUoRW1wdHlUb2tlbik7
CisgICAgJGVtcHR5VG9rZW4tPnZhbHVlKCJlbXB0eSIpOworCisgICAgbXkgJHNlbGYgPSB7Cisg
ICAgICAgIERvY3VtZW50Q29udGVudCA9PiAiIiwKKyAgICAgICAgRW1wdHlUb2tlbiA9PiAkZW1w
dHlUb2tlbiwKKyAgICAgICAgTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBUb2tl
biA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTGluZSA9PiAiIiwKKyAgICAgICAgTGluZU51bWJl
ciA9PiAxCisgICAgfTsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKK30KIAotc3Vi
IEluaXRpYWxpemVHbG9iYWxEYXRhCitzdWIgYXNzZXJ0VG9rZW5WYWx1ZQogewotICAgIEB0ZW1w
b3JhcnlDb250ZW50ID0gIiI7Ci0KLSAgICAkcGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKLSAgICAk
cHJlc2VydmVkUGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKLQotICAgICRkb2N1bWVudCA9IDA7Ci0g
ICAgJHBhcmVudHNPbmx5ID0gMDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tl
biA9IHNoaWZ0OworICAgIG15ICR2YWx1ZSA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7
CisgICAgbXkgJG1zZyA9ICJOZXh0IHRva2VuIHNob3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0
ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlmIChk
ZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAkbGluZTsKKyAgICB9Cisg
ICAgZGllICRtc2cgdW5sZXNzICR0b2tlbi0+dmFsdWUoKSBlcSAkdmFsdWU7CiB9CiAKLSMgRGVm
YXVsdCBDb25zdHJ1Y3Rvcgotc3ViIG5ldworc3ViIGFzc2VydFRva2VuVHlwZQogewotICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkcmVmZXJlbmNlID0geyB9OwotCi0gICAgSW5pdGlh
bGl6ZUdsb2JhbERhdGEoKTsKLQotICAgICRiZVF1aWV0ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgIGRpZSAiTmV4dCB0b2tlbidzIHR5cGUgc2hvdWxkIGJlICIgLiAkdHlwZSAuICIsIGJ1dCAi
IC4gJHRva2VuLT50eXBlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9IHVubGVzcyAkdG9rZW4t
PnR5cGUoKSBlcSAkdHlwZTsKK30KIAotICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOwot
ICAgIHJldHVybiAkcmVmZXJlbmNlOworc3ViIGFzc2VydFVuZXhwZWN0ZWRUb2tlbgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkgJGxpbmUg
PSBzaGlmdDsKKyAgICBteSAkbXNnID0gIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tlbiAuICIg
YXQgIiAuICRzZWxmLT57TGluZX07CisgICAgaWYgKGRlZmluZWQgKCRsaW5lKSkgeworICAgICAg
ICAkbXNnID0gJG1zZyAuICIgSURMUGFyc2VyLnBtOiIgLiAkbGluZTsKKyAgICB9CisgICAgZGll
ICRtc2c7CiB9CiAKLSMgUmV0dXJucyB0aGUgcGFyc2VkICdpZGxEb2N1bWVudCcKIHN1YiBQYXJz
ZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAg
IG15ICRmaWxlTmFtZSA9IHNoaWZ0OwogICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CiAgICAgbXkg
JHByZXByb2Nlc3NvciA9IHNoaWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0OworCisgICAg
bXkgQGRlZmluaXRpb25zID0gKCk7CiAKICAgICBwcmludCAiIHwgKioqIFN0YXJ0aW5nIHRvIHBh
cnNlICRmaWxlTmFtZS4uLlxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgIG15IEBkb2N1bWVu
dENvbnRlbnQgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJv
Y2Vzc29yKTsKIAotICAgIG15ICRkYXRhQXZhaWxhYmxlID0gMDsKKyAgICBteSBAbGluZXMgPSBh
cHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKTsKKyAg
ICAkc2VsZi0+e0xpbmV9ID0gJGxpbmVzWzBdOworICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50
fSA9IGpvaW4oJyAnLCBAbGluZXMpOwogCi0gICAgIyBTaW1wbGUgSURMIFBhcnNlciAodG0pCi0g
ICAgZm9yZWFjaCAoQGRvY3VtZW50Q29udGVudCkgewotICAgICAgICBteSAkbmV3UGFyc2VNb2Rl
ID0gJG9iamVjdC0+RGV0ZXJtaW5lUGFyc2VNb2RlKCRfKTsKKyAgICAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICBldmFsIHsKKyAgICAgICAgbXkgJHJlc3VsdCA9ICRzZWxmLT5wYXJzZURlZmluaXRp
b25zKCk7CisgICAgICAgIHB1c2goQGRlZmluaXRpb25zLCBAeyRyZXN1bHR9KTsKIAotICAgICAg
ICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAgICAgICAgICBpZiAoJGRh
dGFBdmFpbGFibGUgZXEgMCkgewotICAgICAgICAgICAgICAgICRkYXRhQXZhaWxhYmxlID0gMTsg
IyBTdGFydCBub2RlIGJ1aWxkaW5nLi4uCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7Ci0gICAgICAgICAgICB9CisgICAgICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUo
KSAhPSBFbXB0eVRva2VuKSB7CisgICAgICAgICAgICBkaWUgIkV4cGVjdCBFT0YsIGJ1dCBmb3Vu
ZCAiIC4gJG5leHQtPnZhbHVlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OwogICAgICAgICB9
CisgICAgfTsKKyAgICBkaWUgJEAgLiAiIGluICRmaWxlTmFtZSIgaWYgJEA7CisKKyAgICBkaWUg
Ik5vIGRvY3VtZW50IGZvdW5kIiB1bmxlc3MgQGRlZmluaXRpb25zOworCisgICAgbXkgJGRvY3Vt
ZW50OworICAgIGlmICgkI2RlZmluaXRpb25zID09IDAgJiYgcmVmKCRkZWZpbml0aW9uc1swXSkg
ZXEgImlkbERvY3VtZW50IikgeworICAgICAgICAkZG9jdW1lbnQgPSAkZGVmaW5pdGlvbnNbMF07
CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7Cisg
ICAgICAgICRkb2N1bWVudC0+bW9kdWxlKCIiKTsKKyAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+
Y2xhc3Nlc30sIEBkZWZpbml0aW9ucyk7CisgICAgfQorICAgICAgICAKKyAgICBkaWUgIk5vIGRv
Y3VtZW50IGZvdW5kIiB1bmxlc3MgcmVmKCRkb2N1bWVudCkgZXEgImlkbERvY3VtZW50IjsKKwor
ICAgIHByaW50ICIgfCAqKiogRmluaXNoZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1aWV0Owor
CisgICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworICAgIHJldHVybiAkZG9jdW1l
bnQ7Cit9CisKK3N1YiBuZXh0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJl
dHVybiAkc2VsZi0+e05leHRUb2tlbn07Cit9CisKK3N1YiBnZXRUb2tlbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgJHNlbGYtPntUb2tlbn0gPSAkc2VsZi0+e05leHRUb2tlbn07Cisg
ICAgJHNlbGYtPntOZXh0VG9rZW59ID0gJHNlbGYtPmdldFRva2VuSW50ZXJuYWwoKTsKKyAgICBy
ZXR1cm4gJHNlbGYtPntUb2tlbn07Cit9CiAKLSAgICAgICAgIyBVcGRhdGUgZGV0ZWN0ZWQgZGF0
YSBzdHJlYW0gbW9kZS4uLgotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVG
KSB7Ci0gICAgICAgICAgICAkcGFyc2VNb2RlID0gJG5ld1BhcnNlTW9kZTsKK215ICR3aGl0ZXNw
YWNlVG9rZW5QYXR0ZXJuID0gJ15bXHRcblxyIF0qW1xuXHJdJzsKK215ICRmbG9hdFRva2VuUGF0
dGVybiA9ICdeKC0/KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsrLV0/WzAt
OV0rKT98WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSknOworbXkgJGludGVnZXJUb2tlblBhdHRlcm4g
PSAnXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKSc7CitteSAk
c3RyaW5nVG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwiXSpcIiknOworbXkgJGlkZW50aWZpZXJUb2tl
blBhdHRlcm4gPSAnXihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7CitteSAkb3RoZXJUb2tlblBh
dHRlcm4gPSAnXig6OnxcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0pJzsKKworc3ViIGdldFRv
a2VuSW50ZXJuYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgaWYgKCRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiAvJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4vKSB7CisgICAgICAg
ICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLygkd2hpdGVzcGFjZVRva2VuUGF0dGVybikv
LzsKKyAgICAgICAgbXkgJHNraXBwZWQgPSAkMTsKKyAgICAgICAgJHNlbGYtPntMaW5lTnVtYmVy
fSsrIHdoaWxlICgkc2tpcHBlZCA9fiBtL1xuL2cpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50
Q29udGVudH0gPX4gL14oW15cblxyXSspLzsKKyAgICAgICAgIyBMaW5lIGlzIHVzZWQgZm9yIGVy
cm9yIG91dHB1dC4KKyAgICAgICAgaWYgKGRlZmluZWQoJDEpKSB7CisgICAgICAgICAgICAkc2Vs
Zi0+e0xpbmV9ID0gJHNlbGYtPntMaW5lTnVtYmVyfSAuICI6IiAuICQxOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICJVbmtub3duIjsKICAgICAgICAgfQor
ICAgIH0KKyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKFtcdFxuXHIgXSspLy87
CisgICAgaWYgKGxlbmd0aCgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0pID09IDApIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQogCi0gICAgICAgIHB1c2goQHRl
bXBvcmFyeUNvbnRlbnQsICRfKTsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAg
aWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0VG9rZW5QYXR0ZXJuLykgewor
ICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUo
JDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kZmxvYXRUb2tlblBh
dHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0
b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAg
ICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGludGVnZXJUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50
eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRz
ZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tlblBhdHRlcm4vLzsKKyAgICAg
ICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50
fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNl
bGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vLzsKKyAg
ICAgICAgcmV0dXJuICR0b2tlbjsKICAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250
ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoT3Ro
ZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0Rv
Y3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJu
ICR0b2tlbjsKKyAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBhdCAiIC4gJHNl
bGYtPntMaW5lfTsKK30KIAotICAgICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgcmVtYWlu
aW5nIHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIGFuZCAo
JCN0ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rp
b24oKTsKKworc3ViIHBhcnNlRGVmaW5pdGlvbnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIG15ICRkZWZpbml0aW9uOworICAg
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7Cisg
ICAgICAgICAgICAkZGVmaW5pdGlvbiA9ICRzZWxmLT5wYXJzZURlZmluaXRpb24oJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGNhbGxiYWNrfGRpY3Rpb25hcnl8
ZW51bXxleGNlcHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkLykpIHsKKyAgICAgICAg
ICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbk9sZCgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5l
ZCAoJGRlZmluaXRpb24pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgJGRlZmlu
aXRpb24pOworICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25zOworfQog
Ci0gICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7
Ci0gCi0gICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworc3ViIHBhcnNlRGVmaW5p
dGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oY2FsbGJhY2t8
aW50ZXJmYWNlKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50
ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFs
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbigk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJlbnVtIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRW51bSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZigkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBQYXJzZU1vZHVsZQorc3ViIHBh
cnNlQ2FsbGJhY2tPckludGVyZmFjZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY2FsbGJhY2siKTsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImlu
dGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgcHJpbnQgIiB8LSBUcnlpbmcg
dG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUNhbGxiYWNr
UmVzdE9ySW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KIAotICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRl
bnQpOwotICAgICRkYXRhID1+IC8kSURMU3RydWN0dXJlOjptb2R1bGVTZWxlY3Rvci87CitzdWIg
cGFyc2VJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBt
eSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgbXkgJGludGVy
ZmFjZU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRpbnRlcmZhY2VOYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAg
cHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsi
KTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VN
ZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFj
ZU1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUs
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CiAKLSAgICBteSAkbW9kdWxlTmFtZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgJGRhdGFOb2RlLT5t
b2R1bGUoJG1vZHVsZU5hbWUpOworc3ViIHBhcnNlUGFydGlhbAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcHJp
bnQgIiAgfC0tLS0+IE1vZHVsZTsgTkFNRSBcIiRtb2R1bGVOYW1lXCJcbiB8LVxuIHxcbiIgdW5s
ZXNzICRiZVF1aWV0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJwYXJ0aWFsIik7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VQYXJ0aWFsRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOwogfQogCi1zdWIgZHVtcEV4dGVuZGVkQXR0cmlidXRlcworc3ViIHBhcnNlUGFydGlh
bERlZmluaXRpb24KIHsKLSAgICBteSAkcGFkU3RyID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJzID0g
c2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CiAKLSAgICBpZiAoISV7JGF0dHJzfSkgewotICAgICAgICByZXR1cm4gIiI7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFs
SW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQ
YXJ0aWFsRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQog
Ci0gICAgbXkgQHRlbXA7Ci0gICAgd2hpbGUgKChteSAkbmFtZSwgbXkgJHZhbHVlKSA9IGVhY2go
JXskYXR0cnN9KSkgewotICAgICAgICBwdXNoKEB0ZW1wLCAiJG5hbWU9JHZhbHVlIik7CitzdWIg
cGFyc2VQYXJ0aWFsSW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZh
Y2UiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9
Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OyIpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHJldHVybiAkcGFkU3Ry
IC4gIlsiIC4gam9pbigiLCAiLCBAdGVtcCkgLiAiXSI7CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1i
ZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAaW50ZXJmYWNlTWVtYmVycyA9
ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXI7CisKKyAgICAgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAgICAgJGlu
dGVyZmFjZU1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8
RGF0ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjb25zdHxjcmVhdG9yfGRlbGV0ZXJ8ZG91
YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0
ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmlu
Z2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQvKSkgeworICAgICAgICAgICAgJGlu
dGVyZmFjZU1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlck9sZCgpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVm
aW5lZCAkaW50ZXJmYWNlTWVtYmVyKSB7CisgICAgICAgICAgICBwdXNoKEBpbnRlcmZhY2VNZW1i
ZXJzLCAkaW50ZXJmYWNlTWVtYmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBp
bnRlcmZhY2VNZW1iZXJzOwogfQogCi1zdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBw
YXJzZUludGVyZmFjZU1lbWJlcgogewotICAgIG15ICRzdHIgPSBzaGlmdDsKLSAgICAkc3RyID1+
IHMvXFtccyooLiopXHMqXF0vJDEvZzsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52
YWx1ZSgpID1+IC9eKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxi
b29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxp
bnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlh
bGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWdu
ZWR8dm9pZCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQog
Ci0gICAgbXkgJWF0dHJzID0gKCk7CitzdWIgcGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+
cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHdoaWxlICgkc3Ry
ICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQYXJzZSBuYW1lCi0gICAgICAgIGlmICgkc3RyICF+
IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0
dHJpYnV0ZTogJyRzdHInXG4iKTsKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJzCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7
CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5
TWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKHxC
eXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlu
dHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQp
JC8pKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9Ci0gICAgICAgIG15
ICRuYW1lID0gJDE7Ci0gICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87Ci0KLSAgICAg
ICAgaWYgKCRzdHIgPX4gL15ccyo9LykgewotICAgICAgICAgICAgJHN0ciA9fiBzL15ccyo9Ly87
Ci0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIk5hbWVkQ29uc3RydWN0b3IiKSB7Ci0gICAgICAg
ICAgICAgICAgIyBQYXJzZSAnPScgbmFtZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAg
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZTsKLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9
fiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGNvbnN0cnVjdG9yTmFt
ZSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxp
ZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAgICAgICAkc3Ry
ID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eKFteKV0q
KVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAkc2lnbmF0dXJlID0gJDE7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAkc2lnbmF0dXJlID1+IHMvXiguKj8pXHMqJC8kMS87Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rvck5hbWUi
ID0+ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+ICRzaWduYXR1cmV9OwotICAgICAg
ICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8vOwotICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4
dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29uc3RydWN0b3JO
YW1lLCAiU2lnbmF0dXJlIiA9PiAiIn07Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9e
XHMqLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBk
aWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIyBQYXJzZSAnPScg
dmFsdWUgJywnPwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqKFteLF0qKSw/Lykg
ewotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAgICAgICAgICAg
ICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyokLyQxLzsKLSAgICAgICAgICAgICAg
ICAgICAgJHN0ciA9fiBzL15ccyooW14sXSopLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAn
JHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgIyBQYXJzZSAnKCcgYXJndW1l
bnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAg
ICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAgICRhdHRyc3sk
bmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMq
JC8kMS87Ci0gICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCksPy8vOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0
cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgkc3Ry
ID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcnIHwgJywnCi0gICAgICAgICAg
ICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAgICRhdHRyc3sk
bmFtZX0gPSAiIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJz
eyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitz
dWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxh
bnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVu
Y2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQvKSkgeworICAgICAgICAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2Vu
KCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZURlZmF1bHQoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VQYXJ0aWFsRGljdGlvbmFy
eQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnki
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURlZmF1bHQKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VEZWZhdWx0VmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIgcGFy
c2VEZWZhdWx0VmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2Vu
KSB8fCAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9
fiAvXigtfEluZmluaXR5fE5hTnxmYWxzZXxudWxsfHRydWUpJC8pKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VDb25zdFZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IFN0cmluZ1Rva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeGNlcHRpb24KK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZXhjZXB0aW9uIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJleGNl
cHRpb24iKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRleGNlcHRpb25OYW1lVG9rZW4s
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkZXhjZXB0aW9uTmFt
ZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigxKTsKKyAg
ICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFu
Y2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VFeGNl
cHRpb25NZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGV4
Y2VwdGlvbk1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0
YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2Rl
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcnMKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15IEBtZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgewor
ICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFwo
fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxjb25zdHxkb3Vi
bGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3Rl
ZHx1bnNpZ25lZCkkLykpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAg
ICAgICAjbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIG15ICRtZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRl
cmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICBpZiAoZGVm
aW5lZCAoJG1lbWJlcikpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkbWVtYmVy
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqLD8vLzsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6
ICckc3RyJ1xuIik7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9CiAgICAgfQorICAgIHJl
dHVybiBcQG1lbWJlcnM7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJzZUluaGVy
aXRhbmNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAcGFyZW50ID0gKCk7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIjoiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiOiIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgIHB1c2goQHBhcmVudCwgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgIyBNdWx0aXBs
ZSBpbmhlcml0YW5jZT8KKyAgICAgICAgcHVzaChAcGFyZW50LCBAeyRzZWxmLT5wYXJzZUlkZW50
aWZpZXJzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAcGFyZW50OwogfQogCi1zdWIgcGFyc2VQ
YXJhbWV0ZXJzCitzdWIgcGFyc2VFbnVtCiB7Ci0gICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7
Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVu
dW0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUVudW1WYWx1ZUxpc3QoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRz
IGF0IGNvbW1hcyBidXQgb25seSBpZiB0aGUgY29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0
cmlidXRlIGJyYWNrZXRzLCBleHByZXNzZWQgaGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQg
YnkgYSAnXScgd2l0aG91dCBhIHByZWNlZGluZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBh
c3N1bWVzIHRoYXQgYXR0cmlidXRlcyBkb24ndCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxp
dCgvLCg/IVteW10qXF0pLywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFt
cykgewotICAgICAgICBteSAkbGluZSA9ICRfOworc3ViIHBhcnNlRW51bVZhbHVlTGlzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAg
ICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VQYXJhbWV0ZXJT
ZWxlY3Rvci87Ci0gICAgICAgIG15ICRwYXJhbURpcmVjdGlvbiA9ICQxOwotICAgICAgICBteSAk
cGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3Ao
JHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZSA9IChkZWZp
bmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7
Ci0gICAgICAgIG15ICRwYXJhbVR5cGVTdWZmaXggPSBkZWZpbmVkKCQ0KSA/ICQ0IDogIiI7Ci0g
ICAgICAgIG15ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworc3ViIHBhcnNlRW51bVZhbHVlcworeworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAgICAkc2VsZi0+
cGFyc2VFbnVtVmFsdWVzKCk7CisgICAgfQorICAgIHJldHVybjsKK30KIAotICAgICAgICBteSAk
aXNOdWxsYWJsZSA9ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNlQ2FsbGJhY2tS
ZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAg
ICAgICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgICRzZWxmLT5wYXJzZUFyZ3Vt
ZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIikiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIG15
ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOwotICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+ZGlyZWN0aW9uKCRwYXJhbURpcmVjdGlvbik7Ci0gICAgICAgICRwYXJhbURhdGFOb2Rl
LT5uYW1lKCRwYXJhbU5hbWUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkcGFyYW1U
eXBlKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4
dGVuZGVkQXR0cmlidXRlcygkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpKTsKLSAgICAgICAgJHBh
cmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoJGlzTnVsbGFibGUpOworc3ViIHBhcnNlVHlwZWRlZgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInR5cGVkZWYiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIG15ICRh
cnJheVJlZiA9ICRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyczsKLSAgICAgICAgcHVzaChAJGFycmF5
UmVmLCAkcGFyYW1EYXRhTm9kZSk7CitzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAi
ICB8ICAgfD4gIFBhcmFtOyBUWVBFIFwiJHBhcmFtVHlwZVwiIE5BTUUgXCIkcGFyYW1OYW1lXCIi
IC4gCi0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAg
ICAgIiwgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAk
YmVRdWlldDsgICAgICAgICAgCitzdWIgcGFyc2VDb25zdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25z
dCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUNvbnN0YW50KCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY29uc3QiKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRzZWxmLT5wYXJzZUNvbnN0VHlwZSgpKTsKKyAg
ICAgICAgbXkgJGNvbnN0TmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJGNvbnN0TmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwor
ICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZVRva2VuLT52YWx1ZSgpKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNlbGYtPnBhcnNlQ29uc3RWYWx1ZSgpKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOwogICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1
YiBQYXJzZUludGVyZmFjZQorc3ViIHBhcnNlQ29uc3RWYWx1ZQogewotICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkc2VjdGlvbk5hbWUg
PSBzaGlmdDsKLQotICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwot
Ci0gICAgIyBMb29rIGZvciBlbmQtb2YtaW50ZXJmYWNlIG1hcmsKLSAgICAkZGF0YSA9fiAvfTsv
ZzsKLSAgICAkZGF0YSA9IHN1YnN0cigkZGF0YSwgaW5kZXgoJGRhdGEsICRzZWN0aW9uTmFtZSks
IHBvcygkZGF0YSkgLSBsZW5ndGgoJGRhdGEpKTsKLQotICAgICRkYXRhID1+IHMvW1xuXHJdLyAv
ZzsKLQotICAgICMgQmVnaW5uaW5nIG9mIHRoZSByZWdleHAgcGFyc2luZyBtYWdpYwotICAgIGlm
ICgkc2VjdGlvbk5hbWUgZXEgImludGVyZmFjZSIgfHwgJHNlY3Rpb25OYW1lIGVxICJleGNlcHRp
b24iKSB7Ci0gICAgICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIGludGVyZmFjZS4uLlxu
IiB1bmxlc3MgJGJlUXVpZXQ7Ci0KLSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAiIjsKLSAg
ICAgICAgbXkgJGludGVyZmFjZURhdGEgPSAiIjsKLQotICAgICAgICAjIE1hdGNoIGlkZW50aWZp
ZXIgb2YgdGhlIGludGVyZmFjZSwgYW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEg
PX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNF
eGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VF
eHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVy
ZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmlu
ZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsK
LSAgICAgICAgbXkgJGludGVyZmFjZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAg
ICAgICAgJGludGVyZmFjZURhdGEgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotCi0gICAgICAgICMgRmlsbCBpbiBrbm93biBw
YXJ0cyBvZiB0aGUgZG9tQ2xhc3MgZGF0YXN0cnVjdHVyZSBub3cuLi4KLSAgICAgICAgJGRhdGFO
b2RlLT5pc0V4Y2VwdGlvbigkaXNFeGNlcHRpb24pOwotICAgICAgICAkZGF0YU5vZGUtPm5hbWUo
JGludGVyZmFjZU5hbWUpOwotICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gcGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZXMoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAg
IGlmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSkgewotICAg
ICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7Ci0gICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRl
ZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwg
JGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9KTsKLSAgICAgICAgICAgICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAg
ICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAgICAg
fSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3Ii
fSkgewotICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0g
ICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwot
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0
b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMo
JG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifS0+
eyJTaWduYXR1cmUifSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVk
Q29uc3RydWN0b3IifSA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9
eyJDb25zdHJ1Y3Rvck5hbWUifTsKLSAgICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3Io
JG5ld0RhdGFOb2RlKTsKLSAgICAgICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihmYWxzZXx0cnVlKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFu
TGl0ZXJhbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIp
OworICAgICAgICByZXR1cm4gIm51bGwiOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkg
PT0gRmxvYXRUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKC18SW5maW5pdHl8TmFOKSQv
KSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRMaXRlcmFsKCk7CisgICAgfQor
ICAgICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0
cmluZ1Rva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAg
ICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBpbnRlcmZhY2VQYXJlbnRz
ID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZvcmVhY2goQGludGVyZmFj
ZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0gICAgICAgICAgICAkbGlu
ZSA9fiBzL1xzKi8vZzsKK3N1YiBwYXJzZUJvb2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgInRydWUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAidHJ1ZSIpOworICAgICAgICByZXR1cm4gInRydWUiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZhbHNlIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImZhbHNlIik7CisgICAgICAgIHJl
dHVybiAiZmFsc2UiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgIG15ICRhcnJheVJlZiA9
ICRkYXRhTm9kZS0+cGFyZW50czsKLSAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJGxpbmUp
OwotICAgICAgICB9CitzdWIgcGFyc2VGbG9hdExpdGVyYWwKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiLSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICItIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiSW5maW5pdHkiKTsKKyAgICAgICAgcmV0dXJuICItSW5maW5pdHkiOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkluZmluaXR5IikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkluZmluaXR5Iik7Cisg
ICAgICAgIHJldHVybiAiSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIk5hTiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJOYU4iKTsKKyAgICAgICAgcmV0dXJuICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIHJldHVybiBpZiAkcGFyZW50
c09ubHk7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
IAotICAgICAgICAkaW50ZXJmYWNlRGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0gICAgICAgIG15IEBp
bnRlcmZhY2VNZXRob2RzID0gc3BsaXQoLzsvLCAkaW50ZXJmYWNlRGF0YSk7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJp
YWxpemVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXplcigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKHN0
YXRpY3xzdHJpbmdpZmllcikkLykgeworICAgICAgICBteSAkcXVhbGlmaWVyID0gJHNlbGYtPnBh
cnNlUXVhbGlmaWVyKCk7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9ICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
aWYgKGRlZmluZWQoJG5ld0RhdGFOb2RlKSAmJiAkcXVhbGlmaWVyIGVxICJzdGF0aWMiKSB7Cisg
ICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKDEpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
XihhdHRyaWJ1dGV8aW5oZXJpdHxyZWFkb25seSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAo
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4g
L14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGNyZWF0b3J8
ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8
b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQv
KSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIGZvcmVhY2ggbXkg
JGxpbmUgKEBpbnRlcmZhY2VNZXRob2RzKSB7Ci0gICAgICAgICAgICBuZXh0IGlmICRsaW5lID1+
IC9eXHMqJC87Ci0gICAgICAgICAgICBpZiAoJGxpbmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7Ci0g
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0
ZVNlbGVjdG9yLzsKK3N1YiBwYXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAg
ICAgIG15ICRpc1N0YXRpYyA9IGRlZmluZWQoJDEpOwotICAgICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGVUeXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3Vy
Y2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRXh0ZW5kZWRB
dHRyaWJ1dGVzID0gKGRlZmluZWQoJDMpID8gJDMgOiAiICIpOyBjaG9wKCRhdHRyaWJ1dGVFeHRl
bmRlZEF0dHJpYnV0ZXMpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXJpYWxpemVyIik7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFUeXBl
ID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGlu
ZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVmaW5l
ZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwot
ICAKLSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVk
IGZvciByZWdleHAgbWF0Y2hpbmcKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAK
LSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2Vs
ZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgk
MSkgPyAkMSA6ICIiKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
U2VyaWFsaXphdGlvblBhdHRlcm4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
IGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUo
KSBlcSAiKCIpKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAg
ICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6c2V0dGVyUmFpc2VzU2VsZWN0b3IvOwot
ICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6
ICIiKTsKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInsi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
eyIpOworICAgICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAg
ICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkYXR0cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CitzdWIgcGFyc2VTZXJp
YWxpemF0aW9uUGF0dGVybk1hcAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0
ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZ2V0dGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImluaGVyaXQiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmll
cnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRp
ZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAg
ICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5h
bWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRy
aWJ1dGVEYXRhVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0
ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIHJldHVybjsKK30KIAotICAgICAgICAgICAgICAgIG15ICRh
cnJheVJlZiA9ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBwdXNoKEAk
YXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VJZGVudGlmaWVycworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGlkZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsK
KyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlkZW50cywgJHRva2VuLT52YWx1
ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIFxAaWRlbnRzOworfQogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAg
fCAgfD4gIEF0dHJpYnV0ZTsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkYXR0cmlidXRl
VHlwZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwiIERBVEEgVFlQRSBcIiRhdHRy
aWJ1dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRlckV4Y2VwdGlvblwiIFNFVCBF
WENFUFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAgICAgICAgICAgICAgICAgIGR1
bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0
Oworc3ViIHBhcnNlUXVhbGlmaWVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAg
ICAgICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAg
JHNldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRh
Tm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRpb24pOwot
ICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0
KC8sLywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZSAhfiAv
XlxzKigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0XHMrLykg
ewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VNZXRo
b2RTZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiOwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAic3RhdGljIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInN0YXRpYyIpOworICAgICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3RyaW5naWZpZXIiKTsKKyAg
ICAgICAgcmV0dXJuICJzdHJpbmdpZmllciI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAg
ICAgIG15ICRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIg
Iik7IGNob3AoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICAgICAgbXkg
JGlzU3RhdGljID0gZGVmaW5lZCgkMik7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZFR5cGUg
PSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5l
XG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2ROYW1lID0gKGRlZmluZWQoJDQpID8g
JDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAg
ICAgICAgICBteSAkbWV0aG9kU2lnbmF0dXJlID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZUF0dHJpYnV0ZU9y
T3BlcmF0aW9uUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgKCcnID1+IC9eLyk7ICMg
UmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNoaW5nCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGF0dHJp
YnV0ZXxyZWFkb25seSkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRl
UmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICI7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0
ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8
bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZv
aWQpJC8pKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlw
ZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkg
eworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
ICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0g
ICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDog
IiIpOworc3ViIHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oYXR0cmlidXRlfGluaGVy
aXR8cmVhZG9ubHkpJC8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdCgpOworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRp
YygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5l
dyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPm5hbWUoJG1ldGhvZE5hbWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT50eXBlKCRtZXRob2RUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRt
ZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpKTsKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSA9fiAvXihhdHRyaWJ1dGV8cmVhZG9ubHkpJC8pIHsKKyAgICAgICAgbXkgJG5ld0Rh
dGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVh
ZE9ubHkoKSkgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRy
aWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlw
ZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2Vu
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFt
ZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0UmVmID0gJHNlbGYtPnBhcnNlR2V0
KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAgICAgIHB1c2goQHsk
bmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsiZ2V0cmFpc2VzIn19
KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBA
eyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAg
ICAgICAgICAgcHJpbnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZ
UEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0
aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmli
dXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFyc2VJbmhlcml0
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIpOworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAgICAg
ICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0Rh
dGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1ldGhvZEV4Y2VwdGlvbik7
CitzdWIgcGFyc2VSZWFkT25seQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyZWFk
b25seSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJyZWFkb25seSIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7
Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkbWV0
aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAot
ICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAg
ICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0
YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRl
cyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0
ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJv
ciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFZhbHVl
ID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGlu
ZVxuKSIpKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gL14oY3JlYXRvcnxkZWxldGVyfGdldHRlcnxsZWdhY3ljYWxsZXJ8c2V0
dGVyKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTcGVjaWFsT3BlcmF0aW9uKCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xE
T01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmpl
Y3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJC8pKSB7
CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAg
ICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdCgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkp
IHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKLSAgICAg
ICAgICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZSk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT50eXBlKCRjb25zdFR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdE
YXRhTm9kZS0+dmFsdWUoJGNvbnN0VmFsdWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRjb25zdEV4dGVu
ZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlU3BlY2lhbE9wZXJhdGlvbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikkLykgewor
ICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNp
YWxzKCk7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgp
OworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgewor
ICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAg
ICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+Y29uc3RhbnRzOwotICAgICAgICAg
ICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKK3N1YiBwYXJzZVNwZWNpYWxz
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwg
ICB8PiAgQ29uc3RhbnQ7IFRZUEUgXCIkY29uc3RUeXBlXCIgTkFNRSBcIiRjb25zdE5hbWVcIiBW
QUxVRSBcIiRjb25zdFZhbHVlXCJcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgICAgICAgICAgfQor
ICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oY3JlYXRvcnxkZWxldGVyfGdldHRlcnxs
ZWdhY3ljYWxsZXJ8c2V0dGVyKSQvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFs
KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OwogICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBbXTsKK30KIAotICAgICAgICBwcmludCAiICB8LS0tLT4gSW50ZXJmYWNl
OyBOQU1FIFwiJGludGVyZmFjZU5hbWVcIiIgLgotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0
cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKSAuICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlU3BlY2lh
bAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAg
ICAgIHJldHVybiAiZ2V0dGVyIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJz
ZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAic2V0dGVyIik7CisgICAgICAgIHJldHVybiAic2V0dGVyIjsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJjcmVhdG9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNyZWF0b3IiKTsKKyAgICAgICAgcmV0dXJuICJj
cmVhdG9yIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkZWxldGVyIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRlbGV0
ZXIiKTsKKyAgICAgICAgcmV0dXJuICJkZWxldGVyIjsKICAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJsZWdhY3ljYWxsZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibGVnYWN5Y2FsbGVyIik7CisgICAgICAgIHJldHVybiAi
bGVnYWN5Y2FsbGVyIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIERl
dGVybWluZVBhcnNlTW9kZQorc3ViIHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvclJlc3QKIHsKLSAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJpdGVyYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUl0ZXJhdG9yUmVz
dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KIAotICAgIG15ICRtb2RlID0gTU9ERV9VTkRFRjsKLSAgICBpZiAo
JF8gPX4gL21vZHVsZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX01PRFVMRTsKLSAgICB9IGVs
c2lmICgkXyA9fiAvaW50ZXJmYWNlLykgewotICAgICAgICAkbW9kZSA9IE1PREVfSU5URVJGQUNF
OwotICAgIH0gZWxzaWYgKCRfID1+IC9leGNlcHRpb24vKSB7Ci0gICAgICAgICRtb2RlID0gTU9E
RV9FWENFUFRJT047CitzdWIgcGFyc2VJdGVyYXRvclJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaXRl
cmF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiaXRlcmF0b3IiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWxJdGVyYXRvcklu
dGVyZmFjZU9yT2JqZWN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJu
OwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gJG1vZGU7CitzdWIgcGFyc2VPcHRpb25hbEl0
ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXig7fFw9KSQvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9i
amVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvYmplY3QiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLSMgSW50ZXJu
YWwgaGVscGVyCi1zdWIgUHJvY2Vzc1NlY3Rpb24KK3N1YiBwYXJzZU9wdGlvbmFsSXRlcmF0b3JJ
bnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gIAotICAgIGlmICgkcGFyc2VN
b2RlIGVxIE1PREVfTU9EVUxFKSB7Ci0gICAgICAgIGRpZSAoIlR3byBtb2R1bGVzIGluIG9uZSBm
aWxlISBGYXRhbCBlcnJvciFcbiIpIGlmICgkZG9jdW1lbnQgbmUgMCk7Ci0gICAgICAgICRkb2N1
bWVudCA9IG5ldyBpZGxEb2N1bWVudCgpOwotICAgICAgICAkb2JqZWN0LT5QYXJzZU1vZHVsZSgk
ZG9jdW1lbnQpOwotICAgIH0gZWxzaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgfHwg
JHBhcnNlTW9kZSBlcSBNT0RFX0VYQ0VQVElPTikgewotICAgICAgICBteSAkbm9kZSA9IG5ldyBk
b21DbGFzcygpOwotICAgICAgICBteSAkc2VjdGlvbk5hbWUgPSAkcGFyc2VNb2RlIGVxIE1PREVf
SU5URVJGQUNFID8gImludGVyZmFjZSIgOiAiZXhjZXB0aW9uIjsKLSAgICAgICAgJG9iamVjdC0+
UGFyc2VJbnRlcmZhY2UoJG5vZGUsICRzZWN0aW9uTmFtZSk7Ci0gICAgCi0gICAgICAgIGRpZSAo
Ik5vIG1vZHVsZSBzcGVjaWZpZWQhIEZhdGFsIEVycm9yIVxuIikgaWYgKCRkb2N1bWVudCBlcSAw
KTsKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJGRvY3VtZW50LT5jbGFzc2VzOwotICAgICAgICBw
dXNoKEAkYXJyYXlSZWYsICRub2RlKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CiAgICAgfQorICAgIHJldHVybjsKK30KIAotICAgIEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7Citz
dWIgcGFyc2VPcGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8
fCAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBu
ZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRv
bVNpZ25hdHVyZSgpKTsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VPcHRpb25hbElk
ZW50aWZpZXIoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJG5hbWUp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigi
LCAkbmFtZSk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRz
ZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2Rl
LT5yYWlzZXNFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQog
Ci0xOworc3ViIHBhcnNlT3B0aW9uYWxJZGVudGlmaWVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIHJl
dHVybiAiIjsKK30KKworc3ViIHBhcnNlQXJndW1lbnRMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8
fCAoJG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xh
bnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0
aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQvKSkgeworICAgICAg
ICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICBwdXNo
KEBhcmd1bWVudHMsIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRzKCl9KTsKKyAgICB9CisgICAgcmV0
dXJuIFxAYXJndW1lbnRzOworfQorCitzdWIgcGFyc2VBcmd1bWVudHMKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7Cisg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsKKyAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgJHNl
bGYtPnBhcnNlQXJndW1lbnQoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBh
cnNlQXJndW1lbnQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRl
fFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlufGludHxsb25nfG9iamVjdHxvY3Rl
dHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJC8pKSB7Cisg
ICAgICAgIG15ICRpbiA9ICRzZWxmLT5wYXJzZUluKCk7CisgICAgICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5
KCk7CisgICAgICAgIG15ICRhcmd1bWVudCA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsT3JSZXF1aXJl
ZEFyZ3VtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXJndW1lbnQtPmRp
cmVjdGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7CisgICAgJHBh
cmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAib3B0aW9uYWwiKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+
cGFyc2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFz
dCAiPyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMg
UmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10i
LgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlw
ZSgkdHlwZSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3Vt
ZW50TmFtZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICByZXR1
cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKHxCeXRlU3RyaW5nfERPTVN0
cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxv
Y3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJC8pKSB7CisgICAgICAg
IG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNh
biBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL14oLiopXD8k
LykgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAg
ICAgICAgfQorICAgICAgICAjIFJlbW92ZSBhbGwgIj8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0
P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAgICAgICAgJHR5cGUgPX4gcy9cPy8vZzsKKyAgICAgICAg
JHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOworICAgICAgICAkc2VsZi0+cGFyc2VFbGxpcHNp
cygpOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5h
bWUoKSk7CisgICAgICAgIHJldHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VBcmd1bWVudE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihh
dHRyaWJ1dGV8Y2FsbGJhY2t8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRpY3Rpb25hcnl8ZW51bXxl
eGNlcHRpb258Z2V0dGVyfGltcGxlbWVudHN8aW5oZXJpdHxpbnRlcmZhY2V8bGVnYWN5Y2FsbGVy
fHBhcnRpYWx8c2VyaWFsaXplcnxzZXR0ZXJ8c3RhdGljfHN0cmluZ2lmaWVyfHR5cGVkZWZ8dW5y
ZXN0cmljdGVkKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWVL
ZXl3b3JkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
bikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiLi4uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIi4uLiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAo
JG5leHQtPnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9v
bGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hv
cnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlRXhjZXB0aW9uRmllbGQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRl
fGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1
ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJC8pKSB7CisgICAgICAgIG15ICRuZXdE
YXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBl
KCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUo
bmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5
cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZh
bHVlKCkpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIjsiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9k
ZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0Vt
cHR5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJu
IHt9OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJbIik7CisgICAgICAgIG15ICRhdHRycyA9IHt9OworICAgICAg
ICBteSAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7CisgICAgICAgIGZv
ciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9
ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICAgICAgJGF0dHIgPSAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0p
IHsKKyAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAg
fQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0i
KTsKKyAgICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRhdHRycyA9
IHt9OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAg
ICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTIoKTsKKyAgICAg
ICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAgICAgJGF0
dHJzLT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICAgICAgfQorICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gJGF0
dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxm
LT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgICMgYmFja3dhcmQgY29tcGF0aWJp
bGl0eS4gU3BlYyBkb2VzbicgYWxsb3cgIltdIi4gQnV0IFdlYktpdCByZXF1aXJlcy4KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgJ10nKSB7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTIKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
UmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMgPSB7fTsKKworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIik7Cisg
ICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAg
ICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Ij0iKTsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVSZXN0MigpOworICAgICAgICByZXR1cm4gJGF0dHJzOworICAgIH0KKworICAgIGlmICgk
bmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9IFtdOwor
ICAgIH0gZWxzZSB7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5H
IjsKKyAgICB9CisgICAgcmV0dXJuICRhdHRyczsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVSZXN0MgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MygkdG9rZW4tPnZhbHVlKCkpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZh
bHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Mwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
JiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICImIik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
cmV0dXJuICRuYW1lIC4gIiYiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgInwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAifCIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgIHJldHVybiAkbmFtZSAuICJ8IiAuICR0b2tlbi0+dmFsdWUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSAkYXR0ciA9
IHt9OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IigiKTsKKyAgICAgICAgJGF0dHItPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VBcmd1bWVudExpc3Qo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIp
Iik7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFwsfFxdKSQvKSkg
eworICAgICAgICBteSBAbmFtZXMgPSAoKTsKKyAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsK
KyAgICAgICAgcHVzaChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOwor
ICAgICAgICByZXR1cm4gam9pbignICcsIEBuYW1lcyk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJZGVudGlm
aWVyTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisK
KyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAg
ICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCkpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
XEBuYW1lczsKK30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lS2V5d29yZAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJj
YWxsYmFjayIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiY3JlYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
ZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
aW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRU
b2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlh
bGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1
bnJlc3RyaWN0ZWQiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAg
ICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgp
ID1+IC9eKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8
ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1
bnNpZ25lZCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VTaW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJhbnkiKTsKKyAgICAgICAgcmV0dXJuICJhbnkiIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIGlmICgoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8
b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkLykpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VVbmlvblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIo
Iik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRz
ZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1l
bWJlclR5cGVzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
VW5pb25NZW1iZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7Cisg
ICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBl
U3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJhbnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiYW55Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiWyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIl0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRl
fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNl
fHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkLykpIHsKKyAgICAgICAgJHNlbGYtPnBhcnNl
Tm9uQW55VHlwZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
VW5pb25NZW1iZXJUeXBlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvciIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIp
OworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYt
PnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBw
YXJzZU5vbkFueVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihib29sZWFu
fGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9jdGV0fHNob3J0fHVucmVzdHJpY3RlZHx1bnNp
Z25lZCkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4g
JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIkJ5dGVTdHJpbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIpOworICAgICAgICByZXR1cm4gIkJ5dGVTdHJpbmci
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJET01TdHJpbmciKTsKKyAgICAgICAgcmV0dXJuICJET01TdHJpbmci
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInNlcXVlbmNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInNlcXVlbmNlIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIpOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5w
YXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI+Iik7CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4iIC4g
JHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9i
amVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvYmplY3QiKTsKKyAgICAgICAgcmV0dXJuICJvYmplY3QiIC4gJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRhdGUiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRGF0ZSIp
OworICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZh
bHVlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBh
cnNlQ29uc3RUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oYm9vbGVhbnxi
eXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvY3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWdu
ZWQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRz
ZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZVByaW1pdGl2ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSA9fiAvXihpbnR8bG9uZ3xzaG9ydHx1bnNpZ25lZCkkLykgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gL14oZG91YmxlfGZsb2F0fHVucmVzdHJpY3RlZCkkLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJib29sZWFuIik7CisgICAgICAgIHJldHVybiAi
Ym9vbGVhbiI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYnl0ZSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJieXRlIik7
CisgICAgICAgIHJldHVybiAiYnl0ZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAib2N0ZXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAib2N0ZXQiKTsKKyAgICAgICAgcmV0dXJuICJvY3RldCI7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInVucmVzdHJpY3RlZCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ1bnJlc3RyaWN0ZWQiKTsKKyAgICAgICAgcmV0dXJuICJ1
bnJlc3RyaWN0ZWQiIC4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvXihkb3VibGV8ZmxvYXQpJC8pIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUZsb2F0VHlw
ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmbG9hdCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmbG9hdCIpOworICAgICAg
ICByZXR1cm4gImZsb2F0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkb3Vi
bGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZG91YmxlIik7CisgICAgICAgIHJldHVybiAiZG91YmxlIjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VVbnNpZ25lZEludGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInVuc2lnbmVkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInVuc2lnbmVkIik7CisgICAgICAgIHJldHVybiAidW5zaWduZWQgIiAuICRz
ZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihpbnR8bG9uZ3xzaG9ydCkkLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50
ZWdlclR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlZ2VyVHlwZQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzaG9ydCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzaG9ydCIpOworICAgICAgICByZXR1cm4g
InNob3J0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnQiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50Iik7Cisg
ICAgICAgIHJldHVybiAiaW50IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJs
b25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImxvbmciKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygpKSB7Cisg
ICAgICAgICAgICByZXR1cm4gImxvbmcgbG9uZyI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
ICJsb25nIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbExvbmcKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIik7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJldHVybiAiW10iIC4gJHNl
bGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
Ij8iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPyIpOworICAgICAgICByZXR1cm4gIj8iIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeFN0YXJ0
aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlVHlw
ZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiWyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIl0iKTsKKyAgICAgICAgcmV0dXJuICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7
CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlTnVsbAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAgICAgICAgcmV0dXJuICI/IjsKKyAgICB9Cisg
ICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgInZvaWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAidm9pZCIpOworICAgICAgICByZXR1cm4gInZvaWQiOworICAg
IH0KKyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQt
PnZhbHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxi
eXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5y
ZXN0cmljdGVkfHVuc2lnbmVkKSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlw
ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJpbmhlcml0cyIpIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlSW5oZXJpdHNHZXR0ZXIoKTsKKyAgICAgICAgJGF0dHItPnsiaW5oZXJpdHMi
fSA9IDE7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gW107CisgICAgICAgICRhdHRy
LT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2VzKCk7CisgICAgICAgIHJldHVy
biAkYXR0cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKDt8Z2V0cmFpc2Vz
fGdldHRlcnxzZXRyYWlzZXN8c2V0dGVyKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VTZXRHZXRSYWlzZXMoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIgcGFyc2VJbmhl
cml0c0dldHRlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0cyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbmhl
cml0cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
U2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkYXR0ciA9IHt9
OworICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAwOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAg
ICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2VzKCk7CisgICAg
ICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2VzMigpOworICAg
ICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0
dGVyIikgeworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9IFtdOworICAgICAgICAkYXR0
ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlcygpOworICAgICAgICByZXR1
cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXig7fGdldHJhaXNl
c3xzZXRyYWlzZXMpJC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNldEdldFJhaXNl
czIoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VHZXRSYWlzZXMKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIik7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
R2V0UmFpc2VzMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJh
aXNlcyIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAg
IH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlcworeworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2V0dGVyIik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIik7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
U2V0R2V0UmFpc2VzMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKDt8Z2V0cmFp
c2VzfHNldHJhaXNlcykkLykgeworICAgICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkYXR0
ci0+eyJpbmhlcml0cyJ9ID0gMDsKKyAgICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSAkc2Vs
Zi0+cGFyc2VHZXRSYWlzZXMzKCk7CisgICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNl
bGYtPnBhcnNlU2V0UmFpc2VzMygpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlR2V0UmFpc2VzMworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJnZXRyYWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiZ2V0cmFpc2VzIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNl
cHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlU2V0UmFp
c2VzMworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXRyYWlzZXMiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2V0cmFpc2Vz
Iik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQor
ICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTGlzdAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSBAZXhjZXB0aW9ucyA9ICgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiKTsK
KyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBwdXNoKEBl
eGNlcHRpb25zLCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBwdXNoKEBleGNlcHRpb25zLCBA
eyRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgIHJldHVybiBcQGV4Y2VwdGlv
bnM7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlUmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VE
ZWZpbml0aW9uT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oY2FsbGJhY2t8
aW50ZXJmYWNlKSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50
ZXJmYWNlT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWwoe30pOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VEaWN0aW9uYXJ5T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uT2xk
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUVudW1PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZih7
fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1w
bGVtZW50c1N0YXRlbWVudCh7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTW9kdWxlCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgcHJpbnQg
IiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICAg
ICAgbXkgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIik7CisgICAgICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RB
bGxvd0VtcHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7Cisg
ICAgICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRk
ZWZpbml0aW9ucyA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHsk
ZG9jdW1lbnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlT3B0aW9uYWxTZW1pY29sb24oKTsKKyAgICAgICAgcHJpbnQgIiAgfC0tLS0+IE1vZHVsZTsg
TkFNRSBcIiIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiXCJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1
aWV0OworICAgICAgICByZXR1cm4gJGRvY3VtZW50OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJz
ZUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Y2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiY2FsbGJhY2siKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNr
UmVzdE9ySW50ZXJmYWNlKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJp
bnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VPbGQoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcg
ZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5vZGUtPm5hbWUo
JHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigwKTsKKyAg
ICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFu
Y2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRl
cmZhY2VNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGlu
dGVyZmFjZU1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0
YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2Rl
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlck9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZUNvbnN0KHt9KTsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbikgfHwgKCRuZXh0LT52YWx1ZSgpID1+IC9eKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5n
fERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxm
bG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJl
YWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmll
cnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkLykpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvck9sZCgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZURpY3Rpb25hcnlPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVk
QXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25h
cnlNZW1iZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHx8ICgkbmV4dC0+dmFsdWUoKSA9fiAvXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRl
fGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1
ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJC8pKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxs
b3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tl
bigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VEZWZhdWx0KCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uT2xkCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgbXkg
JGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZXhjZXB0aW9uIik7CisgICAgICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0Vt
cHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNF
eGNlcHRpb24oMSk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxm
LT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0g
JHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAjJHNlbGYtPnBhcnNlRXhj
ZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRl
eGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRh
dGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9k
ZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFbnVtT2xkCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiZW51bSIpOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUo
JHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFy
c2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvck9sZAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlU2VyaWFsaXplcih7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvXihz
dGF0aWN8c3RyaW5naWZpZXIpJC8pIHsKKyAgICAgICAgbXkgJHF1YWxpZmllciA9ICRzZWxmLT5w
YXJzZVF1YWxpZmllcigpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVPck9wZXJhdGlvblJlc3RPbGQoKTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9k
ZSkgJiYgJHF1YWxpZmllciBlcSAic3RhdGljIikgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5p
c1N0YXRpYygxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oYXR0cmlidXRlfGluaGVyaXR8cmVhZG9ubHkp
JC8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9sZCgpOworICAgIH0K
KyAgICBpZiAoKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB8fCAoJG5leHQtPnZh
bHVlKCkgPX4gL14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRl
fGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGludHxsZWdhY3ljYWxsZXJ8bG9u
Z3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25l
ZHx2b2lkKSQvKSkgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVy
YXRvcih7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25S
ZXN0T2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gL14oYXR0cmlidXRlfHJlYWRv
bmx5KSQvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgfHwg
KCRuZXh0LT52YWx1ZSgpID1+IC9eKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJv
b2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNo
b3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQvKSkgeworICAgICAgICBteSAkcmV0dXJu
VHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0g
JHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCh7fSk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0
YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJu
VHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VBdHRyaWJ1dGVPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvXihhdHRyaWJ1dGV8aW5oZXJpdHxyZWFkb25seSkkLykgeworICAgICAgICAkc2VsZi0+cGFy
c2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xk
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlUmVzdE9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC9eKGF0dHJpYnV0ZXxyZWFkb25seSkkLykgeworICAgICAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7CisgICAgICAgIGlmICgkc2Vs
Zi0+cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJl
YWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIpOworICAgICAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0QWxsb3dFbXB0eSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9t
U2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2Vs
Zi0+cGFyc2VUeXBlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9r
ZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5u
YW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VH
ZXQoKTsKKyAgICAgICAgaWYgKGRlZmluZWQgJGdldFJlZikgeworICAgICAgICAgICAgcHVzaChA
eyRuZXdEYXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlZi0+eyJnZXRyYWlzZXMi
fX0pOworICAgICAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30s
IEB7JGdldFJlZi0+eyJzZXRyYWlzZXMifX0pOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm4g
JG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUluCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluIik7CisgICAgICAgIHJldHVybiAiaW4iOworICAgIH0K
KyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsU2VtaWNvbG9uCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgIH0KK30KKworc3ViIGFwcGx5TWVt
YmVyTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRtZW1iZXJzID0g
c2hpZnQ7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JG1lbWJlcnN9KSB7CisgICAgICAgIGlmIChy
ZWYoJGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQor
ICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBw
dXNoKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0Owor
ICAgICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAg
ICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAg
ICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1YiBhcHBseUV4dGVuZGVkQXR0cmli
dXRlTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIGlmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QtPnsiQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcg
ZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNp
Z25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0
cnVjdG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5v
ZGUtPnBhcmFtZXRlcnN9LCBAeyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3Ii
fX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0gPSAi
VkFMVUVfSVNfTUlTU0lORyI7CisgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0Rh
dGFOb2RlKTsKKyAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsi
TmFtZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21G
dW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0
dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiTmFtZWRDb25z
dHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBteSAlYXR0cmlidXRlcyA9
ICV7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn19OworICAgICAg
ICBteSBAYXR0cmlidXRlS2V5cyA9IGtleXMgKCVhdHRyaWJ1dGVzKTsKKyAgICAgICAgbXkgJGNv
bnN0cnVjdG9yTmFtZSA9ICRhdHRyaWJ1dGVLZXlzWzBdOworICAgICAgICBwdXNoKEB7JG5ld0Rh
dGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskYXR0cmlidXRlc3skY29uc3RydWN0b3JOYW1lfX0pOwor
ICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSA9ICRj
b25zdHJ1Y3Rvck5hbWU7CisgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFO
b2RlKTsKKyAgICB9CisgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7Cit9CisKKzE7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCmluZGV4IGE5M2Y5
NjhlNGZhOWZjYWNmNDc4NDZmMjFhZjE4ZDcwM2IwYWQ1OGEuLjlkNGMzZTQyYjQ1YTg1MGI3MGU5
YTM2ZmJkMDYyNTRlN2Q0Y2M2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApAQCAtMTUzLDIwICsx
NTMsMjAgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRVbnNpZ25lZFNob3J0QXR0cih1bnNpZ25l
ZCBzaG9ydCBuZXdVbnNpZ25lZFNob3J0QXR0cikKICAgICBpbXBsKCktPnNldFVuc2lnbmVkU2hv
cnRBdHRyKG5ld1Vuc2lnbmVkU2hvcnRBdHRyKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RP
Ymo6OkF0dHIoKSBjb25zdAoraW50IFdlYkRPTVRlc3RPYmo6OmxvbmdBdHRyKCkgY29uc3QKIHsK
ICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gaW1wbCgp
LT5hdHRyKCk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ0F0dHIoKTsKIH0KIAotdm9pZCBXZWJE
T01UZXN0T2JqOjpzZXRBdHRyKGxvbmcgbG9uZyBuZXdBdHRyKQordm9pZCBXZWJET01UZXN0T2Jq
OjpzZXRMb25nQXR0cihpbnQgbmV3TG9uZ0F0dHIpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+c2V0QXR0cihuZXdBdHRyKTsKKyAgICBpbXBsKCkt
PnNldExvbmdBdHRyKG5ld0xvbmdBdHRyKTsKIH0KIAogbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6
OmxvbmdMb25nQXR0cigpIGNvbnN0CkBAIC00MjUsOSArNDI1LDcgQEAgdm9pZCBXZWJET01UZXN0
T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihpbnQgbmV3QXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24pCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJET01SYWlzZUVy
cm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAgaW1wbCgpLT5z
ZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9
CiAKIGludCBXZWJET01UZXN0T2JqOjphdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBA
IC00NjQsOSArNDYyLDcgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihjb25zdCBXZWJET01TdHJpbmcmIG5ld1N0cmkKICAgICBpZiAoIWltcGwo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3RhdGlj
X2Nhc3Q8V2ViRE9NRXhjZXB0aW9uQ29kZT4oZWMpKTsKKyAgICBpbXBsKCktPnNldFN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsK
IH0KIAogV2ViRE9NU3RyaW5nIFdlYkRPTVRlc3RPYmo6OnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKCkgY29uc3QKQEAgLTY2MSwyOCArNjU3LDI4IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6
dm9pZE1ldGhvZCgpCiAgICAgaW1wbCgpLT52b2lkTWV0aG9kKCk7CiB9CiAKLXZvaWQgV2ViRE9N
VGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0
cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCit2b2lkIFdlYkRPTVRl
c3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5n
JiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJn
LCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKKyAgICBpbXBsKCktPnZvaWRNZXRob2RXaXRo
QXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKIH0KIAotbG9uZyBsb25n
IFdlYkRPTVRlc3RPYmo6Ok1ldGhvZCgpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZCgp
CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGlt
cGwoKS0+bWV0aG9kKCk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZCgpOwogfQogCi1s
b25nIGxvbmcgV2ViRE9NVGVzdE9iajo6TWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29u
c3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKK2lu
dCBXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdl
YkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGltcGwoKS0+bWV0
aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKKyAgICByZXR1cm4g
aW1wbCgpLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2Jq
QXJnKSk7CiB9CiAKIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9kKCkKQEAg
LTY5MywxMiArNjg5LDEyIEBAIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9k
KCkKICAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5vYmpNZXRob2QoKSkp
OwogfQogCi1XZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZFdpdGhBcmdzKGxv
bmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0
T2JqJiBvYmpBcmcpCitXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZFdpdGhB
cmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9N
VGVzdE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gV2Vi
RE9NVGVzdE9iaigpOwogCi0gICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+
b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOworICAg
IHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpKSk7CiB9CiAKIFdlYkRPTVRlc3RPYmog
V2ViRE9NVGVzdE9iajo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhjb25zdCBX
ZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQpAQCAtODg2
LDQ0ICs4ODIsNDQgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpvdmVybG9hZGVkTWV0aG9kMShjb25z
dCBXZWJET01TdHJpbmcmIHR5cGUpCiAKICNlbmRpZgogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNv
bnZlcnQxKGNvbnN0IFdlYkRPTWEmICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDEoY29u
c3QgV2ViRE9NYSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGltcGwoKS0+Y29udmVydDEodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVy
dDEodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDIo
Y29uc3QgV2ViRE9NYiYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0Mihjb25zdCBXZWJE
T01iJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aW1wbCgpLT5jb252ZXJ0Mih0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0Mih0b1dl
YkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0Myhjb25zdCBX
ZWJET01jJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQzKGNvbnN0IFdlYkRPTWMmIHZh
bHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCkt
PmNvbnZlcnQzKHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQzKHRvV2ViQ29yZSh2
YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQm
ICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDQoY29uc3QgV2ViRE9NZCYgdmFsdWUpCiB7
CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVy
dDQodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDQodG9XZWJDb3JlKHZhbHVlKSk7
CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDUoY29uc3QgV2ViRE9NZSYgKQordm9p
ZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NShjb25zdCBXZWJET01lJiB2YWx1ZSkKIHsKICAgICBp
ZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0NSh0b1dl
YkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0NSh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAog
V2ViRE9NU1ZHUG9pbnQgV2ViRE9NVGVzdE9iajo6bXV0YWJsZVBvaW50RnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouaAppbmRleCBiZDM3M2Q4Mzc4ZjNlMzgzZDg5OWI0Zjk1MTc3OTQ5NTdlMjllNGFj
Li5jYWEzNmU5ZDFiMmU3ZTMyZDgwMDVmNDcwMTU3ZGJkMjcwZTdmZWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouaApAQCAtNzcsOCArNzcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG9ydEF0dHIoc2hv
cnQpOwogICAgIHVuc2lnbmVkIHNob3J0IHVuc2lnbmVkU2hvcnRBdHRyKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRVbnNpZ25lZFNob3J0QXR0cih1bnNpZ25lZCBzaG9ydCk7Ci0gICAgbG9uZyBsb25n
IEF0dHIoKSBjb25zdDsKLSAgICB2b2lkIHNldEF0dHIobG9uZyBsb25nKTsKKyAgICBpbnQgbG9u
Z0F0dHIoKSBjb25zdDsKKyAgICB2b2lkIHNldExvbmdBdHRyKGludCk7CiAgICAgbG9uZyBsb25n
IGxvbmdMb25nQXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0TG9uZ0xvbmdBdHRyKGxvbmcgbG9u
Zyk7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkgY29uc3Q7
CkBAIC0xNDUsMTEgKzE0NSwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHJlcGxhY2VhYmxlQXR0cmli
dXRlKCkgY29uc3Q7CiAKICAgICB2b2lkIHZvaWRNZXRob2QoKTsKLSAgICB2b2lkIHZvaWRNZXRo
b2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29u
c3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKLSAgICBsb25nIGxvbmcgTWV0aG9kKCk7Ci0gICAg
bG9uZyBsb25nIE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmlu
ZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIHZvaWQgdm9pZE1l
dGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29u
c3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKKyAgICBpbnQgbG9uZ01ldGhvZCgpOworICAgIGlu
dCBsb25nTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3Ry
QXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RPYmogb2Jq
TWV0aG9kKCk7Ci0gICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcg
QXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2Jq
QXJnKTsKKyAgICBXZWJET01UZXN0T2JqIG9iak1ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBj
b25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsK
ICAgICBXZWJET01UZXN0T2JqIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoY29u
c3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CiAg
ICAgdm9pZCBzZXJpYWxpemVkVmFsdWUoY29uc3QgV2ViRE9NU3RyaW5nJiBzZXJpYWxpemVkQXJn
KTsKICAgICB2b2lkIGlkYktleShjb25zdCBXZWJET01JREJLZXkmIGtleSk7CkBAIC0xODAsMTEg
KzE4MCwxMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAgICAgdm9pZCBvdmVy
bG9hZGVkTWV0aG9kMShjb25zdCBXZWJET01TdHJpbmcmIHR5cGUpOwogI2VuZGlmCi0gICAgdm9p
ZCBjb252ZXJ0MShjb25zdCBXZWJET01hJiApOwotICAgIHZvaWQgY29udmVydDIoY29uc3QgV2Vi
RE9NYiYgKTsKLSAgICB2b2lkIGNvbnZlcnQzKGNvbnN0IFdlYkRPTWMmICk7Ci0gICAgdm9pZCBj
b252ZXJ0NChjb25zdCBXZWJET01kJiApOwotICAgIHZvaWQgY29udmVydDUoY29uc3QgV2ViRE9N
ZSYgKTsKKyAgICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKTsKKyAgICB2b2lk
IGNvbnZlcnQyKGNvbnN0IFdlYkRPTWImIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQzKGNvbnN0
IFdlYkRPTWMmIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQmIHZhbHVl
KTsKKyAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmIHZhbHVlKTsKICAgICBXZWJET01T
VkdQb2ludCBtdXRhYmxlUG9pbnRGdW5jdGlvbigpOwogICAgIFdlYkRPTVNWR1BvaW50IGltbXV0
YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICB2b2lkIGJhbmFuYSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T2JqLmNwcAppbmRleCA1ZTJiZGU0YTA0NzJiNjNmYmM1M2QzMDIxMDIyYjFlZDU5
YTZkZGM2Li4xNTUzNWMxMDA0ZTBjYTQ0NzQ2MjQ0Y2ExYjRkNDYyZDhlNmIwNzRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIGVudW0gewog
ICAgIFBST1BfUkVBRF9PTkxZX1RFU1RfT0JKX0FUVFIsCiAgICAgUFJPUF9TSE9SVF9BVFRSLAog
ICAgIFBST1BfVU5TSUdORURfU0hPUlRfQVRUUiwKLSAgICBQUk9QX0FUVFIsCisgICAgUFJPUF9M
T05HX0FUVFIsCiAgICAgUFJPUF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX0xP
TkdfTE9OR19BVFRSLAogICAgIFBST1BfU1RSSU5HX0FUVFIsCkBAIC0xNzcsNiArMTc3LDEwIEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgY29yZVNlbGYtPnNldFVuc2lnbmVkU2hv
cnRBdHRyKChnX3ZhbHVlX2dldF91aW50KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9
CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAgICAgICBjb3JlU2VsZi0+c2V0TG9uZ0F0
dHIoKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAg
ICBjYXNlIFBST1BfVU5TSUdORURfTE9OR19MT05HX0FUVFI6IHsKICAgICAgICAgY29yZVNlbGYt
PnNldFVuc2lnbmVkTG9uZ0xvbmdBdHRyKChnX3ZhbHVlX2dldF91aW50NjQodmFsdWUpKSk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMjI2LDggKzIzMCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfR0VUVEVSX0VY
Q0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAg
ICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25n
KHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAg
ICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0yMzYsOCArMjM5
LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAgICAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNldFN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dl
dF9zdHJpbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3JlU2VsZi0+c2V0U3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmlu
Zyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdf
QVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046IHsKQEAgLTMyNyw4ICszMjksOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQodmFsdWUsIGNvcmVTZWxm
LT51bnNpZ25lZFNob3J0QXR0cigpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2Ug
UFJPUF9BVFRSOiB7Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludDY0KHZhbHVlLCBjb3JlU2VsZi0+
YXR0cigpKTsKKyAgICBjYXNlIFBST1BfTE9OR19BVFRSOiB7CisgICAgICAgIGdfdmFsdWVfc2V0
X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5sb25nQXR0cigpKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgUFJPUF9MT05HX0xPTkdfQVRUUjogewpAQCAtNTg2LDEyICs1ODgsMTIgQEAg
R19NQVhVSU5ULCAvKiBtYXggKi8KIDAsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENs
YXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BVFRSLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludDY0KCJhdHRy
IiwgLyogbmFtZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWFkLXdyaXRlICBnaW50NjQgVGVzdE9iai5hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQg
ZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOSU5UNjQsIC8qIG1p
biAqLwotR19NQVhJTlQ2NCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUk9QX0xPTkdfQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19sb25nKCJsb25nLWF0dHIiLCAvKiBuYW1lICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29i
al9sb25nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2xv
bmcgVGVzdE9iai5sb25nLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0
cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywg
LyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsK
ICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKQEAgLTkx
Nyw3ICs5MTksNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYpCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFy
KiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK3dlYmtpdF9kb21fdGVzdF9vYmpf
dm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdB
cmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKQEAgLTkzMCwyMSArOTMyLDIxIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9p
ZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNv
CiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAg
ICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZE9iakFyZyk7CiAgICAgfQotICAgIGl0ZW0tPnZv
aWRNZXRob2RXaXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsK
KyAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVydGVkU3RyQXJnLCBj
b252ZXJ0ZWRPYmpBcmcpOwogfQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9k
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9sb25n
X21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
ICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdp
bnQ2NCByZXN1bHQgPSBpdGVtLT5NZXRob2QoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5s
b25nTWV0aG9kKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9t
X3Rlc3Rfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0
IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQorZ2xv
bmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05NTcsNyArOTU5
LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGcKICAgICAgICAgY29udmVydGVkT2JqQXJnID0g
V2ViS2l0Ojpjb3JlKG9iakFyZyk7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZl
cnRlZE9iakFyZywgMCk7CiAgICAgfQotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5NZXRob2RX
aXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKKyAgICBnbG9u
ZyByZXN1bHQgPSBpdGVtLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVydGVkU3Ry
QXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTk3Myw3
ICs5NzUsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZikKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29u
c3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQord2Via2l0X2RvbV90
ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9u
ZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTg2LDcgKzk4OCw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2lu
dDY0IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpB
cmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwog
ICAgIH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6
Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBjb252
ZXJ0ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3Vs
dCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRl
ZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogcmVzdWx0
ID0gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KQEAgLTEzMzAsNzggKzEzMzIsNzggQEAgd2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVk
X21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIH0KIAog
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01hKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
c2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdl
YkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewot
ICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZf
ZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNv
cmU6OmEqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29u
dmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9m
YWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDEoY29udmVydGVk
KTsKKyAgICBpdGVtLT5jb252ZXJ0MShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
YiogKQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01iKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0
T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsK
LSAgICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29u
dmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVy
dGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpiKiBjb252
ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVl
ID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0
ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZCk7CisgICAgaXRl
bS0+Y29udmVydDIoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rf
b2JqX2NvbnZlcnQzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWMqICkKK3dlYmtp
dF9kb21fdGVzdF9vYmpfY29udmVydDMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
YyogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29y
ZTo6YyogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdl
YktpdDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAg
Z19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6YyogY29udmVydGVkVmFsdWUg
PSAwOworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6
Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwog
ICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0Myhjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQz
KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01kKiApCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqIHZhbHVlKQog
ewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmQqIGNvbnZl
cnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUo
KTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmQqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBp
ZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUp
OworICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAg
aXRlbS0+Y29udmVydDQoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWRW
YWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogKQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
NShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01lKiB2YWx1ZSkKIHsKICAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjplKiBjb252ZXJ0ZWQgPSAwOwot
ICAgIGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAg
IGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVl
KTsKKyAgICBXZWJDb3JlOjplKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7
CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAg
Z19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZl
cnQ1KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDUoY29udmVydGVkVmFsdWUpOwogfQog
CiBXZWJLaXRET01TVkdQb2ludCoKQEAgLTE1MjIsMjMgKzE1MjQsMjMgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
dXNob3J0IHZhbHUKICAgICBpdGVtLT5zZXRVbnNpZ25lZFNob3J0QXR0cih2YWx1ZSk7CiB9CiAK
LWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0
T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVt
LT5hdHRyKCk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ0F0dHIoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSkKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkKIHsKICAgICBn
X3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIGl0ZW0tPnNldEF0dHIodmFsdWUpOworICAgIGl0ZW0tPnNldExvbmdBdHRyKHZhbHVl
KTsKIH0KIAogZ2ludDY0CkBAIC0xODY2LDE3ICsxODY4LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IEdFcnJvCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0
aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQogewogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24odmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNj
LmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24odmFsdWUpOwogfQogCiBnbG9uZwpAQCAtMTkxNSwxOSArMTkxMiwxNCBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZgogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9z
dHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6
VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKICAgICBnX3JldHVybl9pZl9mYWls
KHZhbHVlKTsKICAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOCh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
aXRlbS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29udmVydGVkVmFsdWUsIGVj
KTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVh
cmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsK
LSAgICB9CisgICAgaXRlbS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29udmVy
dGVkVmFsdWUpOwogfQogCiBnY2hhcioKQEAgLTIwMTgsNyArMjAxMCw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9N
VGVzdE9iaiogc2VsCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2Ny
aXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0
RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNl
bGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwMjks
MTIgKzIwMjEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9h
dHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICAgICAgICBjb252ZXJ0ZWRW
YWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29u
dmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFs
dWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5u
YW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKQEAgLTIwNTQsNyArMjA0
MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioq
IGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwNjUsMTIgKzIwNTIsNyBAQCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6
Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwog
ICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwg
ZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3Jp
cHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19x
dWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUp
OwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCkBAIC0yMTE2
LDcgKzIwOTgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRp
b25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogfQogCiB2b2lkCi13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0
X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
VGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVf
cmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQog
ewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwpAQCAtMjEyNywxMiArMjEwOSw3IEBAIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0
cmlidXRlCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAg
ICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUsIGVj
KTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVh
cmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsK
LSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RP
YmoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXggYjhkNTdkZTE2YTRhMjA1YjVi
ZjVhZWNjZTE1MTY2ODk5NTIxYWZlMy4uODllNDZmOGU4Njk2OGM4ZDc1ZmQzODVkMTcxMGM5YzQ5
OTY0OTlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtNTgsNyArNTgsNyBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYp
OwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJnczoKICAq
IEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJnOiBBICNnaW50NjQKKyAqIEBsb25n
QXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIKICAqIEBvYmpBcmc6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqCkBAIC02NiwzMCArNjYsMzAgQEAgd2Via2l0X2RvbV90ZXN0X29ial92
b2lkX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9N
VGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9h
cmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBz
dHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgotICogd2Via2l0X2RvbV90
ZXN0X29ial9tZXRob2Q6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kOgogICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VC
S0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpOworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9sb25nX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX21ldGhvZF93aXRoX2FyZ3M6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9k
X3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJnOiBBICNn
aW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIKICAqIEBv
YmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VC
S0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJL
aXRET01UZXN0T2JqKiBvYmpBcmcpOworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0
X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcg
bG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsK
IAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Q6CkBAIC0xMDQsNyArMTA0
LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpOwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzOgog
ICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxv
bmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2Vi
S2l0RE9NVGVzdE9iagogICoKQEAgLTExMiw3ICsxMTIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAgKgogKiovCiBXRUJLSVRfQVBJ
IFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9h
cmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJB
cmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9t
ZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNv
bnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgogICog
d2Via2l0X2RvbV90ZXN0X29ial9tZXRob2RfdGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhy
b3dzOgpAQCAtNDAwLDU3ICs0MDAsNTcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVk
X21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIC8qKgog
ICogd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MToKICAqIEBzZWxmOiBBICNXZWJLaXRET01U
ZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRET01hCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWEKICAq
CiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rf
b2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWEqICk7Cit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERP
TWEqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyOgogICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWIKKyAqIEB2YWx1
ZTogQSAjV2ViS2l0RE9NYgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NYiogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NYiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVz
dF9vYmpfY29udmVydDM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAj
V2ViS2l0RE9NYworICogQHZhbHVlOiBBICNXZWJLaXRET01jCiAgKgogICogUmV0dXJuczoKICAq
CiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01jKiApOword2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0MyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01jKiB2YWx1ZSk7CiAKIC8q
KgogICogd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NDoKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRET01kCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWQK
ICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICk7Cit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktp
dERPTWQqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1Ogog
ICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWUKKyAqIEB2
YWx1ZTogQSAjV2ViS2l0RE9NZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJ
IHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NZSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfbXV0YWJsZV9wb2ludF9mdW5jdGlvbjoKQEAgLTU2OSwyNSArNTY5LDI1IEBAIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0
cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHVlKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9u
Z19hdHRyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgog
ICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgotICog
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAdmFsdWU6IEEg
I2dpbnQ2NAorICogQHZhbHVlOiBBICNnbG9uZwogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdf
YXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19sb25nX2F0dHI6CkBAIC05MTksMTMgKzkxOSwxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0
cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagog
ICogQHZhbHVlOiBBICNnbG9uZwotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoK
ICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93
aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUs
IEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoq
CiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoK
QEAgLTk2NCwxMyArOTYzLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnY2hhcgotICogQGVycm9y
OiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3Ip
Oword2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0
aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgog
ICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0
aW9uOgpAQCAtMTA1MSwxMyArMTA0OSwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRo
X3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICog
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNl
czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERP
TVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90
ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0
X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRl
X3JhaXNlczoKQEAgLTEwNzQsMTMgKzEwNzEsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00K
ICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZh
bHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9y
YWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdF
cnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2Vi
S2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRl
OgpAQCAtMTExOCwxMyArMTExNCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICogd2Vi
a2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3Nj
cmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lk
Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVf
YXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2Jq
KiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNlc19hdHRyaWJ1dGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCmluZGV4IGJkNzkwMDY0NjRjYWYzMGU5ZjIxNjM5MWZlZmZiODA4MGRjNWFkMjEu
LjRhYTNkZWEwMjI0NTNmM2Q5MTdhNDFjZWE0NDM2OTE3NmEyYjgxYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBA
IC04NCw3ICs4NCw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJs
ZVZhbHVlc1tdID0KICAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMg
fSwKICAgICB7ICJzaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0QXR0ciksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRT
aG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KXNl
dEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIkF0dHIi
LCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0ciwgTm9JbnRy
aW5zaWMgfSwKKyAgICB7ICJsb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibG9uZ0xv
bmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdB
dHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRK
U1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzdHJp
bmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9i
alN0cmluZ0F0dHIsIE5vSW50cmluc2ljIH0sCkBAIC0yNjIsOCArMjYyLDggQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAg
IHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFW
QVNDUklQVCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInZvaWRNZXRob2Qi
LCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50cHRy
X3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJf
dCkzLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIk1ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1
bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0gICAg
eyAiTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90
KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ01l
dGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCksIChp
bnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdNZXRob2RXaXRoQXJncyIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKSwgKGlu
dHB0cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8
IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5z
aWMgfSwKICAgICB7ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0
aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMg
fSwKICAgICB7ICJtZXRob2RXaXRoU2VxdWVuY2VBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5j
dGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkxLCBOb0ludHJp
bnNpYyB9LApAQCAtNDYwLDEyICs0NjAsMTIgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNo
b3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmEKIH0K
IAogCi1KU1ZhbHVlIGpzVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVz
dE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJl
cihpbXBsLT5hdHRyKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9u
Z0F0dHIoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtOTc4LDEyICs5NzgsMTIgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHUKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQg
c2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRl
c3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
LSAgICBpbXBsLT5zZXRBdHRyKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmFsdWUudG9JbnRlZ2Vy
KGV4ZWMpKSk7CisgICAgaW1wbC0+c2V0TG9uZ0F0dHIodmFsdWUudG9JbnQzMihleGVjKSk7CiB9
CiAKIApAQCAtMTEyNyw5ICsxMTI3LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LAogICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGltcGwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLnRvSW50MzIoZXhlYyks
IGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldEF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLnRvSW50MzIoZXhlYykpOwogfQogCiAKQEAgLTExNDks
OSArMTE0Nyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iCiAgICAgVU5VU0VEX1BBUkFNKGV4
ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlz
T2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odXN0cmluZ1RvU3RyaW5nKHZhbHVlLmlzRW1w
dHkoKSA/IFVTdHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSksIGVj
KTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBV
U3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKIH0KIAogCkBA
IC0xMTk5LDkgKzExOTUsNyBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzTwogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGlt
cGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoodmFs
dWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRX
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgdG9UZXN0T2JqKHZhbHVlKSk7CiB9
CiAKIApAQCAtMTIxMCwxMiArMTIwNCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAg
IFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8
SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0
PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47
Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMo
c2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAt
MTIzNiwxMiArMTIyOCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YQogICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2Jq
Kj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1w
bC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcyhleGVjLCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQs
IHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTE0MTAsNyArMTQwMCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9k
V2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAz
KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9u
Zz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50
b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5
KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwpAQCAtMTQxOSwxMSAr
MTQwOSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIFRlc3RPYmoqIG9iakFyZyh0
b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMiwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT52b2lkTWV0aG9kV2l0aEFy
Z3MoQXJnLCBzdHJBcmcsIG9iakFyZyk7CisgICAgaW1wbC0+dm9pZE1ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEV4ZWNTdGF0
ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUo
KTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAt
MTQzMiwxMSArMTQyMiwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKICAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwog
Ci0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZCgpKTsKKyAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ01ldGhvZCgpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVj
U3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNW
YWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAtMTQ0Niw3ICsxNDM2LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSoKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8
bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0
cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQp
LmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEs
IERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CkBAIC0x
NDU2LDcgKzE0NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKgogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5tZXRob2RX
aXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGltcGwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFy
ZykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTQ4Myw3
ICsxNDczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBUZXN0T2JqKiBpbXBsID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmco
c3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQz
MihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJn
KHVzdHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpKSk7CkBAIC0xNDkzLDcgKzE0ODMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMs
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLT5vYmpNZXRob2RX
aXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQg
PSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBs
LT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTE1MjQsMTEgKzE1MTQsMTEgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFJldHVybmluZ1NlcXVlbmNlKEUKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8
bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXko
ZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwtPm1ldGhvZFJldHVybmluZ1Nl
cXVlbmNlKEFyZykpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShs
b25nQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0y
MTAzLDEwICsyMDkzLDEwIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDIoCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgfQogCi0gICAgbG9uZyBsb25n
IEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdB
cmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50
b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRl
ZE1ldGhvZChvYmpBcmcsIEFyZyk7CisgICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcs
IGxvbmdBcmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKQEAgLTIxMzcsMTAgKzIxMjcsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNCgKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAg
IGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwt
Pm92ZXJsb2FkZWRNZXRob2QoQXJnKTsKKyAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKGxvbmdB
cmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAg
LTI0NDAsMTAgKzI0MzAsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGEqICh0
b2EoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OworICAgIGEqIHZhbHVlKHRvYShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZl
cnQxKCk7CisgICAgaW1wbC0+Y29udmVydDEodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI0NTcsMTAgKzI0NDcsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQy
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9i
aio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGIqICh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGIqIHZhbHVlKHRvYihNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQyKCk7CisgICAgaW1wbC0+Y29udmVydDIo
dmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
QEAgLTI0NzQsMTAgKzI0NjQsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0
T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGMq
ICh0b2MoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpOworICAgIGMqIHZhbHVlKHRvYyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNv
bnZlcnQzKCk7CisgICAgaW1wbC0+Y29udmVydDModmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI0OTEsMTAgKzI0ODEsMTAgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVz
dE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGQqICh0b2QoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGQqIHZhbHVlKHRvZChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQ0KCk7CisgICAgaW1wbC0+Y29udmVy
dDQodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKQEAgLTI1MDgsMTAgKzI0OTgsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IGUqICh0b2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOworICAgIGUqIHZhbHVlKHRvZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwt
PmNvbnZlcnQ1KCk7CisgICAgaW1wbC0+Y29udmVydDUodmFsdWUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAzYTdlOWNjMjcxZDhi
NTQ3YTg0NTc1M2I2NTBhY2UxOWYyODA0MDMyLi42Mzk5MzIwY2UwYjk1MWZjNzA3Njc5MDI1ZGM2
NTUyODZhYzJmNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0xNTQsOCArMTU0LDggQEAgcHJvdGVjdGVkOgogCiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Wb2lkTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoSlND
OjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0yMjksOCArMjI5
LDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUKIHZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpT
VmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKLUpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBz
ZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oCmluZGV4IDQyZTU0Y2EyZmZjOWQ3Y2M2YWM4ZDZiZTBiMTQyNTRhMDI3MDk5ZDUuLjYx
ZDk3MGMwN2UzMTk2NjdhNzljZjI3OWJiMzQ5ZDFjYWQ3YzI3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAg
LTcyLDggKzcyLDggQEAgZW51bSB7CiAtICh2b2lkKXNldFNob3J0QXR0cjooc2hvcnQpbmV3U2hv
cnRBdHRyOwogLSAodW5zaWduZWQgc2hvcnQpdW5zaWduZWRTaG9ydEF0dHI7CiAtICh2b2lkKXNl
dFVuc2lnbmVkU2hvcnRBdHRyOih1bnNpZ25lZCBzaG9ydCluZXdVbnNpZ25lZFNob3J0QXR0cjsK
LS0gKGxvbmcgbG9uZylBdHRyOwotLSAodm9pZClzZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0cjsK
Ky0gKGludClsb25nQXR0cjsKKy0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdMb25nQXR0cjsK
IC0gKGxvbmcgbG9uZylsb25nTG9uZ0F0dHI7CiAtICh2b2lkKXNldExvbmdMb25nQXR0cjoobG9u
ZyBsb25nKW5ld0xvbmdMb25nQXR0cjsKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1bnNpZ25lZExv
bmdMb25nQXR0cjsKQEAgLTE3MCwxOCArMTcwLDE4IEBAIGVudW0gewogLSAoaW50KXJlcGxhY2Vh
YmxlQXR0cmlidXRlOwogLSAodm9pZClzZXRSZXBsYWNlYWJsZUF0dHJpYnV0ZTooaW50KW5ld1Jl
cGxhY2VhYmxlQXR0cmlidXRlOwogLSAodm9pZCl2b2lkTWV0aG9kOwotLSAodm9pZCl2b2lkTWV0
aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpB
cmc6KERPTVRlc3RPYmogKilvYmpBcmc7Ci0tIChsb25nIGxvbmcpTWV0aG9kOwotLSAobG9uZyBs
b25nKU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFy
Z3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnOworLSAoaW50KWxvbmdNZXRob2Q7CistIChpbnQpbG9uZ01ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2Q7Ci0tIChET01UZXN0T2Jq
ICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistIChET01UZXN0T2JqICopb2JqTWV0
aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJn
OihET01UZXN0T2JqICopb2JqQXJnOwogLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3M6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAq
KW9iakFyZzsKIC0gKHZvaWQpc2VyaWFsaXplZFZhbHVlOihOU1N0cmluZyAqKXNlcmlhbGl6ZWRB
cmc7CiAtICh2b2lkKWlkYktleTooRE9NSURCS2V5ICopa2V5OwogLSAodm9pZClvcHRpb25zT2Jq
ZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihET01EaWN0aW9uYXJ5ICopb29vOwogLSAodm9p
ZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0b21NZXRob2Q7Ci0tICh2b2lkKWN1
c3RvbU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZCljdXN0b21NZXRob2RXaXRo
QXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlw
ZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJP
T0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0
eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZToo
Qk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpAQCAtMjE4LDEx
ICsyMTgsMTEgQEAgZW51bSB7CiAtICh2b2lkKW92ZXJsb2FkZWRNZXRob2QxOihOU1N0cmluZyAq
KXR5cGU7CiAjZW5kaWYKIC0gKERPTVNWR0RvY3VtZW50ICopZ2V0U1ZHRG9jdW1lbnQ7Ci0tICh2
b2lkKWNvbnZlcnQxOihET01hICopOwotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKTsKLS0gKHZv
aWQpY29udmVydDM6KERPTWMgKik7Ci0tICh2b2lkKWNvbnZlcnQ0OihET01kICopOwotLSAodm9p
ZCljb252ZXJ0NTooRE9NZSAqKTsKKy0gKHZvaWQpY29udmVydDE6KERPTWEgKil2YWx1ZTsKKy0g
KHZvaWQpY29udmVydDI6KERPTWIgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDM6KERPTWMgKil2
YWx1ZTsKKy0gKHZvaWQpY29udmVydDQ6KERPTWQgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDU6
KERPTWUgKil2YWx1ZTsKIC0gKERPTVNWR1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb247CiAt
IChET01TVkdQb2ludCAqKWltbXV0YWJsZVBvaW50RnVuY3Rpb247CiAtICh2b2lkKW9yYW5nZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLm1tCmluZGV4IGQwODYxMWNmNjBjOWYxNTNmYzU5YzkzMDc5YjYxZGNlZGU0ZDBh
NDIuLjMzNjRjZjlhNjQ1MDg5MWQyOTdhYWZjYTM0NTFjM2NmYjgxOTFjZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9i
ai5tbQpAQCAtMTQwLDE2ICsxNDAsMTYgQEAKICAgICBJTVBMLT5zZXRVbnNpZ25lZFNob3J0QXR0
cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLS0gKGxvbmcgbG9uZylBdHRyCistIChpbnQp
bG9uZ0F0dHIKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgcmV0dXJuIElNUEwtPmF0dHIoKTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ0F0dHIoKTsKIH0K
IAotLSAodm9pZClzZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0cgorLSAodm9pZClzZXRMb25nQXR0
cjooaW50KW5ld0xvbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIElNUEwtPnNldEF0dHIobmV3QXR0cik7CisgICAgSU1QTC0+c2V0TG9uZ0F0
dHIobmV3TG9uZ0F0dHIpOwogfQogCiAtIChsb25nIGxvbmcpbG9uZ0xvbmdBdHRyCkBAIC0zNDgs
OSArMzQ4LDcgQEAKIC0gKHZvaWQpc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KGludCluZXdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBM
LT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwg
ZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0QXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAt
IChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTM3OSw5ICszNzcsNyBAQAogLSAodm9p
ZClzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjooTlNTdHJpbmcgKiluZXdTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBM
LT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAg
SU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uCkBAIC00NTAsOSArNDQ2LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5z
ZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsK
KyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzCkBAIC00NjksOSArNDYzLDcgQEAK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5l
d1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVj
KTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNl
cyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSk7CiB9
CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlCkBAIC01MDIsOSArNDk0LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6
cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01U
ZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUKQEAgLTcyNSwyMiArNzE1LDIyIEBACiAgICAgSU1QTC0+dm9pZE1ldGhvZCgp
OwogfQogCi0tICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAodm9pZCl2
b2lkTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcg
b2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFy
ZywgY29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
c3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQogCi0tIChsb25nIGxvbmcpTWV0aG9kCistIChpbnQp
bG9uZ01ldGhvZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICByZXR1cm4gSU1QTC0+bWV0aG9kKCk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2Qo
KTsKIH0KIAotLSAobG9uZyBsb25nKU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistIChpbnQp
bG9uZ01ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKilv
YmpNZXRob2QKQEAgLTc0OSwxMCArNzM5LDEwIEBACiAgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0
cihJTVBMLT5vYmpNZXRob2QoKSkpOwogfQogCi0tIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0
aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERP
TVRlc3RPYmogKilvYmpBcmcKKy0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczooaW50
KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilv
YmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFy
ZywgY29yZShvYmpBcmcpKSkpOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2Jq
TWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpKSk7CiB9CiAKIC0g
KERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmlu
ZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKQEAgLTc5NiwxMCArNzg2LDEw
IEBACiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kKCk7CiB9CiAKLS0gKHZvaWQpY3VzdG9tTWV0aG9k
V2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludCls
b25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElN
UEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAg
IElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcp
KTsKIH0KIAogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVu
ZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNh
cHR1cmUKQEAgLTk5MSwzNCArOTgxLDM0IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotLSAo
dm9pZCljb252ZXJ0MTooRE9NYSAqKQorLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKXZhbHVlCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNv
bnZlcnQxKGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVydDEoY29yZSh2YWx1ZSkpOwogfQogCi0t
ICh2b2lkKWNvbnZlcnQyOihET01iICopCistICh2b2lkKWNvbnZlcnQyOihET01iICopdmFsdWUK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+
Y29udmVydDIoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0Mihjb3JlKHZhbHVlKSk7CiB9CiAK
LS0gKHZvaWQpY29udmVydDM6KERPTWMgKikKKy0gKHZvaWQpY29udmVydDM6KERPTWMgKil2YWx1
ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBM
LT5jb252ZXJ0Myhjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQzKGNvcmUodmFsdWUpKTsKIH0K
IAotLSAodm9pZCljb252ZXJ0NDooRE9NZCAqKQorLSAodm9pZCljb252ZXJ0NDooRE9NZCAqKXZh
bHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElN
UEwtPmNvbnZlcnQ0KGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVydDQoY29yZSh2YWx1ZSkpOwog
fQogCi0tICh2b2lkKWNvbnZlcnQ1OihET01lICopCistICh2b2lkKWNvbnZlcnQ1OihET01lICop
dmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
SU1QTC0+Y29udmVydDUoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0NShjb3JlKHZhbHVlKSk7
CiB9CiAKIC0gKERPTVNWR1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBjOGE3YTAy
YTkyM2JkMDQwZTM5NzM5YjFmMDMzODFkM2Q5Mzg0NWVjLi44Y2Y2Y2Y5MDIyOWVlM2ZmYWIzYmRh
N2JkNTk0Zjg5MzEyMjcyODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC01MSw3ICs1MSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAg
ICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOwogCi0g
ICAgICAgIEpTLCBWOAorICAgICAgICAvLyBKUywgVjgKICAgICAgICAgLy8gV0tfdWNmaXJzdCwg
V0tfbGNmaXJzdCBleGNlcHRpb25hbCBjYXNlcy4KICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmog
ICAgICAgICAgICAgICAgICBYTUxPYmpBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAg
ICAgICAgICAgICAgICAgIGNyZWF0ZTsKQEAgLTIyMSwxMSArMjIxLDExIEBAIG1vZHVsZSB0ZXN0
IHsKICAgICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1
bWVudCgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lk
IGNvbnZlcnQxKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIGEpOwotICAgICAg
ICB2b2lkIGNvbnZlcnQyKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0g
Yik7Ci0gICAgICAgIHZvaWQgY29udmVydDMoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
RmFsc2VdIGMpOwotICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBkKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmlu
ZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0
MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBhIHZhbHVlKTsKKyAgICAgICAg
dm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIGIg
dmFsdWUpOworICAgICAgICB2b2lkIGNvbnZlcnQzKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmlu
Z0FzPUZhbHNlXSBjIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NChpbiBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gZCB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVydDUoaW4gW1RyZWF0
TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gZSB2YWx1ZSk7
CiAKICAgICAgICAgYXR0cmlidXRlIFNWR1BvaW50IG11dGFibGVQb2ludDsKICAgICAgICAgYXR0
cmlidXRlIFtJbW11dGFibGVdIFNWR1BvaW50IGltbXV0YWJsZVBvaW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRl
eCA2Njg0N2RmZjM4MjAwNTRkNzFiNGVjZDMwYzc4MGNhMjY2MzlkZjM4Li44Njk2ZjgyZGIwZGM4
ZjM4MjBmZDhiZjlkNmUxZDJkMDFhMWE5MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTYwLDE5ICsxNjAs
MTkgQEAgc3RhdGljIHZvaWQgdW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djgKICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGxvbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLkF0dHIuX2dldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ0F0dHIuX2dl
dCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7Ci0gICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhzdGF0aWNfY2FzdDxkb3VibGU+KGltcC0+
YXR0cigpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdBdHRyKCksIGluZm8uR2V0
SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHZvaWQgQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQorc3RhdGljIHZvaWQgbG9uZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLkF0dHIu
X3NldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ0F0dHIuX3NldCIpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAg
bG9uZyBsb25nIHYgPSB0b0ludDY0KHZhbHVlKTsKLSAgICBpbXAtPnNldEF0dHIoV1RGOjpnZXRQ
dHIodikpOworICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgaW1wLT5zZXRMb25nQXR0
cih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQzMiwxMCArNDMyLDcgQEAgc3RhdGljIHZvaWQg
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCB2ODo6TG8KICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwogICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7Ci0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7
Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9u
KGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ3NCwxMCArNDcxLDcgQEAgc3RhdGljIHZv
aWQgc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouc3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVj
KTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRp
b24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNTY3LDEzICs1NjEsMTAgQEAg
c3RhdGljIHZvaWQgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0
T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAgICBp
ZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElL
RUxZKGVjKSkKLSAgICAgICAgVjhQcm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElz
b2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3Rh
dGUsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAg
ICByZXR1cm47CkBAIC01OTgsMTMgKzU4OSwxMCBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdAog
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXMuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFu
Y2UodmFsdWUpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpD
YXN0KHZhbHVlKSkgOiAwOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0
LCBXVEY6OmdldFB0cih2KSwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4
UHJveHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+
c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4
dCwgV1RGOjpnZXRQdHIodikpOwogICAgIHJldHVybjsKIH0KIApAQCAtNjYyLDE2ICs2NTAsMTMg
QEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIodjgKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3Nl
dCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhU
ZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAw
OwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNj
cmlwdFN0YXRlOjpjdXJyZW50KCk7CiAgICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQgPSBnZXRTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47
Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzKHN0YXRlLCBzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSwgZWMpOwot
ICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2VwdGlvbihl
YywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwg
V1RGOjpnZXRQdHIodikpOwogICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
dGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgIHJl
dHVybjsKQEAgLTEwNjQsMzAgKzEwNDksMzAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9C
TE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9u
Z0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhW
OFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJn
LCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIs
IERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3Ry
QXJnLCBvYmpBcmcpOworICAgIGltcC0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFy
Zywgb2JqQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nTWV0aG9kQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhv
ZCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ01ldGhvZCIpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJu
IHY4OjpOdW1iZXI6Ok5ldyhzdGF0aWNfY2FzdDxkb3VibGU+KGltcC0+TWV0aG9kKCkpKTsKKyAg
ICByZXR1cm4gdjhJbnRlZ2VyKGltcC0+bG9uZ01ldGhvZCgpLCBhcmdzLkdldElzb2xhdGUoKSk7
CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9kV2l0aEFyZ3NDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBsb25nTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouTWV0aG9kV2l0aEFyZ3MiKTsKKyAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0T2JqLmxvbmdNZXRob2RXaXRoQXJncyIpOwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMy
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
ICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6
SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
IDogMCk7Ci0gICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhzdGF0aWNfY2FzdDxkb3VibGU+KGlt
cC0+TWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKKyAgICByZXR1cm4gdjhJ
bnRlZ2VyKGltcC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSwg
YXJncy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9i
ak1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xMTAzLDEwICsx
MDg4LDEwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9kV2l0aEFyZ3ND
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAzKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcs
IHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJn
LCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsK
ICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsK
LSAgICByZXR1cm4gdG9WOChpbXAtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpB
cmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0K
IAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RXaXRoU2VxdWVuY2VBcmdDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMTEyNiw4ICsxMTExLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
cmV0dXJuIHY4QXJyYXkoaW1wLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShBcmcpLCBhcmdzLkdl
dElzb2xhdGUoKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Cisg
ICAgcmV0dXJuIHY4QXJyYXkoaW1wLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShsb25nQXJnKSwg
YXJncy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1l
dGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQpAQCAtMTU0MSw4ICsxNTI2LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBvdmVybG9hZGVkTWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MK
ICAgICAgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZyk7CiAgICAgICAgIHJldHVybiB2
OFVuZGVmaW5lZCgpOwogICAgIH0KLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcs
IHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOwotICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIEFyZyk7CisgICAgRVhD
RVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5vdmVybG9hZGVkTWV0
aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAg
LTE1NjMsOCArMTU0OCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRl
ZE1ldGhvZDRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBs
b25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChBcmcpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+b3ZlcmxvYWRlZE1l
dGhvZChsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc0NSw4
ICsxNzMwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50aW1l
TWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFy
ZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMShBcmcpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+ZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDEobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAg
LTE3NTYsOCArMTc0MSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0
UnVudGltZU1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBs
b25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDIoQXJnKTsK
KyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJs
ZWRBdFJ1bnRpbWVNZXRob2QyKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
fQogCkBAIC0xNzY3LDggKzE3NTIsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVu
YWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudAogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NL
KGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9k
MShBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGlt
cC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QxKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVm
aW5lZCgpOwogfQogCkBAIC0xNzc4LDggKzE3NjMsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IGVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dAogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRQZXJDb250
ZXh0TWV0aG9kMihBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50
MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OworICAgIGltcC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QyKGxvbmdBcmcpOwogICAgIHJldHVy
biB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xODI0LDggKzE4MDksOCBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQ
VElPTl9CTE9DSyhhKiwgLCBWOGE6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhhOjp0b05hdGl2ZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1
bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+Y29udmVydDEoKTsKKyAgICBFWENFUFRJ
T05fQkxPQ0soYSosIHZhbHVlLCBWOGE6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhhOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGltcC0+Y29udmVydDEodmFsdWUpOwogICAg
IHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xODM1LDggKzE4MjAsOCBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFBy
b3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAg
IEVYQ0VQVElPTl9CTE9DSyhiKiwgLCBWOGI6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhiOjp0b05hdGl2ZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+Y29udmVydDIoKTsKKyAgICBF
WENFUFRJT05fQkxPQ0soYiosIHZhbHVlLCBWOGI6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhiOjp0b05hdGl2ZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGltcC0+Y29udmVydDIodmFsdWUp
OwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xODQ2LDggKzE4MzEsOCBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQzQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVy
biBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
OwotICAgIEVYQ0VQVElPTl9CTE9DSyhjKiwgLCBWOGM6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhjOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+Y29udmVydDMoKTsK
KyAgICBFWENFUFRJT05fQkxPQ0soYyosIHZhbHVlLCBWOGM6Okhhc0luc3RhbmNlKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhjOjp0b05h
dGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGltcC0+Y29udmVydDMo
dmFsdWUpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xODU3LDggKzE4NDIs
OCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQ0Q2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhkKiwgLCBWOGQ6Okhhc0luc3RhbmNlKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhkOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+Y29udmVy
dDQoKTsKKyAgICBFWENFUFRJT05fQkxPQ0soZCosIHZhbHVlLCBWOGQ6Okhhc0luc3RhbmNlKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhk
Ojp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGltcC0+Y29u
dmVydDQodmFsdWUpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xODY4LDgg
KzE4NTMsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnZlcnQ1Q2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAg
ICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhlKiwgLCBWOGU6Okhhc0luc3RhbmNl
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8g
VjhlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIGltcC0+
Y29udmVydDUoKTsKKyAgICBFWENFUFRJT05fQkxPQ0soZSosIHZhbHVlLCBWOGU6Okhhc0luc3Rh
bmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
ID8gVjhlOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOworICAgIGlt
cC0+Y29udmVydDUodmFsdWUpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0x
OTM0LDggKzE5MTksOCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBUZXN0T2JqQXR0
cnNbXSA9IHsKICAgICB7InNob3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJB
dHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5h
bDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19j
YXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9w
ZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBB
dHRyaWJ1dGUgJ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7IkF0
dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFs
OjpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdsb25n
QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsibG9uZ0F0dHIiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6
bG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2xv
bmdMb25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsibG9uZ0xv
bmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJHZXR0ZXIsIFRlc3RP
YmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAg
ICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScg
RXh0QXR0cjogJycpCkBAIC0yMDQ2LDcgKzIwMzEsNyBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSBUZXN0T2JqQXR0cnNbXSA9IHsKIAogc3RhdGljIGNvbnN0IEJhdGNoZWRDYWxsYmFj
ayBUZXN0T2JqQ2FsbGJhY2tzW10gPSB7CiAgICAgeyJ2b2lkTWV0aG9kIiwgVGVzdE9ialY4SW50
ZXJuYWw6OnZvaWRNZXRob2RDYWxsYmFja30sCi0gICAgeyJNZXRob2QiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6TWV0aG9kQ2FsbGJhY2t9LAorICAgIHsibG9uZ01ldGhvZCIsIFRlc3RPYmpWOEludGVy
bmFsOjpsb25nTWV0aG9kQ2FsbGJhY2t9LAogICAgIHsib2JqTWV0aG9kIiwgVGVzdE9ialY4SW50
ZXJuYWw6Om9iak1ldGhvZENhbGxiYWNrfSwKICAgICB7Im1ldGhvZFJldHVybmluZ1NlcXVlbmNl
IiwgVGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2t9LAog
ICAgIHsic2VyaWFsaXplZFZhbHVlIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNlcmlhbGl6ZWRWYWx1
ZUNhbGxiYWNrfSwKQEAgLTIxODYsMTEgKzIxNzEsMTEgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVy
c2kKICAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IHZvaWRNZXRob2RXaXRoQXJnc1NpZ25h
dHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCB2b2lkTWV0aG9kV2l0aEFyZ3NBcmdjLCB2
b2lkTWV0aG9kV2l0aEFyZ3NBcmd2KTsKICAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygi
dm9pZE1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4
SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2b2lk
TWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAotICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ01l
dGhvZFdpdGhBcmdzJwotICAgIGNvbnN0IGludCBNZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwotICAg
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IE1ldGhvZFdpdGhBcmdzQXJndltNZXRo
b2RXaXRoQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCB2
ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBs
YXRlKCkgfTsKLSAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IE1ldGhvZFdpdGhBcmdzU2ln
bmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIE1ldGhvZFdpdGhBcmdzQXJnYywgTWV0
aG9kV2l0aEFyZ3NBcmd2KTsKLSAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiTWV0aG9k
V2l0aEFyZ3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5hbDo6
TWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgTWV0aG9kV2l0aEFyZ3NTaWdu
YXR1cmUpKTsKKyAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdsb25nTWV0aG9kV2l0aEFyZ3MnCisg
ICAgY29uc3QgaW50IGxvbmdNZXRob2RXaXRoQXJnc0FyZ2MgPSAzOworICAgIHY4OjpIYW5kbGU8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGxvbmdNZXRob2RXaXRoQXJnc0FyZ3ZbbG9uZ01ldGhvZFdp
dGhBcmdzQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUo
KSB9OworICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbG9uZ01ldGhvZFdpdGhBcmdzU2ln
bmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIGxvbmdNZXRob2RXaXRoQXJnc0FyZ2Ms
IGxvbmdNZXRob2RXaXRoQXJnc0FyZ3YpOworICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3
KCJsb25nTWV0aG9kV2l0aEFyZ3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2Jq
VjhJbnRlcm5hbDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIGxv
bmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSkpOwogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAn
b2JqTWV0aG9kV2l0aEFyZ3MnCiAgICAgY29uc3QgaW50IG9iak1ldGhvZFdpdGhBcmdzQXJnYyA9
IDM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157658</attachid>
            <date>2012-08-10 00:50:44 -0700</date>
            <delta_ts>2012-08-10 01:27:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120810165014.patch</filename>
            <type>text/plain</type>
            <size>180200</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI1NDE2YTcyMTk1N2M4
OTMyYzI5MWJiMDg2YTFmMWUxMjc3ZTE1ZS4uNDc4NjQ3ZGFlZjc5NjMzYWYzYzhmMzYxYWE3NDNm
MDY4MjRmMzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdHJvcyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOC0wOSAgU2ltb24gSGF1
c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1vdmUg
c3VwcG9ydCBmb3IgX19xdF9zZW5kZXJfXyBpbiBRT2JqZWN0IGJyaWRnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNkNmM2YTJiOTFm
OTNiZGVhNWMwMmI3NDk2MWJmYjg5ZDQxLi5jNmFlODhjNzIxZDc0MGZhNzI2ZTA5ZjYyNWUxODU2
YmY0MzVlNjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQpAQCAtMjEsNDUxICsyMSwyMzIxIEBACiAKIHBhY2thZ2UgSURMUGFyc2VyOwogCit1c2Ug
Q2xhc3M6OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAKIHVzZSBJUEM6
Ok9wZW4yOwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAKLXVzZSBjb25z
dGFudCBNT0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgotCi11c2UgY29uc3RhbnQg
TU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25zdGFudCBNT0RF
X0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1P
REVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCi0KLSMgSGVscGVyIHZh
cmlhYmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7Ci0KLW15ICRwYXJzZU1vZGU7Ci1teSAkcHJl
c2VydmVkUGFyc2VNb2RlOwotCi1teSAkYmVRdWlldDsgIyBTaG91bGQgbm90IGRpc3BsYXkgYW55
dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9sZCB0aGUgcmVzdWx0aW5n
ICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBwYXJzZSBvbmx5IGVub3Vn
aCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK3VzZSBjb25zdGFudCBTdHJpbmdUb2tlbiA9PiAw
OwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNlIGNvbnN0YW50IEZsb2F0VG9r
ZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsKK3VzZSBjb25zdGFu
dCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlUb2tlbiA9PiA1OworCitzdHJ1
Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyB0eXBlIG9mIHRva2VuCisgICAgdmFs
dWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4KK30pOworCitzdWIgbmV3IHsKKyAgICBteSAkY2xh
c3MgPSBzaGlmdDsKKworICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4tPm5ldygpOworICAgICRl
bXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRlbXB0eVRva2VuLT52YWx1ZSgiZW1w
dHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBEb2N1bWVudENvbnRlbnQgPT4gIiIs
CisgICAgICAgIEVtcHR5VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIE5leHRUb2tlbiA9
PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgVG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIExp
bmUgPT4gIiIsCisgICAgICAgIExpbmVOdW1iZXIgPT4gMQorICAgIH07CisgICAgcmV0dXJuIGJs
ZXNzICRzZWxmLCAkY2xhc3M7Cit9CiAKLXN1YiBJbml0aWFsaXplR2xvYmFsRGF0YQorc3ViIGFz
c2VydFRva2VuVmFsdWUKIHsKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOwotCi0gICAgJHBh
cnNlTW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgJHByZXNlcnZlZFBhcnNlTW9kZSA9IE1PREVfVU5E
RUY7Ci0KLSAgICAkZG9jdW1lbnQgPSAwOwotICAgICRwYXJlbnRzT25seSA9IDA7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkdmFsdWUgPSBz
aGlmdDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRtc2cgPSAiTmV4dCB0b2tlbiBz
aG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgpIC4gIiBhdCAi
IC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAoJGxpbmUpKSB7CisgICAgICAgICRt
c2cgPSAkbXNnIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnIHVubGVzcyAkdG9rZW4tPnZh
bHVlKCkgZXEgJHZhbHVlOwogfQogCi0jIERlZmF1bHQgQ29uc3RydWN0b3IKLXN1YiBuZXcKK3N1
YiBhc3NlcnRUb2tlblR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKLQotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7Ci0KLSAgICAkYmVR
dWlldCA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hp
ZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNo
b3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4g
JHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cit9CiAKLSAgICBi
bGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJlZmVyZW5jZTsKK3N1YiBh
c3NlcnRVbmV4cGVjdGVkVG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0
b2tlbiA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1zZyA9ICJVbmV4
cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlm
IChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAiIElETFBhcnNlci5w
bToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnOwogfQogCi0jIFJldHVybnMgdGhlIHBh
cnNlZCAnaWRsRG9jdW1lbnQnCiBzdWIgUGFyc2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKICAgICBt
eSAkZGVmaW5lcyA9IHNoaWZ0OwogICAgIG15ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKLSAgICAk
cGFyZW50c09ubHkgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcgdG8gcGFy
c2UgJGZpbGVOYW1lLi4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkgQGRvY3VtZW50
Q29udGVudCA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRwcmVwcm9j
ZXNzb3IpOworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOwogCi0gICAgbXkgJGRhdGFBdmFpbGFi
bGUgPSAwOworICAgIG15IEBsaW5lcyA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRl
ZmluZXMsICRwcmVwcm9jZXNzb3IpOworICAgICRzZWxmLT57TGluZX0gPSAkbGluZXNbMF07Cisg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID0gam9pbignICcsIEBsaW5lcyk7CiAKLSAgICAj
IFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3JlYWNoIChAZG9jdW1lbnRDb250ZW50KSB7
Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2JqZWN0LT5EZXRlcm1pbmVQYXJzZU1vZGUo
JF8pOworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIGV2YWwgeworICAgICAgICBteSAkcmVz
dWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChAZGVmaW5pdGlv
bnMsIEB7JHJlc3VsdH0pOwogCi0gICAgICAgIGlmICgkbmV3UGFyc2VNb2RlIG5lIE1PREVfVU5E
RUYpIHsKLSAgICAgICAgICAgIGlmICgkZGF0YUF2YWlsYWJsZSBlcSAwKSB7Ci0gICAgICAgICAg
ICAgICAgJGRhdGFBdmFpbGFibGUgPSAxOyAjIFN0YXJ0IG5vZGUgYnVpbGRpbmcuLi4KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24o
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpICE9IEVtcHR5VG9rZW4pIHsKKyAgICAgICAgICAg
IGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5kICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgYXQgIiAu
ICRzZWxmLT57TGluZX07CiAgICAgICAgIH0KKyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZp
bGVOYW1lIiBpZiAkQDsKKworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBAZGVm
aW5pdGlvbnM7CisKKyAgICBteSAkZG9jdW1lbnQ7CisgICAgaWYgKCQjZGVmaW5pdGlvbnMgPT0g
MCAmJiByZWYoJGRlZmluaXRpb25zWzBdKSBlcSAiaWRsRG9jdW1lbnQiKSB7CisgICAgICAgICRk
b2N1bWVudCA9ICRkZWZpbml0aW9uc1swXTsKKyAgICB9IGVsc2UgeworICAgICAgICAkZG9jdW1l
bnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1bGUoIiIpOwor
ICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQGRlZmluaXRpb25zKTsKKyAgICB9
CisgICAgICAgIAorICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyByZWYoJGRvY3Vt
ZW50KSBlcSAiaWRsRG9jdW1lbnQiOworCisgICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5h
bWUpOworICAgIHJldHVybiAkZG9jdW1lbnQ7Cit9CisKK3N1YiBuZXh0VG9rZW4KK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e05leHRUb2tlbn07Cit9CisKK3N1
YiBnZXRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNlbGYtPntUb2tlbn0g
PSAkc2VsZi0+e05leHRUb2tlbn07CisgICAgJHNlbGYtPntOZXh0VG9rZW59ID0gJHNlbGYtPmdl
dFRva2VuSW50ZXJuYWwoKTsKKyAgICByZXR1cm4gJHNlbGYtPntUb2tlbn07Cit9CisKK215ICR3
aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuID0gJ15bXHRcblxyIF0qW1xuXHJdJzsKK215ICRmbG9hdFRv
a2VuUGF0dGVybiA9ICdeKC0/KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsr
LV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSknOworbXkgJGludGVnZXJUb2tlblBh
dHRlcm4gPSAnXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKSc7
CitteSAkc3RyaW5nVG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwiXSpcIiknOworbXkgJGlkZW50aWZp
ZXJUb2tlblBhdHRlcm4gPSAnXihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7CitteSAkb3RoZXJU
b2tlblBhdHRlcm4gPSAnXig6OnxcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0pJzsKIAotICAg
ICAgICAjIFVwZGF0ZSBkZXRlY3RlZCBkYXRhIHN0cmVhbSBtb2RlLi4uCi0gICAgICAgIGlmICgk
bmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAgICRwYXJzZU1vZGUgPSAk
bmV3UGFyc2VNb2RlOworc3ViIGdldFRva2VuSW50ZXJuYWwKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworCisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHdoaXRlc3BhY2VU
b2tlblBhdHRlcm4vKSB7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLygk
d2hpdGVzcGFjZVRva2VuUGF0dGVybikvLzsKKyAgICAgICAgbXkgJHNraXBwZWQgPSAkMTsKKyAg
ICAgICAgJHNlbGYtPntMaW5lTnVtYmVyfSsrIHdoaWxlICgkc2tpcHBlZCA9fiAvXG4vZyk7Cisg
ICAgICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gL14oW15cblxyXSspLykgewor
ICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJlcn0gLiAiOiIgLiAk
MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0gPSAiVW5rbm93
biI7CiAgICAgICAgIH0KKyAgICB9CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMv
XihbXHRcblxyIF0rKS8vOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gZXEgIiIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQogCi0gICAgICAg
IHB1c2goQHRlbXBvcmFyeUNvbnRlbnQsICRfKTsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3
KCk7CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0VG9rZW5QYXR0
ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tl
bi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kZmxv
YXRUb2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYg
KCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRlcm4vKSB7Cisg
ICAgICAgICR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVl
KCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGludGVnZXJUb2tl
blBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsKKyAgICAgICAg
JHRva2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7Cisg
ICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tl
bi0+dHlwZShJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAg
ICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJUb2tlblBhdHRl
cm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9j
dW1lbnRDb250ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4t
PnR5cGUoT3RoZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4vLzsKKyAgICAg
ICAgcmV0dXJuICR0b2tlbjsKICAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBh
dCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhp
bmcgcmVtYWluaW5nIHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5E
RUYpIGFuZCAoJCN0ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJv
Y2Vzc1NlY3Rpb24oKTsKK215ICRuZXh0QXR0cmlidXRlT2xkXzEgPSAnXihhdHRyaWJ1dGV8aW5o
ZXJpdHxyZWFkb25seSkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14oaW50fGxvbmd8
c2hvcnR8dW5zaWduZWQpJCc7CitteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxm
bG9hdHx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dFNldEdldFJhaXNlczJfMSA9ICdeKDt8Z2V0
cmFpc2VzfHNldHJhaXNlcykkJzsKK215ICRuZXh0QXJndW1lbnRMaXN0XzEgPSAnXihcKHxCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlu
fGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0
ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dE5vbkFueVR5cGVfMSA9ICdeKGJvb2xlYW58Ynl0ZXxk
b3VibGV8ZmxvYXR8aW50fGxvbmd8b2N0ZXR8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJs
ZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0
fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdp
Zmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0T3B0aW9uYWxJdGVy
YXRvckludGVyZmFjZU9yT2JqZWN0XzEgPSAnXig7fD0pJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9y
T3BlcmF0aW9uT3JJdGVyYXRvcl8xID0gJ14oc3RhdGljfHN0cmluZ2lmaWVyKSQnOworbXkgJG5l
eHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMiA9ICdeKFwofEJ5dGVTdHJpbmd8RE9N
U3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0
fGdldHRlcnxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNldHRl
cnxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0VW5yZXN0cmlj
dGVkRmxvYXRUeXBlXzEgPSAnXihkb3VibGV8ZmxvYXQpJCc7CitteSAkbmV4dEV4dGVuZGVkQXR0
cmlidXRlUmVzdDNfMSA9ICdeKCx8XF0pJCc7CitteSAkbmV4dEV4Y2VwdGlvbkZpZWxkXzEgPSAn
XihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZs
b2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dFR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVl
bmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0U3BlY2lhbHNfMSA9
ICdeKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikkJzsKK215ICRu
ZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxleGNlcHRpb258
aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhjZXB0aW9uTWVtYmVyc18x
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVhbnxieXRlfGNv
bnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8
c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRBdHRyaWJ1dGVSZXN0XzEg
PSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7CitteSAkbmV4dFNpbmdsZVR5cGVfMSA9ICdeKEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9u
Z3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwor
bXkgJG5leHRHZXRfMSA9ICdeKDt8Z2V0cmFpc2VzfGdldHRlcnxzZXRyYWlzZXN8c2V0dGVyKSQn
OworbXkgJG5leHRBcmd1bWVudE5hbWVfMSA9ICdeKGF0dHJpYnV0ZXxjYWxsYmFja3xjb25zdHxj
cmVhdG9yfGRlbGV0ZXJ8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxnZXR0ZXJ8aW1wbGVtZW50
c3xpbmhlcml0fGludGVyZmFjZXxsZWdhY3ljYWxsZXJ8cGFydGlhbHxzZXJpYWxpemVyfHNldHRl
cnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dENv
bnN0VmFsdWVfMSA9ICdeKGZhbHNlfHRydWUpJCc7CitteSAkbmV4dENvbnN0VmFsdWVfMiA9ICde
KC18SW5maW5pdHl8TmFOKSQnOworbXkgJG5leHREZWZpbml0aW9uXzEgPSAnXihjYWxsYmFja3xp
bnRlcmZhY2UpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xID0gJ14oXCh8
Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxp
bnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVk
fHZvaWQpJCc7CitteSAkbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMSA9ICdeKGludHxsb25nfHNo
b3J0KSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNyZWF0b3J8ZGVs
ZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9i
amVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0
aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dERl
ZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0eXxOYU58ZmFsc2V8bnVsbHx0cnVlKSQnOworCitz
dWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGRl
ZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb247CisgICAgICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAg
ICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbnNfMS8pIHsKKyAgICAgICAgICAg
ICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbk9sZCgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZCAo
JGRlZmluaXRpb24pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgJGRlZmluaXRp
b24pOworICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25zOworfQogCi0g
ICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0g
Ci0gICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworc3ViIHBhcnNlRGVmaW5pdGlv
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlv
bl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbCgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0
aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNl
cHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW0oJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VNb2R1bGUKK3N1YiBwYXJzZUNhbGxi
YWNrT3JJbnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2Ui
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZh
Y2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxu
IiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQ2FsbGJhY2tSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLSAg
ICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworc3ViIHBhcnNlSW50
ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRhdGFO
b2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRpbnRlcmZhY2VOYW1l
VG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5v
ZGUtPm5hbWUoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1c2goQHsk
ZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAg
ICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0i
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7
Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJz
KTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgbXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6IGRpZSgiUGFyc2lu
ZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICRkYXRhTm9kZS0+bW9kdWxlKCRt
b2R1bGVOYW1lKTsKK3N1YiBwYXJzZVBhcnRpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHByaW50ICIgIHwt
LS0tPiBNb2R1bGU7IE5BTUUgXCIkbW9kdWxlTmFtZVwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVR
dWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlUGFydGlhbERlZmluaXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
IH0KIAotc3ViIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZVBhcnRpYWxEZWZpbml0
aW9uCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0OwotICAgIG15ICRhdHRycyA9IHNoaWZ0Owor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgaWYgKCEleyRhdHRyc30pIHsKLSAgICAgICAgcmV0dXJuICIiOworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
aW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbEludGVyZmFj
ZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbERp
Y3Rpb25hcnkoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIG15
IEB0ZW1wOwotICAgIHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1ZSkgPSBlYWNoKCV7JGF0dHJz
fSkpIHsKLSAgICAgICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1ZSIpOworc3ViIHBhcnNlUGFy
dGlhbEludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAuICJbIiAu
IGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVycworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJlcnMgPSAoKTsKKwor
ICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyOworCisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2Vs
Zi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRpbnRlcmZhY2VN
ZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8
ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlcnNfMS8pIHsKKyAgICAgICAg
ICAgICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAaW50ZXJm
YWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKIH0KIAotc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVz
CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKIHsKLSAgICBteSAkc3RyID0gc2hpZnQ7Ci0gICAg
JHN0ciA9fiBzL1xbXHMqKC4qKVxzKlxdLyQxL2c7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgbXkgJWF0dHJzID0gKCk7CitzdWIg
cGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQ
YXJzZSBuYW1lCi0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKK3N1YiBw
YXJzZURpY3Rpb25hcnlNZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAg
ICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8
fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAg
ICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCgpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQotICAgICAgICBteSAkbmFtZSA9ICQxOwotICAg
ICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwotCi0gICAgICAgIGlmICgkc3RyID1+IC9e
XHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqPS8vOwotICAgICAgICAgICAgaWYg
KCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAgICMgUGFyc2Ug
Jz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAgIG15ICRjb25z
dHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyooW1x3XGRdKykv
KSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25zdHJ1Y3Rvck5hbWUgPSAkMTsKLSAgICAgICAg
ICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmli
dXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
JHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1
bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVyZSA9ICQxOwotICAgICAgICAgICAgICAgICAg
ICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29uc3RydWN0b3JO
YW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJlfTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6
ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIg
PT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIHZhbHVlICcsJz8KLSAgICAg
ICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXixdKiksPy8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5h
bWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9e
XHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15c
cypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAg
ICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14o
W14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAg
ICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAg
ICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4i
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKiw/Lykgewot
ICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwotICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJD
b25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gIiI7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAiVkFMVUVf
SVNfTUlTU0lORyI7CisgICAgfQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNlRGljdGlvbmFy
eU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGVmYXVsdAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZURlZmF1bHRWYWx1ZSgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBwYXJzZURlZmF1
bHRWYWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbiB8fCAkbmV4
dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZh
dWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0VmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUV4Y2VwdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15
ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXhjZXB0
aW9uTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJGV4Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JGRhdGFOb2RlLT5uYW1lKCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAk
ZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJl
bnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICBteSAkZXhjZXB0
aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBh
cHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7CisgICAgICAgIGFw
cGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
RXhjZXB0aW9uTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG1lbWJl
cnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uTWVtYmVyc18xLykgeworICAgICAg
ICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgICAgICNteSAkbWVtYmVyID0gJHNlbGYt
PnBhcnNlRXhjZXB0aW9uTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAg
ICAgbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICgkbWVtYmVyKSkgeworICAgICAg
ICAgICAgICAgIHB1c2goQG1lbWJlcnMsICRtZW1iZXIpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAgICAgICAgICAg
IGxhc3Q7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30KKworc3Vi
IHBhcnNlSW5oZXJpdGFuY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBwYXJl
bnQgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI6Iik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgcHVzaChAcGFyZW50LCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAg
ICAjIE11bHRpcGxlIGluaGVyaXRhbmNlPworICAgICAgICBwdXNoKEBwYXJlbnQsIEB7JHNlbGYt
PnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBwYXJlbnQ7Cit9CisK
K3N1YiBwYXJzZUVudW0KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIp
OworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJzZUVudW1WYWx1
ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKIH0KIAotc3ViIHBhcnNlUGFyYW1ldGVycworc3ViIHBhcnNlRW51bVZhbHVlcwog
ewotICAgIG15ICRuZXdEYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRtZXRob2RTaWduYXR1cmUg
PSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2VuKTsKKyAg
ICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgIH0KKyAgICByZXR1cm47Cit9CiAK
LSAgICAjIFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMgYnV0IG9ubHkgaWYgdGhlIGNvbW1hCi0g
ICAgIyBpcyBub3Qgd2l0aGluIGF0dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2VkIGhlcmUKLSAg
ICAjIGFzIGJlaW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRpbmcgJ1snLgot
ICAgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9uJ3QgbmVzdC4K
LSAgICBteSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRtZXRob2RTaWduYXR1cmUp
OwotICAgIGZvcmVhY2ggKEBwYXJhbXMpIHsKLSAgICAgICAgbXkgJGxpbmUgPSAkXzsKK3N1YiBw
YXJzZUNhbGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPSIpOworICAgICAgICAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
IAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2Vs
ZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAgICAgbXkgJHBh
cmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRw
YXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUgPSAoZGVmaW5l
ZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwot
ICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6ICIiOwotICAg
ICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJy
b3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZVR5cGVkZWYKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ0eXBlZGVmIik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdCgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBteSAkaXNOdWxsYWJsZSA9
ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNlSW1wbGVtZW50c1N0YXRlbWVudAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW1wbGVtZW50cyIpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlm
aWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkg
JHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRwYXJhbURhdGFO
b2RlLT5kaXJlY3Rpb24oJHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUt
Pm5hbWUoJHBhcmFtTmFtZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCRwYXJhbVR5
cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVzKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VDb25zdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUNvbnN0YW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiY29uc3QiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRzZWxmLT5wYXJz
ZUNvbnN0VHlwZSgpKTsKKyAgICAgICAgbXkgJGNvbnN0TmFtZVRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGNvbnN0TmFtZVRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZVRv
a2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI9Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNlbGYtPnBhcnNl
Q29uc3RWYWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFOb2RlLT5wYXJh
bWV0ZXJzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2RlKTsKK3N1YiBw
YXJzZUNvbnN0VmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDb25z
dFZhbHVlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIpOworICAgICAg
ICByZXR1cm4gIm51bGwiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMi8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0TGl0ZXJhbCgpOworICAgIH0KKyAgICAjIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAiICB8
ICAgfD4gIFBhcmFtOyBUWVBFIFwiJHBhcmFtVHlwZVwiIE5BTUUgXCIkcGFyYW1OYW1lXCIiIC4g
Ci0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAg
IiwgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVR
dWlldDsgICAgICAgICAgCitzdWIgcGFyc2VCb29sZWFuTGl0ZXJhbAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiKTsKKyAgICAgICAgcmV0dXJuICJ0cnVlIjsKICAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIpOworICAgICAgICBy
ZXR1cm4gImZhbHNlIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VJbnRlcmZhY2UKK3N1YiBw
YXJzZUZsb2F0TGl0ZXJhbAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkc2VjdGlvbk5hbWUgPSBzaGlmdDsKLQotICAgIG15ICRk
YXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotCi0gICAgIyBMb29rIGZvciBlbmQt
b2YtaW50ZXJmYWNlIG1hcmsKLSAgICAkZGF0YSA9fiAvfTsvZzsKLSAgICAkZGF0YSA9IHN1YnN0
cigkZGF0YSwgaW5kZXgoJGRhdGEsICRzZWN0aW9uTmFtZSksIHBvcygkZGF0YSkgLSBsZW5ndGgo
JGRhdGEpKTsKLQotICAgICRkYXRhID1+IHMvW1xuXHJdLyAvZzsKLQotICAgICMgQmVnaW5uaW5n
IG9mIHRoZSByZWdleHAgcGFyc2luZyBtYWdpYwotICAgIGlmICgkc2VjdGlvbk5hbWUgZXEgImlu
dGVyZmFjZSIgfHwgJHNlY3Rpb25OYW1lIGVxICJleGNlcHRpb24iKSB7Ci0gICAgICAgIHByaW50
ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIGludGVyZmFjZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0K
LSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAiIjsKLSAgICAgICAgbXkgJGludGVyZmFjZURh
dGEgPSAiIjsKLQotICAgICAgICAjIE1hdGNoIGlkZW50aWZpZXIgb2YgdGhlIGludGVyZmFjZSwg
YW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEgPX4gLyRJRExTdHJ1Y3R1cmU6Omlu
dGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNFeGNlcHRpb24gPSAoZGVmaW5lZCgk
MSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRl
cyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkgJGludGVyZmFj
ZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAgICAgICAgJGludGVyZmFjZURhdGEg
PSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRh
XG4pIikpOwotCi0gICAgICAgICMgRmlsbCBpbiBrbm93biBwYXJ0cyBvZiB0aGUgZG9tQ2xhc3Mg
ZGF0YXN0cnVjdHVyZSBub3cuLi4KLSAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigkaXNF
eGNlcHRpb24pOwotICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5hbWUpOwotICAg
ICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGlu
dGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChkZWZpbmVkICRleHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkgJG5ld0RhdGFO
b2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAg
ICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb25zdHJ1Y3RvciJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
c3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAgICAgICAgICAgICRkYXRhTm9kZS0+
Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmli
dXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifS0+eyJTaWduYXR1cmUifSk7Ci0gICAg
ICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSA9ICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9eyJDb25zdHJ1Y3Rvck5hbWUifTsK
LSAgICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAg
ICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICItIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5pdHkiKTsKKyAg
ICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIkluZmluaXR5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIkluZmluaXR5Iik7CisgICAgICAgIHJldHVybiAiSW5maW5pdHkiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIk5hTiIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJOYU4iKTsKKyAgICAgICAgcmV0dXJu
ICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQog
Ci0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBpbnRlcmZhY2VQ
YXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZvcmVhY2goQGlu
dGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0gICAgICAgICAg
ICAkbGluZSA9fiBzL1xzKi8vZzsKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVy
YXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPnBh
cmVudHM7Ci0gICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlh
bGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZp
ZXIgPSAkc2VsZi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0g
JHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICBpZiAoZGVmaW5lZCgkbmV3RGF0YU5vZGUpICYmICRxdWFsaWZpZXIgZXEg
InN0YXRpYyIpIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoMSk7CiAgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcmV0dXJuIGlmICRwYXJlbnRzT25seTsKK3N1YiBw
YXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXJpYWxpemVyIik7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRpbnRlcmZhY2VEYXRhID1+IHMv
W1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxpdCgvOy8sICRp
bnRlcmZhY2VEYXRhKTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAg
ICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIG5l
eHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgkbGluZSA9fiAvXFdhdHRy
aWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50
ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9u
UmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgcmV0dXJuOworfQogCi0g
ICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMSk7Ci0gICAgICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1
dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMykgPyAkMyA6ICIgIik7IGNob3AoJGF0
dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyk7CitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVy
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJ7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXph
dGlvblBhdHRlcm5NYXAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ9Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBh
dHRlcm5MaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiXSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChk
ZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbiki
KSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUp
ID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgCi0g
ICAgICAgICAgICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3Ig
cmVnZXhwIG1hdGNoaW5nCitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXQiKTsK
KyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0
cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRnZXR0
ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJzZVNlcmlhbGl6
YXRpb25QYXR0ZXJuTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
Z2V0dGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNl
bGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUlk
ZW50aWZpZXJzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuOworfQogCi0g
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnNldHRlclJhaXNlc1NlbGVj
dG9yLzsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyRXhjZXB0aW9uID0gKGRlZmluZWQoJDEp
ID8gJDEgOiAiIik7CitzdWIgcGFyc2VJZGVudGlmaWVycworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgQGlkZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiLCIpOworICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRv
a2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlkZW50cywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAaWRlbnRzOworfQogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3
IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkYXR0
cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygkaXNT
dGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21T
aWduYXR1cmUoKSk7CitzdWIgcGFyc2VRdWFsaWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OwogCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJp
YnV0ZURhdGFOYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
dHlwZSgkYXR0cmlidXRlRGF0YVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGF0
dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcykpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RhdGljIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0YXRpYyIpOworICAg
ICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAic3RyaW5naWZpZXIiKTsKKyAgICAgICAgcmV0dXJuICJzdHJpbmdpZmllciI7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9k
ZS0+YXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRh
Tm9kZSk7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAg
ICAgICAgICAgICAgIHByaW50ICIgIHwgIHw+ICBBdHRyaWJ1dGU7IFNUQVRJQz8gXCIkaXNTdGF0
aWNcIiBUWVBFIFwiJGF0dHJpYnV0ZVR5cGVcIiBEQVRBIE5BTUUgXCIkYXR0cmlidXRlRGF0YU5h
bWVcIiBEQVRBIFRZUEUgXCIkYXR0cmlidXRlRGF0YVR5cGVcIiBHRVQgRVhDRVBUSU9OPyBcIiRn
ZXR0ZXJFeGNlcHRpb25cIiBTRVQgRVhDRVBUSU9OPyBcIiRzZXR0ZXJFeGNlcHRpb25cIiIgLgot
ICAgICAgICAgICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAg
ICAgICAgICAgIiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykg
LiAiXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEv
KSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOwor
ICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAg
ICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAg
ICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgJHNl
dHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRhTm9k
ZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRpb24pOwotICAg
ICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0KC8s
LywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZSAhfiAvXlxz
KigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0XHMrLykgewot
ICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VNZXRob2RT
ZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiOworc3Vi
IHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXh0
ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRob2RF
eHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmlu
ZWQoJDIpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmluZWQoJDMpID8g
JDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAg
ICAgICAgICBteSAkbWV0aG9kTmFtZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5n
IGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhv
ZFNpZ25hdHVyZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291
cmNlOlxuJGxpbmVcbikiKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAg
ICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAg
ICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdl
eHAgbWF0Y2hpbmcKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21B
dHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKKyAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOwor
ICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiYXR0cmlidXRlIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBk
b21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRz
ZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgp
KTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJzZUdldCgpOworICAgICAgICBpZiAo
ZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5nZXR0
ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNlcyJ9fSk7CisgICAgICAgICAgICBw
dXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57InNldHJh
aXNlcyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVy
biAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICRsaW5lID1+
IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJG1l
dGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlSW5oZXJp
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXQiKTsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAgICAgICAgICAg
ICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CitzdWIgcGFyc2VSZWFkT25s
eQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyZWFkb25seSIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyZWFkb25seSIpOwor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAg
ICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMo
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOworc3Vi
IHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgcHJp
bnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkbWV0aG9k
VHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0aG9kRXhjZXB0aW9u
XCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwg
ICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTcGVjaWFsT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEv
KSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOwor
ICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVz
dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9k
ZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBl
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAK
LSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAg
ICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1l
dGhvZEV4Y2VwdGlvbik7CitzdWIgcGFyc2VTcGVjaWFsT3BlcmF0aW9uCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbCgpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICBteSAkcmV0dXJuVHlwZSA9
ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYg
KGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJl
LT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2Rl
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0Rh
dGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZVNwZWNpYWxzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9k
ZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFO
b2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJ
RExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRjb25z
dEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkY29u
c3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5cGUgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJy
b3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiBbXTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5l
dyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29u
c3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGNvbnN0VHlwZSk7
Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29uc3RWYWx1ZSk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VTcGVjaWFs
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICAg
ICAgcmV0dXJuICJnZXR0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNl
dHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJzZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY3JlYXRvciIpOworICAgICAgICByZXR1cm4gImNy
ZWF0b3IiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGVsZXRl
ciIpOworICAgICAgICByZXR1cm4gImRlbGV0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJsZWdhY3ljYWxsZXIiKTsKKyAgICAgICAgcmV0dXJuICJs
ZWdhY3ljYWxsZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlS
ZWYgPSAkZGF0YU5vZGUtPmNvbnN0YW50czsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlS
ZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQRSBc
IiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxu
IiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJh
dG9yIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSXRlcmF0b3JSZXN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfC0tLS0+IEludGVyZmFjZTsgTkFNRSBcIiRpbnRlcmZh
Y2VOYW1lXCIiIC4KLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAg
ICAgICAgICAgICAgICAiLCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4gfC1c
biB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUl0ZXJhdG9yUmVzdAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpdGVyYXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpdGVyYXRvciIpOworICAgICAgICAkc2VsZi0+cGFyc2VPcHRpb25h
bEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAg
ICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBEZXRl
cm1pbmVQYXJzZU1vZGUKK3N1YiBwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVj
dAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsgIAotICAgIG15ICRsaW5lID0gc2hpZnQ7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUv
KSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2lu
dGVyZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lm
ICgkXyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMS8pIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Im9iamVjdCIpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlT3B0
aW9uYWxJdGVyYXRvckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRtb2RlOworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2Vu
KCksIElkZW50aWZpZXJUb2tlbik7CisgICAgfQorICAgIHJldHVybjsKIH0KIAotIyBJbnRlcm5h
bCBoZWxwZXIKLXN1YiBQcm9jZXNzU2VjdGlvbgorc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAogewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9N
T0RVTEUpIHsKLSAgICAgICAgZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZhdGFsIGVy
cm9yIVxuIikgaWYgKCRkb2N1bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlk
bERvY3VtZW50KCk7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVudCk7Ci0g
ICAgfSBlbHNpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VNb2RlIGVx
IE1PREVfRVhDRVBUSU9OKSB7Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNzKCk7Ci0g
ICAgICAgIG15ICRzZWN0aW9uTmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgPyAi
aW50ZXJmYWNlIiA6ICJleGNlcHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJzZUludGVyZmFj
ZSgkbm9kZSwgJHNlY3Rpb25OYW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8gbW9kdWxlIHNw
ZWNpZmllZCEgRmF0YWwgRXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAgICAgICBt
eSAkYXJyYXlSZWYgPSAkZG9jdW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJl
ZiwgJG5vZGUpOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
IGVxICIoIikgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAg
ICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJG5hbWUpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAkbmFtZSk7CisgICAgICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50
TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKSIpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25z
fSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgQHRlbXBvcmFyeUNv
bnRlbnQgPSAiIjsKK3N1YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0K
KyAgICByZXR1cm4gIiI7CiB9CiAKLTE7CitzdWIgcGFyc2VBcmd1bWVudExpc3QKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAg
ICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAg
cHVzaChAYXJndW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgfQorICAg
IHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkg
eworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMs
ICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
bGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1
YiBwYXJzZUFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnRMaXN0XzEvKSB7CisgICAg
ICAgIG15ICRpbiA9ICRzZWxmLT5wYXJzZUluKCk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7
CisgICAgICAgIG15ICRhcmd1bWVudCA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsT3JSZXF1aXJlZEFy
Z3VtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXJndW1lbnQtPmRpcmVj
dGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7CisgICAgJHBhcmFt
RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAib3B0aW9uYWwiKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAi
PyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVt
b3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgor
ICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgk
dHlwZSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50
TmFtZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICByZXR1cm4g
JHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewor
ICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRh
Tm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9e
KC4qKVw/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDEpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUo
MCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlzdHMsIGUuZy4g
Im9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMvXD8vL2c7Cisg
ICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJn
dW1lbnROYW1lKCkpOworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0QXJndW1lbnROYW1lXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VB
cmd1bWVudE5hbWVLZXl3b3JkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVl
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiLi4uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIi4uLiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAg
cmV0dXJuIDA7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkZpZWxkKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0
aW9uRmllbGRfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0
ZSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOwor
ICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOwor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBwYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsK
KyAgICAgICAgbXkgJGF0dHJzID0ge307CisgICAgICAgIG15ICRhdHRyID0gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGUoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0p
IHsKKyAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAg
fQorICAgICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAg
ICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGF0dHJzLT57
JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICByZXR1cm4gJGF0dHJz
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICB3aGlsZSAoMSkgewor
ICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBteSAkYXR0ciA9ICRzZWxmLT5w
YXJzZUV4dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICAgICAgZm9yIG15ICRrZXkgKGtleXMg
JXskYXR0cn0pIHsKKyAgICAgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57JGtl
eX07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7Cit9CisKK3N1YiBwYXJzZUV4dGVu
ZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHRva2VuLT52YWx1ZSgpKTsK
KyAgICB9CisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTcGVjIGRvZXNuJyBhbGxvdyAi
W10iLiBCdXQgV2ViS2l0IHJlcXVpcmVzLgorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAnXScp
IHsKKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVk
QXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7Cisg
ICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgIG15
ICRhdHRycyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiKTsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0g
JHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gJGF0dHJzOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkYXR0cnMtPnsk
bmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7CisgICAgICAgIHJl
dHVybiAkYXR0cnM7CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsK
KyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGF0
dHJzLT57JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAgICByZXR1cm4gJGF0
dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZVJlc3QzKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiKTsKKyAgICAgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRv
a2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAiJiIgLiAkdG9r
ZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAifCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ8Iik7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICRu
YW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIigiKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkYXR0ci0+eyRu
YW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRhdHRy
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xLykgeworICAgICAg
ICBteSBAbmFtZXMgPSAoKTsKKyAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsKKyAgICAgICAg
cHVzaChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOworICAgICAgICBy
ZXR1cm4gam9pbignICcsIEBuYW1lcyk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJZGVudGlmaWVyTGlzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICAgICBwdXNo
KEBuYW1lcywgJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBuYW1lczsK
K30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lS2V5d29yZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Y3JlYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImdldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNl
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJz
dGF0aWMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJlc3RyaWN0
ZWQiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+
cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFR5
cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VTaW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJhbnkiKTsKKyAgICAgICAgcmV0dXJuICJhbnkiIC4gJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBl
XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlVW5pb25UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKCIpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
VW5pb25NZW1iZXJUeXBlcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZVVuaW9uTWVtYmVyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIo
IikgeworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiYW55IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImFueSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8xLykgewor
ICAgICAgICAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlw
ZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgfQorICAg
IHJldHVybjsKK30KKworc3ViIHBhcnNlTm9uQW55VHlwZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJCeXRlU3RyaW5nIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkJ5dGVTdHJpbmciKTsKKyAgICAg
ICAgcmV0dXJuICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9NU3RyaW5nIik7CisgICAg
ICAgIHJldHVybiAiRE9NU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiKTsKKyAgICAg
ICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIpOworICAgICAgICByZXR1cm4gInNlcXVl
bmNlPCIgLiAkdHlwZSAuICI+IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0Iik7CisgICAgICAgIHJldHVybiAib2Jq
ZWN0IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJEYXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIkRhdGUiKTsKKyAgICAgICAgcmV0dXJuICJEYXRlIiAuICRzZWxmLT5w
YXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNl
bGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVByaW1pdGl2ZVR5cGUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzEvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzIvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJvb2xlYW4iKTsKKyAgICAgICAg
cmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJieXRl
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImJ5dGUiKTsKKyAgICAgICAgcmV0dXJuICJieXRlIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJvY3RldCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJvY3RldCIpOworICAgICAgICByZXR1cm4gIm9jdGV0IjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIpOworICAgICAgICBy
ZXR1cm4gInVucmVzdHJpY3RlZCIgLiAkc2VsZi0+cGFyc2VGbG9hdFR5cGUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVucmVzdHJpY3RlZEZsb2F0VHlwZV8xLykg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlRmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZs
b2F0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImZsb2F0Iik7CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJkb3VibGUiKTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUi
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5zaWduZWQiKTsKKyAgICAgICAgcmV0
dXJuICJ1bnNpZ25lZCAiIC4gJHNlbGYtPnBhcnNlSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlSW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2hv
cnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAic2hvcnQiKTsKKyAgICAgICAgcmV0dXJuICJzaG9ydCI7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiaW50IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImludCIpOworICAgICAgICByZXR1cm4gImludCI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIik7CisgICAgICAgIGlmICgkc2Vs
Zi0+cGFyc2VPcHRpb25hbExvbmcoKSkgeworICAgICAgICAgICAgcmV0dXJuICJsb25nIGxvbmci
OworICAgICAgICB9CisgICAgICAgIHJldHVybiAibG9uZyI7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlT3B0aW9uYWxMb25nCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImxvbmci
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
bG9uZyIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1
YiBwYXJzZVR5cGVTdWZmaXgKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJbIik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIp
OworICAgICAgICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAgICAgICAgcmV0dXJuICI/IiAu
ICRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSgpOworICAgIH0KKyAgICBy
ZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJldHVybiAiW10i
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisK
K3N1YiBwYXJzZU51bGwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/Iik7Cisg
ICAgICAgIHJldHVybiAiPyI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNl
UmV0dXJuVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ2b2lkIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInZvaWQiKTsK
KyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxk
XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRz
IikgeworICAgICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0
c0dldHRlcigpOworICAgICAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMTsKKyAgICAgICAgJGF0
dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAk
c2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0R2V0XzEvKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIg
cGFyc2VJbmhlcml0c0dldHRlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhl
cml0cyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJpbmhlcml0cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlU2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
YXR0ciA9IHt9OworICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAwOworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIi
KSB7CisgICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2Vz
KCk7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2Vz
MigpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9IFtdOworICAg
ICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlcygpOworICAg
ICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRTZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXRHZXRS
YWlzZXMyKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2VzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0
ZXIiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsK
KyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlzZXMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZVNldEdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRT
ZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRhdHRy
LT57ImluaGVyaXRzIn0gPSAwOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxm
LT5wYXJzZUdldFJhaXNlczMoKTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAkc2Vs
Zi0+cGFyc2VTZXRSYWlzZXMzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VHZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImdldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJnZXRyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2Vw
dGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlz
ZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHJhaXNlcyIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXRyYWlzZXMi
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15IEBleGNlcHRpb25zID0gKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOwor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHB1c2goQGV4
Y2VwdGlvbnMsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1c2goQGV4Y2VwdGlvbnMsIEB7
JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuIFxAZXhjZXB0aW9u
czsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
RXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZURl
ZmluaXRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0
aW9uXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNl
T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWwoe30pOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VEaWN0aW9uYXJ5T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhj
ZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uT2xkKCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUVudW1PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZih7fSk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50
c1N0YXRlbWVudCh7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTW9kdWxlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgbXkgJGRvY3VtZW50
ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIik7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRkb2N1bWVu
dC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0aW9ucyA9ICRz
ZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHskZG9jdW1lbnQtPmNsYXNz
ZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWxTZW1p
Y29sb24oKTsKKyAgICAgICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIg
cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxs
YmFja1Jlc3RPckludGVyZmFjZSh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlT2xk
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0g
bmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAg
ICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5u
YW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMCk7
CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVy
aXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJ7Iik7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNl
SW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUs
ICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qo
JGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRh
Tm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VDb25zdCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJ
dGVyYXRvck9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlPbGQKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7Cisg
ICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRz
ZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRF
eGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAg
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk9sZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21D
bGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAk
dG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkdG9r
ZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAg
ICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgp
fSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
eyIpOworICAgICAgICBteSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFj
ZU1lbWJlcnMoKTsKKyAgICAgICAgIyRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7Cisg
ICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRW51bU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVu
dW0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0
eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlTGlzdCgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVPck9w
ZXJhdGlvbk9ySXRlcmF0b3JPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2Vy
aWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoe30pOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZpZXIgPSAkc2VsZi0+cGFyc2VR
dWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0T2xkKCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpICYm
ICRxdWFsaWZpZXIgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+aXNTdGF0
aWMoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRy
aWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZU9wZXJhdGlvbk9ySXRlcmF0b3Ioe30pOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0
dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZVJlc3RPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJu
VHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0
KHt9KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRk
YXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZU9s
ZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykg
eworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmli
dXRlUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0
ZVJlc3RfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgp
OworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5l
d0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0K
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRy
aWJ1dGUiKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJz
ZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0
UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsK
KyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRn
ZXRSZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUt
PnNldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAg
fQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VJbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbiIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbiIpOworICAgICAgICBy
ZXR1cm4gImluIjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VPcHRpb25h
bFNlbWljb2xvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICB9
Cit9CisKK3N1YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KyAgICBteSAkbWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVtIChAeyRtZW1iZXJz
fSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikgeworICAgICAg
ICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAgICAgICAgICAg
IG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUNvbnN0YW50
IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwgJGl0ZW0pOwor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorfQorCitzdWIg
YXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBpZiAoZGVmaW5l
ZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+
eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAkZGF0YU5vZGUt
PmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3
RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgbXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25z
dHJ1Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICglYXR0cmlidXRl
cyk7CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5c1swXTsKKyAg
ICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJpYnV0ZXN7JGNv
bnN0cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1l
ZENvbnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0YU5vZGUtPmNv
bnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisxOworCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0
T2JqLmNwcAppbmRleCBhOTNmOTY4ZTRmYTlmY2FjZjQ3ODQ2ZjIxYWYxOGQ3MDNiMGFkNThhLi45
ZDRjM2U0MmI0NWE4NTBiNzBlOWEzNmZiZDA2MjU0ZTdkNGNjNjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5jcHAKQEAgLTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VW5zaWdu
ZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIpCiAgICAgaW1w
bCgpLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLWxv
bmcgbG9uZyBXZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01UZXN0T2JqOjps
b25nQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgcmV0dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdBdHRy
KCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcgbmV3QXR0cikK
K3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRyKQogewogICAg
IGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNldEF0dHIobmV3
QXR0cik7CisgICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIGxvbmcg
bG9uZyBXZWJET01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1LDkgKzQyNSw3
IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50IG5l
d0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNl
dEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7
Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihl
YykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6
c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdT
dHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJE
T01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAg
aW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzdHJp
bmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NjEsMjggKzY1NywyOCBAQCB2
b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9pZE1ldGhvZCgp
OwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxvbmcg
QXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2Jq
QXJnKQordm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcs
IGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcp
CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+dm9p
ZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAgaW1w
bCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50IFdlYkRPTVRl
c3RPYmo6OmxvbmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBpbXBsKCktPmxv
bmdNZXRob2QoKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZFdpdGhBcmdz
KGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdpdGhBcmdzKGlu
dCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9i
aiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiBpbXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2Jq
QXJnKSk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0
ckFyZywgdG9XZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RP
Ymo6Om9iak1ldGhvZCgpCkBAIC02OTMsMTIgKzY4OSwxMiBAQCBXZWJET01UZXN0T2JqIFdlYkRP
TVRlc3RPYmo6Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGlt
cGwoKS0+b2JqTWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpv
YmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFy
ZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0
T2JqOjpvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBz
dHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkK
ICAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0b1dlYktpdChX
VEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNv
cmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5v
YmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOwog
fQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RP
YmomIG9iakFyZykKQEAgLTg4Niw0NCArODgyLDQ0IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6b3Zl
cmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQogCiAjZW5kaWYKIAotdm9p
ZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiApCit2b2lkIFdlYkRPTVRl
c3RPYmo6OmNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSgpKTsK
KyAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6
Y29udmVydDIoY29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKCkpOworICAgIGlt
cGwoKS0+Y29udmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9i
ajo6Y29udmVydDMoY29uc3QgV2ViRE9NYyYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0
Myhjb25zdCBXZWJET01jJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0Myh0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5j
b252ZXJ0Myh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252
ZXJ0NChjb25zdCBXZWJET01kJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KGNvbnN0
IFdlYkRPTWQmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpbXBsKCktPmNvbnZlcnQ0KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQ0
KHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ1KGNv
bnN0IFdlYkRPTWUmICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDUoY29uc3QgV2ViRE9N
ZSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlt
cGwoKS0+Y29udmVydDUodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDUodG9XZWJD
b3JlKHZhbHVlKSk7CiB9CiAKIFdlYkRPTVNWR1BvaW50IFdlYkRPTVRlc3RPYmo6Om11dGFibGVQ
b2ludEZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggYmQzNzNkODM3OGYzZTM4M2Q4OTli
NGY5NTE3Nzk0OTU3ZTI5ZTRhYy4uY2FhMzZlOWQxYjJlN2UzMmQ4MDA1ZjQ3MDE1N2RiZDI3MGU3
ZmVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvcnRBdHRyKHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0
QXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hv
cnQpOwotICAgIGxvbmcgbG9uZyBBdHRyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBdHRyKGxvbmcg
bG9uZyk7CisgICAgaW50IGxvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRMb25nQXR0cihp
bnQpOwogICAgIGxvbmcgbG9uZyBsb25nTG9uZ0F0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldExv
bmdMb25nQXR0cihsb25nIGxvbmcpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bnNpZ25lZExv
bmdMb25nQXR0cigpIGNvbnN0OwpAQCAtMTQ1LDExICsxNDUsMTEgQEAgcHVibGljOgogICAgIGlu
dCByZXBsYWNlYWJsZUF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCB2b2lkTWV0aG9kKCk7
Ci0gICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Ci0gICAgbG9uZyBs
b25nIE1ldGhvZCgpOwotICAgIGxvbmcgbG9uZyBNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJn
LCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJn
KTsKKyAgICB2b2lkIHZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgaW50IGxv
bmdNZXRob2QoKTsKKyAgICBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25z
dCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAg
ICBXZWJET01UZXN0T2JqIG9iak1ldGhvZCgpOwotICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0
IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRo
QXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRPTVN0
cmluZyYgc2VyaWFsaXplZEFyZyk7CiAgICAgdm9pZCBpZGJLZXkoY29uc3QgV2ViRE9NSURCS2V5
JiBrZXkpOwpAQCAtMTgwLDExICsxODAsMTEgQEAgcHVibGljOgogI2lmIEVOQUJMRShDb25kaXRp
b24xKQogICAgIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBl
KTsKICNlbmRpZgotICAgIHZvaWQgY29udmVydDEoY29uc3QgV2ViRE9NYSYgKTsKLSAgICB2b2lk
IGNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICk7Ci0gICAgdm9pZCBjb252ZXJ0Myhjb25zdCBXZWJE
T01jJiApOwotICAgIHZvaWQgY29udmVydDQoY29uc3QgV2ViRE9NZCYgKTsKLSAgICB2b2lkIGNv
bnZlcnQ1KGNvbnN0IFdlYkRPTWUmICk7CisgICAgdm9pZCBjb252ZXJ0MShjb25zdCBXZWJET01h
JiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJET01iJiB2YWx1ZSk7CisgICAg
dm9pZCBjb252ZXJ0Myhjb25zdCBXZWJET01jJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChj
b25zdCBXZWJET01kJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2
YWx1ZSk7CiAgICAgV2ViRE9NU1ZHUG9pbnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBX
ZWJET01TVkdQb2ludCBpbW11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggNWUyYmRlNGEwNDcyYjYz
ZmJjNTNkMzAyMTAyMmIxZWQ1OWE2ZGRjNi4uMTU1MzVjMTAwNGUwY2E0NDc0NjI0NGNhMWI0ZDQ2
MmQ4ZTZiMDc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNSw3
ICsxMDUsNyBAQCBlbnVtIHsKICAgICBQUk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAg
IFBST1BfU0hPUlRfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJP
UF9BVFRSLAorICAgIFBST1BfTE9OR19BVFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAg
ICAgUFJPUF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApA
QCAtMTc3LDYgKzE3NywxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVT
ZWxmLT5zZXRVbnNpZ25lZFNob3J0QXR0cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAg
Y29yZVNlbGYtPnNldExvbmdBdHRyKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7
CiAgICAgICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRf
dWludDY0KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKQEAgLTIyNiw4ICsyMzAsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1Bf
QVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElP
TjogewpAQCAtMjM2LDggKzIzOSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENF
UFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6
ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNl
bGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRG
OChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjcs
OCArMzI5LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91
aW50KHZhbHVlLCBjb3JlU2VsZi0+dW5zaWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICBjYXNlIFBST1BfQVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2
NCh2YWx1ZSwgY29yZVNlbGYtPmF0dHIoKSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogewor
ICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAg
LTU4NiwxMiArNTg4LDEyIEBAIEdfTUFYVUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19pbnQ2NCgiYXR0ciIsIC8qIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBz
aG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIs
IC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX01JTklOVDY0LCAvKiBtaW4gKi8KLUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyog
bmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9vYmpfbG9uZy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291
bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyog
bWluICovCitHX01BWExPTkcsIC8qIG1heCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
b2JqZWN0Q2xhc3MsCkBAIC05MTcsNyArOTE5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lk
X21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50
NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05MzAsMjEgKzkzMiwyMSBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjbwogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNv
cmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwog
ICAgIH0KLSAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcs
IGNvbnZlcnRlZE9iakFyZyk7CisgICAgaXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtp
dF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xv
bmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRl
c3RPYmoqIG9iakFyZykKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dp
dGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hh
ciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpAQCAtOTU3LDcgKzk1OSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAg
IGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVz
dWx0ID0gaXRlbS0+TWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRl
ZE9iakFyZyk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCkBAIC05NzMsNyArOTc1LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9i
akFyZykKK3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0
RE9NVGVzdE9iaiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDAp
OwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTk4Niw3ICs5
ODgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbgogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcg
PSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29u
dmVydGVkT2JqQXJnLCAwKTsKICAgICB9Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIGNv
bnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRl
c3RPYmo+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZykpOwogICAgIFdlYktp
dERPTVRlc3RPYmoqIHJlc3VsdCA9IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzMwLDc4ICsxMzMyLDc4IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogKQord2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSkKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWQg
PSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0g
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHZhbHVlKTsKKyAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZh
bHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAg
ICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0t
PmNvbnZlcnQxKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkVmFsdWUp
OwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWIqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
X3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6YiogY29udmVydGVkID0gMDsKLSAgICBp
ZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3Jl
dHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Cisg
ICAgV2ViQ29yZTo6YiogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAg
ICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0Mihj
b252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01jKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWMqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmMqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmMqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDMoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0Myhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01kKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjpkKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpkKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDQoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICkKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6
ZSogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktp
dDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZSogY29udmVydGVkVmFsdWUgPSAw
OworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29y
ZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAg
IH0KLSAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ1KGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NU1ZHUG9pbnQqCkBAIC0xNTIyLDIzICsxNTI0
LDIzIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Vuc2lnbmVkX3Nob3J0X2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1CiAgICAgaXRlbS0+c2V0VW5zaWduZWRTaG9y
dEF0dHIodmFsdWUpOwogfQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
aW50NjQgcmVzdWx0ID0gaXRlbS0+YXR0cigpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPmxv
bmdBdHRyKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgdmFsdWUpCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xv
bmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zZXRBdHRyKHZhbHVlKTsKKyAgICBpdGVt
LT5zZXRMb25nQXR0cih2YWx1ZSk7CiB9CiAKIGdpbnQ2NApAQCAtMTg2NiwxNyArMTg2OCwxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7
Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwot
ICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJX
RUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0t
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlKTsKIH0KIAogZ2xvbmcKQEAgLTE5MTUs
MTkgKzE5MTIsMTQgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9n
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24o
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CiAgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFs
dWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogZ2NoYXIqCkBAIC0yMDE4LDcgKzIw
MTAsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC0yMDI5LDEyICsyMDIxLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwK
ICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBn
X3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9l
cnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVj
ZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RP
YmoqCkBAIC0yMDU0LDcgKzIwNDEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RP
YmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0y
MDY1LDEyICsyMDUyLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNj
LmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRE
T01UZXN0T2JqKgpAQCAtMjExNiw3ICsyMDk4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUK
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3Jp
cHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIxMjcsMTIgKzIxMDksNyBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktp
dDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUp
OwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwog
fQogCiBXZWJLaXRET01UZXN0T2JqKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4
IGI4ZDU3ZGUxNmE0YTIwNWI1YmY1YWVjY2UxNTE2Njg5OTUyMWFmZTMuLjg5ZTQ2ZjhlODY5Njhj
OGQ3NWZkMzg1ZDE3MTBjOWM0OTk2NDk5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKQEAgLTU4LDcgKzU4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21l
dGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzog
QSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAg
KiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtNjYsMzAgKzY2LDMwIEBAIHdl
YmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAg
KgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFy
KiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25n
QXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAv
KioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kOgorICogd2Via2l0X2RvbV90ZXN0X29i
al9sb25nX21ldGhvZDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9k
b21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgot
ICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzOgorICogd2Via2l0X2RvbV90
ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJB
cmc6IEEgI2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3Qg
Z2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK1dFQktJVF9BUEkgZ2xv
bmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kOgpAQCAtMTA0LDcgKzEwNCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChX
ZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpf
bWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJn
OiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIK
ICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC0xMTIsNyArMTEyLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwog
ICoKICoqLwogV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0T2JqKgotd2Via2l0X2RvbV90ZXN0X29i
al9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0
X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVxdWly
ZXNfYWxsX2FyZ3NfYW5kX3Rocm93czoKQEAgLTQwMCw1NyArNDAwLDU3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDE6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYQorICogQHZhbHVl
OiBBICNXZWJLaXRET01hCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01hKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9jb252ZXJ0MjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNX
ZWJLaXRET01iCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWIKICAqCiAgKiBSZXR1cm5zOgogICoK
ICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2Nv
bnZlcnQyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqIHZhbHVlKTsKIAogLyoq
CiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWMKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYwog
ICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfY29udmVydDMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYyogKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0
RE9NYyogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQ6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NZAorICogQHZh
bHVlOiBBICNXZWJLaXRET01kCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01kKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01kKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90
ZXN0X29ial9jb252ZXJ0NToKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBB
ICNXZWJLaXRET01lCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWUKICAqCiAgKiBSZXR1cm5zOgog
ICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKTsKIAog
LyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX211dGFibGVfcG9pbnRfZnVuY3Rpb246CkBAIC01
NjksMjUgKzU2OSwyNSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Vuc2lnbmVkX3Nob3J0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1
ZSk7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cjoKKyAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2Jq
CiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworV0VCS0lUX0FQSSBn
bG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHI6CisgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQHZhbHVlOiBBICNnaW50NjQKKyAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCiAgKiBS
ZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSk7Cit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFs
dWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfbG9uZ19hdHRyOgpA
QCAtOTE5LDEzICs5MTksMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dl
dHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjZ2xvbmcKLSAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRo
X3NldHRlcl9leGNlcHRpb246CkBAIC05NjQsMTMgKzk2MywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9i
aiogc2VsZgogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhf
Z2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRy
X3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTEwNTEsMTMgKzEwNDksMTIgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRE
T01UZXN0T2JqKiBzZWwKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICog
QHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUp
OwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CkBAIC0xMDc0LDEzICsxMDcxLDEyIEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25f
Y29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERP
TVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2Ny
aXB0X3N0YXRlX2F0dHJpYnV0ZToKQEAgLTExMTgsMTMgKzExMTQsMTIgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0
ZV9hdHRyaWJ1dGUKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAq
IEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAq
Ki8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJv
cik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfd2l0
aF9zcGFjZXNfYXR0cmlidXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBiZDc5MDA2NDY0Y2FmMzBlOWYyMTYz
OTFmZWZmYjgwODBkYzVhZDIxLi40YWEzZGVhMDIyNDUzZjNkOTE3YTQxY2VhNDQzNjkxNzZhMmI4
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAicmVhZE9ubHlUZXN0T2JqQXR0
ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKSwgKGludHB0
cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAic2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
aG9ydEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9
LAogICAgIHsgInVuc2lnbmVkU2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZFNob3J0
QXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciwgTm9JbnRyaW5z
aWMgfSwKLSAgICB7ICJBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9iakF0dHIsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ0F0dHIiLCBEb250RGVsZXRl
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakxvbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakxvbmdBdHRyLCBOb0ludHJpbnNp
YyB9LAogICAgIHsgImxvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0xvbmdBdHRyKSwg
KGludHB0cl90KXNldEpTVGVzdE9iakxvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0
dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIsIE5vSW50cmlu
c2ljIH0sCiAgICAgeyAic3RyaW5nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LApAQCAtMjYyLDgg
KzI2Miw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KICAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwK
ICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidm9pZE1ldGhv
ZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9k
V2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJNZXRob2QiLCBE
b250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZCksIChpbnRwdHJfdCkwLCBO
b0ludHJpbnNpYyB9LAotICAgIHsgIk1ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNp
YyB9LAorICAgIHsgImxvbmdNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25n
TWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm9iak1l
dGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKSwgKGlu
dHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kV2l0aEFyZ3MiLCBEb250
RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKSwgKGludHB0
cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIiwgRG9u
dERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAo
aW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKQEAgLTQ2MCwxMiArNDYwLDEyIEBAIEpTVmFsdWUg
anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBQcm9wZXJ0eU5hCiB9CiAKIAotSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBqc1Rlc3RPYmpM
b25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmpl
Y3Qoc2xvdEJhc2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+YXR0cigpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGltcGwtPmxvbmdBdHRyKCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTk3OCwxMiArOTc4LDEyIEBAIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1CiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaW1wbC0+c2V0QXR0cihzdGF0aWNfY2FzdDxsb25nIGxv
bmc+KHZhbHVlLnRvSW50ZWdlcihleGVjKSkpOworICAgIGltcGwtPnNldExvbmdBdHRyKHZhbHVl
LnRvSW50MzIoZXhlYykpOwogfQogCiAKQEAgLTExMjcsOSArMTEyNyw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iamVjdCwKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2
YWx1ZS50b0ludDMyKGV4ZWMpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMp
KTsKIH0KIAogCkBAIC0xMTQ5LDkgKzExNDcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYgog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdU
b1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYykpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAg
ICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmco
dmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpKSk7CiB9CiAKIApAQCAtMTE5OSw5ICsxMTk1LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc08KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMo
ZXhlYywgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRv
VGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTEyMTAsMTIgKzEyMDQsMTAgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoq
IGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRD
b250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsK
LSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2
YWx1ZSkpOwogfQogCiAKQEAgLTEyMzYsMTIgKzEyMjgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4
ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAg
ICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZh
bHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhl
eGVjLCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xNDEwLDcg
KzE0MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMy
KGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmco
dXN0cmluZ1RvU3RyaW5nKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkuaXNFbXB0eSgpID8gVVN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykpKTsKQEAgLTE0MTksMTEgKzE0MDksMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAg
ICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1w
bC0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpOworICAgIGltcGwtPnZv
aWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMp
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TG9uZ01ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVz
dE9iajo6c19pbmZvKSkKQEAgLTE0MzIsMTEgKzE0MjIsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2Jq
OjpzX2luZm8pOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihp
bXBsLT5tZXRob2QoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwt
PmxvbmdNZXRob2QoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKQEAg
LTE0NDYsNyArMTQzNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqCiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxv
bmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9u
Z0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcm
IHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwg
RGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKSkpOwpAQCAtMTQ1Niw3ICsxNDQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0
ZSoKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoaW1wbC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpOworICAgIEpT
Qzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9u
Z0FyZywgc3RyQXJnLCBvYmpBcmcpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKQEAgLTE0ODMsNyArMTQ3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAg
ICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBs
KCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsK
LSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBj
b25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwpAQCAtMTQ5Myw3ICsxNDgzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdp
dGhBcmdzKEV4ZWNTdGEKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUg
cmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKKyAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGOjpnZXRQdHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBv
YmpBcmcpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0x
NTI0LDExICsxNTE0LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShFCiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxv
bmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9u
Z0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpTQzo6SlNWYWx1
ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBs
LT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0
ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+bWV0aG9k
UmV0dXJuaW5nU2VxdWVuY2UobG9uZ0FyZykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIApAQCAtMjEwMywxMCArMjA5MywxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QyKAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IH0KIAotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVj
KSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
ICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBBcmcpOworICAgIGltcGwtPm92ZXJs
b2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yMTM3LDEwICsyMTI3LDEwIEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDQoCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4o
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0lu
dGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAgaW1wbC0+b3Zl
cmxvYWRlZE1ldGhvZChsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCkBAIC0yNDQwLDEwICsyNDMwLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGV4ZWMpKTsKLSAgICBhKiAodG9hKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBhKiB2YWx1ZSh0b2EoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKLSAgICBpbXBsLT5jb252ZXJ0MSgpOworICAgIGltcGwtPmNvbnZlcnQxKHZhbHVlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDU3LDEw
ICsyNDQ3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9
IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBiKiAodG9iKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBi
KiB2YWx1ZSh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0MigpOwor
ICAgIGltcGwtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDc0LDEwICsyNDY0LDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBjKiAodG9jKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBjKiB2YWx1ZSh0b2MoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0MygpOworICAgIGltcGwtPmNvbnZlcnQzKHZhbHVlKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDkx
LDEwICsyNDgxLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4
ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBkKiAodG9kKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBkKiB2YWx1ZSh0b2QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0NCgp
OworICAgIGltcGwtPmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNTA4LDEwICsyNDk4LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBlKiAodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBlKiB2YWx1ZSh0b2UoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0NSgpOworICAgIGltcGwtPmNvbnZlcnQ1KHZhbHVl
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
aW5kZXggM2E3ZTljYzI3MWQ4YjU0N2E4NDU3NTNiNjUwYWNlMTlmMjgwNDAzMi4uNjM5OTMyMGNl
MGI5NTFmYzcwNzY3OTAyNWRjNjU1Mjg2YWMyZjU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMTU0LDggKzE1NCw4
IEBAIHByb3RlY3RlZDoKIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9p
ZE1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoSlNDOjpFeGVjU3Rh
dGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9k
KEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUq
KTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3Mo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0M6OkV4ZWNTdGF0
ZSopOwpAQCAtMjI5LDggKzIyOSw4IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lCiB2b2lkIHNl
dEpTVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpT
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpTVmFsdWUganNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6
OkpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rl
c3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2Jq
VW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA0MmU1NGNhMmZmYzlkN2NjNmFjOGQ2YmUw
YjE0MjU0YTAyNzA5OWQ1Li42MWQ5NzBjMDdlMzE5NjY3YTc5Y2YyNzliYjM0OWQxY2FkN2MyNzU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oCkBAIC03Miw4ICs3Miw4IEBAIGVudW0gewogLSAodm9pZClzZXRTaG9y
dEF0dHI6KHNob3J0KW5ld1Nob3J0QXR0cjsKIC0gKHVuc2lnbmVkIHNob3J0KXVuc2lnbmVkU2hv
cnRBdHRyOwogLSAodm9pZClzZXRVbnNpZ25lZFNob3J0QXR0cjoodW5zaWduZWQgc2hvcnQpbmV3
VW5zaWduZWRTaG9ydEF0dHI7Ci0tIChsb25nIGxvbmcpQXR0cjsKLS0gKHZvaWQpc2V0QXR0cjoo
bG9uZyBsb25nKW5ld0F0dHI7CistIChpbnQpbG9uZ0F0dHI7CistICh2b2lkKXNldExvbmdBdHRy
OihpbnQpbmV3TG9uZ0F0dHI7CiAtIChsb25nIGxvbmcpbG9uZ0xvbmdBdHRyOwogLSAodm9pZClz
ZXRMb25nTG9uZ0F0dHI6KGxvbmcgbG9uZyluZXdMb25nTG9uZ0F0dHI7CiAtICh1bnNpZ25lZCBs
b25nIGxvbmcpdW5zaWduZWRMb25nTG9uZ0F0dHI7CkBAIC0xNzAsMTggKzE3MCwxOCBAQCBlbnVt
IHsKIC0gKGludClyZXBsYWNlYWJsZUF0dHJpYnV0ZTsKIC0gKHZvaWQpc2V0UmVwbGFjZWFibGVB
dHRyaWJ1dGU6KGludCluZXdSZXBsYWNlYWJsZUF0dHJpYnV0ZTsKIC0gKHZvaWQpdm9pZE1ldGhv
ZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNT
dHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwotLSAobG9uZyBsb25n
KU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZv
aWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3Ry
QXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKGludClsb25nTWV0aG9kOworLSAo
aW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICopb2JqTWV0
aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0
ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAo
RE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3Ry
aW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmog
KiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBv
YmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNT
dHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAqKWtleTsK
IC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9NRGljdGlv
bmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9t
TWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZv
aWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilz
dHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClhZGRFdmVudExpc3Rl
bmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0
ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlz
dGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxp
c3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0
YXRlVm9pZDsKQEAgLTIxOCwxMSArMjE4LDExIEBAIGVudW0gewogLSAodm9pZClvdmVybG9hZGVk
TWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogI2VuZGlmCiAtIChET01TVkdEb2N1bWVudCAqKWdl
dFNWR0RvY3VtZW50OwotLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKTsKLS0gKHZvaWQpY29udmVy
dDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZlcnQzOihET01jICopOwotLSAodm9pZCljb252ZXJ0
NDooRE9NZCAqKTsKLS0gKHZvaWQpY29udmVydDU6KERPTWUgKik7CistICh2b2lkKWNvbnZlcnQx
OihET01hICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQyOihET01iICopdmFsdWU7CistICh2b2lk
KWNvbnZlcnQzOihET01jICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQ0OihET01kICopdmFsdWU7
CistICh2b2lkKWNvbnZlcnQ1OihET01lICopdmFsdWU7CiAtIChET01TVkdQb2ludCAqKW11dGFi
bGVQb2ludEZ1bmN0aW9uOwogLSAoRE9NU1ZHUG9pbnQgKilpbW11dGFibGVQb2ludEZ1bmN0aW9u
OwogLSAodm9pZClvcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCBkMDg2MTFjZjYwYzlmMTUzZmM1
OWM5MzA3OWI2MWRjZWRlNGQwYTQyLi4zMzY0Y2Y5YTY0NTA4OTFkMjk3YWFmY2EzNDUxYzNjZmI4
MTkxY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTE0MCwxNiArMTQwLDE2IEBACiAgICAgSU1QTC0+
c2V0VW5zaWduZWRTaG9ydEF0dHIobmV3VW5zaWduZWRTaG9ydEF0dHIpOwogfQogCi0tIChsb25n
IGxvbmcpQXR0cgorLSAoaW50KWxvbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5hdHRyKCk7CisgICAgcmV0dXJuIElN
UEwtPmxvbmdBdHRyKCk7CiB9CiAKLS0gKHZvaWQpc2V0QXR0cjoobG9uZyBsb25nKW5ld0F0dHIK
Ky0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdMb25nQXR0cgogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRBdHRyKG5ld0F0dHIpOwor
ICAgIElNUEwtPnNldExvbmdBdHRyKG5ld0xvbmdBdHRyKTsKIH0KIAogLSAobG9uZyBsb25nKWxv
bmdMb25nQXR0cgpAQCAtMzQ4LDkgKzM0OCw3IEBACiAtICh2b2lkKXNldEF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uOihpbnQpbmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMp
OworICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKTsKIH0KIAogLSAoaW50KWF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC0zNzks
OSArMzc3LDcgQEAKIC0gKHZvaWQpc2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KE5T
U3RyaW5nICopbmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9u
RE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogLSAoTlNTdHJpbmcgKilz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAtNDUwLDkgKzQ0Niw3IEBACiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUo
bmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJh
aXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0g
KERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcwpA
QCAtNDY5LDkgKzQ2Myw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJh
aXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6
OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZQpAQCAtNTAyLDkgKzQ5NCw3IEBACiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKTsKIAot
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwg
ZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3Jl
KG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlCkBAIC03MjUsMjIgKzcxNSwyMiBAQAogICAg
IElNUEwtPnZvaWRNZXRob2QoKTsKIH0KIAotLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGxv
bmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmog
KilvYmpBcmcKKy0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT52b2lkTWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgSU1QTC0+dm9pZE1ldGhv
ZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAotLSAobG9uZyBs
b25nKU1ldGhvZAorLSAoaW50KWxvbmdNZXRob2QKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm1ldGhvZCgpOworICAgIHJldHVy
biBJTVBMLT5sb25nTWV0aG9kKCk7CiB9CiAKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoo
bG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9i
aiAqKW9iakFyZworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJn
OihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm1l
dGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAgIHJldHVybiBJTVBM
LT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQog
CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kCkBAIC03NDksMTAgKzczOSwxMCBAQAogICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kKCkpKTsKIH0KIAotLSAoRE9NVGVz
dE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcg
KilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistIChET01UZXN0T2JqICopb2Jq
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShv
YmpBcmcpKSkpOwogfQogCiAtIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJn
c0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
CkBAIC03OTYsMTAgKzc4NiwxMCBAQAogICAgIElNUEwtPmN1c3RvbU1ldGhvZCgpOwogfQogCi0t
ICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistICh2b2lkKWN1c3RvbU1l
dGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
Y29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNT
dHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNl
Q2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCkBAIC05OTEsMzQgKzk4MSwzNCBAQAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVydDE6KERPTWEgKikKKy0gKHZvaWQpY29udmVy
dDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQxKGNv
cmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKQorLSAodm9pZCljb252
ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVydDIo
Y29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQzOihET01jICopCistICh2b2lkKWNv
bnZlcnQzOihET01jICopdmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDMoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0
Myhjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVydDQ6KERPTWQgKikKKy0gKHZvaWQp
Y29udmVydDQ6KERPTWQgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NChjb3JlKCkpOworICAgIElNUEwtPmNvbnZl
cnQ0KGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKQorLSAodm9p
ZCljb252ZXJ0NTooRE9NZSAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQ1KGNvcmUoKSk7CisgICAgSU1QTC0+Y29u
dmVydDUoY29yZSh2YWx1ZSkpOwogfQogCiAtIChET01TVkdQb2ludCAqKW11dGFibGVQb2ludEZ1
bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwKaW5kZXggYzhhN2EwMmE5MjNiZDA0MGUzOTczOWIxZjAzMzgxZDNkOTM4NDVlYy4uOGNm
NmNmOTAyMjllZTNmZmFiM2JkYTdiZDU5NGY4OTMxMjI3Mjg5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNTEsNyArNTEsNyBA
QCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAg
ICAgc3RyaW5nQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAgICAg
ICB0ZXN0T2JqQXR0cjsKIAotICAgICAgICBKUywgVjgKKyAgICAgICAgLy8gSlMsIFY4CiAgICAg
ICAgIC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCiAgICAgICAg
IGF0dHJpYnV0ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgWE1MT2JqQXR0cjsKICAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICAgICBjcmVhdGU7CkBAIC0yMjEsMTEgKzIy
MSwxMSBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gU1ZH
RG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBhKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1VbmRlZmluZWRdIGIpOwotICAgICAgICB2b2lkIGNvbnZlcnQzKGluIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPUZhbHNlXSBjKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NChpbiBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCk7Ci0gICAgICAgIHZvaWQgY29udmVydDUoaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gZSk7Cisg
ICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0g
YSB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVydDIoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9VW5kZWZpbmVkXSBiIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0MyhpbiBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1GYWxzZV0gYyB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29u
dmVydDQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGQgdmFsdWUpOworICAgICAgICB2b2lk
IGNvbnZlcnQ1KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmddIGUgdmFsdWUpOwogCiAgICAgICAgIGF0dHJpYnV0ZSBTVkdQb2ludCBtdXRhYmxl
UG9pbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBpbW11dGFibGVQ
b2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNTcwMDBmNDEzYjAzM2Q2MGM5NmIxZTU1YjkxY2UzNDY5NWFm
OGU3Yi4uYWZmMmNhMDMyZmZiYjFmNTQxOTM5ZTRkMWRkODRmNDE1ZmMyZDU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTE2MCwxOSArMTYwLDE5IEBAIHN0YXRpYyB2b2lkIHVuc2lnbmVkU2hvcnRBdHRyQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4CiAgICAgcmV0
dXJuOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEF0dHJBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQor
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9nZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLmxvbmdBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpbXAtPmF0dHIoKSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5s
b25nQXR0cigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIEF0dHJBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2b2lkIGxvbmdBdHRy
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5BdHRyLl9zZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxv
bmdBdHRyLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwotICAgIGxvbmcgbG9uZyB2ID0gdG9JbnQ2NCh2YWx1ZSk7Ci0gICAgaW1w
LT5zZXRBdHRyKFdURjo6Z2V0UHRyKHYpKTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOwor
ICAgIGltcC0+c2V0TG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00MzIsMTAgKzQz
Miw3IEBAIHN0YXRpYyB2b2lkIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvCiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBpbnQgdiA9IHRvSW50MzIodmFs
dWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00NzQsMTAg
KzQ3MSw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5z
ZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAg
LTU2NywxMyArNTYxLDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai53aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3NldCIpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAg
VGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlwdFN0YXRl
OjpjdXJyZW50KCk7CiAgICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+
c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSwg
ZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZv
LkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuOwpAQCAtNTk4LDEzICs1ODksMTAgQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAg
cmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVS
YWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtF
TFkoZWMpKQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNv
bGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47CiB9CiAK
QEAgLTY2MiwxNiArNjUwLDEzIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0lu
c3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3Jp
cHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUp
CiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250
ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwgV1RG
OjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3Rh
dGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0
SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDY0LDMwICsxMDQ5LDMwIEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVYQ0VQ
VElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRF
Ul9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxP
Q0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZvaWRNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRob2RXaXRo
QXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7
CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9kQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01l
dGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5NZXRob2QiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxvbmdN
ZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihp
bXAtPk1ldGhvZCgpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2QoKSwg
YXJncy5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IE1l
dGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhvZFdp
dGhBcmdzIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kV2l0aEFyZ3Mi
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQ
VElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwg
b2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3Rh
dGljX2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcp
KSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJn
LCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQpAQCAtMTEwMywxMCArMTA4OCwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JM
T0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVm
YXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcs
IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwg
RGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRoQXJn
cyhBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0
b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdz
LkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9k
V2l0aFNlcXVlbmNlQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTEx
MjYsOCArMTExMSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25n
LCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOwotICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2Vx
dWVuY2UoQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQs
IGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOworICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5n
U2VxdWVuY2UobG9uZ0FyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTE1NDEsOCArMTUyNiw4IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcp
OwogICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBUSU9OX0JM
T0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2Jq
QXJnLCBBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAg
IGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQogCkBAIC0xNTYzLDggKzE1NDgsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRN
ZXRob2QoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBpbXAtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7CiB9CiAKQEAgLTE3NDUsOCArMTczMCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZW5hYmxlZEF0UnVudGltZU1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05f
QkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1l
dGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQogCkBAIC0xNzU2LDggKzE3NDEsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1
bnRpbWVNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9J
bnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1
cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc2Nyw4ICsxNzUyLDggQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMShsb25nQXJnKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc3OCw4ICsxNzYzLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDJDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMihs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgyNCw4ICsxODA5
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZl
cnQxKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNv
bnZlcnQxKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgzNSw4
ICsxODIwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MkNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQog
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAt
PmNvbnZlcnQyKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBp
bXAtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAt
MTg0Niw4ICsxODMxLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0M0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYyosICwgVjhjOjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4Yzo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAg
ICBpbXAtPmNvbnZlcnQzKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGMqLCB2YWx1ZSwgVjhjOjpI
YXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSA/IFY4Yzo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsK
KyAgICBpbXAtPmNvbnZlcnQzKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTg1Nyw4ICsxODQyLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252
ZXJ0NENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZCosICwgVjhk
OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAw
KTsKLSAgICBpbXAtPmNvbnZlcnQ0KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGQqLCB2YWx1ZSwg
VjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkg
OiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKIH0KIApAQCAtMTg2OCw4ICsxODUzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBjb252ZXJ0NUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZSos
ICwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ1KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGUqLCB2
YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRl
ZmluZWQoKTsKIH0KIApAQCAtMTkzNCw4ICsxOTE5LDggQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRB
dHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJzaG9ydEF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6c2hvcnRBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OnNob3J0QXR0
ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRy
b2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6
Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndW5zaWduZWRT
aG9ydEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7InVuc2lnbmVk
U2hvcnRBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkU2hvcnRBdHRyQXR0ckdldHRl
ciwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkU2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCi0gICAgLy8gQXR0cmlidXRlICdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJycpCi0gICAgeyJBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OkF0dHJBdHRyR2V0dGVy
LCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAg
IC8vIEF0dHJpYnV0ZSAnbG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykK
KyAgICB7ImxvbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0ckdldHRlciwg
VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAg
ICAgLy8gQXR0cmlidXRlICdsb25nTG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnJykKICAgICB7ImxvbmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0
dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0xvbmdBdHRyQXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZExvbmdMb25nQXR0cicg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQpAQCAtMjA0Niw3ICsyMDMxLDcgQEAgc3Rh
dGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAKIHN0YXRpYyBj
b25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1l
dGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiTWV0
aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImxvbmdNZXRo
b2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ01ldGhvZENhbGxiYWNrfSwKICAgICB7Im9iak1l
dGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFja30sCiAgICAgeyJtZXRo
b2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdT
ZXF1ZW5jZUNhbGxiYWNrfSwKICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRlc3RPYmpWOEludGVy
bmFsOjpzZXJpYWxpemVkVmFsdWVDYWxsYmFja30sCkBAIC0yMTg2LDExICsyMTcxLDExIEBAIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0
T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiB2b2lk
TWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgdm9pZE1l
dGhvZFdpdGhBcmdzQXJnYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJndik7CiAgICAgcHJvdG8tPlNl
dCh2ODo6U3RyaW5nOjpOZXcoInZvaWRNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1w
bGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywg
djhVbmRlZmluZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBD
dXN0b20gU2lnbmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAgICBjb25zdCBpbnQgTWV0aG9kV2l0
aEFyZ3NBcmdjID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBNZXRo
b2RXaXRoQXJnc0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhU
ZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJl
PiBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBNZXRo
b2RXaXRoQXJnc0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6
U3RyaW5nOjpOZXcoIk1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXco
VGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCks
IE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9u
Z01ldGhvZFdpdGhBcmdzJworICAgIGNvbnN0IGludCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0g
MzsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFy
Z3NBcmd2W2xvbmdNZXRob2RXaXRoQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RP
Ymo6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxv
bmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25n
TWV0aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+
U2V0KHY4OjpTdHJpbmc6Ok5ldygibG9uZ01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRl
bXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNr
LCB2OFVuZGVmaW5lZCgpLCBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAgIC8v
IEN1c3RvbSBTaWduYXR1cmUgJ29iak1ldGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBvYmpN
ZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>157661</attachid>
            <date>2012-08-10 00:53:27 -0700</date>
            <delta_ts>2012-08-10 00:53:27 -0700</delta_ts>
            <desc>WebIDL Parser Generator</desc>
            <filename>convert.py</filename>
            <type>text/plain</type>
            <size>14463</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCByZQppbXBvcnQgc3RyaW5nCmltcG9ydCBzeXMKCl9M
SU5FX1BBVFRFUk4gPSByZS5jb21waWxlKHInKFteXG5dKilcbicpCl9SVUxFX1NUQVJUX0xJTkVf
UEFUVEVSTiA9IHJlLmNvbXBpbGUocideKC4qPylceGUyXHg4Nlx4OTIoLiopJCcpCl9MRUZUX0VY
UFJfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKFxbW15bXStcXSk/XHMqKFtBLVphLXowLTlfXSsp
XHMqJykKX1JJR0hUX0VYUFJTX1BBVFRFUk4gPSByZS5jb21waWxlKHInKChbXnwiXSsoXCJbXiJd
KlwiKT8pKyknKQoKX0VNUFRZX1NZTUJPTCA9ICdceGNlXHhiNScKX0VNUFRZX1NZTUJPTF9TRVQg
PSBzZXQoW19FTVBUWV9TWU1CT0xdKQpfRU1QVFlfUEFUVEVSTiA9IHJlLmNvbXBpbGUocideKFx4
Y2VceGI1KSQnKQpfU1RSSU5HX1BBVFRFUk4gPSByZS5jb21waWxlKHInXiIoW14iXSspIiQnKQoK
CmRlZiBpc0VtcHR5KHZhbHVlKToKICAgIHJldHVybiBfRU1QVFlfUEFUVEVSTi5tYXRjaCh2YWx1
ZSkKCgpkZWYgaGFzRW1wdHkodmFsdWUpOgogICAgcmV0dXJuIF9FTVBUWV9TWU1CT0wgaW4gdmFs
dWUKCgpkZWYgaXNTeW1ib2wodmFsdWUpOgogICAgcmV0dXJuIHJlLm1hdGNoKHInXltBLVpdJywg
dmFsdWUpCgoKZGVmIGdlbmVyYXRlRGlyZWN0b3IocnVsZXNldCwgZmlyc3QsIGZvbGxvdyk6CiAg
ICBkaXJlY3RvciA9IHt9CiAgICBmb3Igc291cmNlLCBkZXN0aW5hdGlvbnMgaW4gcnVsZXNldC5p
dGVyaXRlbXMoKToKICAgICAgICBkaXJlY3Rvcltzb3VyY2VdID0gW10KICAgICAgICAjIFNvdXJj
ZSAtPiBEZXN0aW5hdGlvbnMKICAgICAgICAjICAgICAgICAtPiBEZXN0aW5hdGlvbjAgfCBEZXN0
aW5hdGlvbjEgfCAuLi4gfCBEZXN0aW5hdGlvbk4KICAgICAgICBmb3IgZGVzdGluYXRpb24gaW4g
ZGVzdGluYXRpb25zOgogICAgICAgICAgICBkaXJlY3RvckZvciA9IHNldCgpCiAgICAgICAgICAg
ICMgSWYgU291cmNlIDotPiBEZXN0aW5hdGlvblgKICAgICAgICAgICAgaWYgaXNTeW1ib2woZGVz
dGluYXRpb25bMF0pOgogICAgICAgICAgICAgICAgZGlyZWN0b3JGb3IgfD0gZmlyc3RbZGVzdGlu
YXRpb25bMF1dCiAgICAgICAgICAgICAgICBpZiBoYXNFbXB0eShmaXJzdFtkZXN0aW5hdGlvblsw
XV0pOgogICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yRm9yIHw9IGZvbGxvd1tkZXN0aW5hdGlv
blswXV0KICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGRpcmVjdG9yRm9yLmFkZChk
ZXN0aW5hdGlvblswXSkKICAgICAgICAgICAgZGlyZWN0b3Jbc291cmNlXS5hcHBlbmQoKGRlc3Rp
bmF0aW9uLCBkaXJlY3RvckZvcikpCiAgICByZXR1cm4gZGlyZWN0b3IKCgpkZWYgZ2VuZXJhdGVG
b2xsb3cocnVsZXNldCwgZmlyc3QpOgogICAgZm9sbG93ID0ge30KICAgIHVwZGF0ZWQgPSBUcnVl
CiAgICB3aGlsZSB1cGRhdGVkOgogICAgICAgIHVwZGF0ZWQgPSBGYWxzZQogICAgICAgIGZvciBr
ZXksIHJ1bGVzIGluIHJ1bGVzZXQuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgIGZvciBydWxlIGlu
IHJ1bGVzOgogICAgICAgICAgICAgICAgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShydWxlKToK
ICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNTeW1ib2wodmFsdWUpOgogICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50Rm9sbG93ID0gZm9sbG93LnNldGRlZmF1bHQocnVsZVtpXSwgc2V0KCkpCiAgICAgICAgICAg
ICAgICAgICAgZm9sbG93U2l6ZSA9IGxlbihjdXJyZW50Rm9sbG93KQogICAgICAgICAgICAgICAg
ICAgIGZvciBuZXh0IGluIHJ1bGVbaSsxOl06CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBpc1N5bWJvbChuZXh0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGb2xs
b3cuYWRkKG5leHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rm9sbG93IHw9IChmaXJz
dFtuZXh0XSAtIF9FTVBUWV9TWU1CT0xfU0VUKQogICAgICAgICAgICAgICAgICAgICAgICBpZiBu
b3QgaGFzRW1wdHkoZmlyc3RbbmV4dF0pOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWsKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50Rm9sbG93IHw9IGZvbGxvdy5zZXRkZWZhdWx0KGtleSwgc2V0KCkpCgogICAgICAgICAgICAg
ICAgICAgIGlmIGZvbGxvd1NpemUgPCBsZW4oY3VycmVudEZvbGxvdyk6CiAgICAgICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZWQgPSBUcnVlCgogICAgcmV0dXJuIGZvbGxvdwoKCmRlZiBnZW5lcmF0
ZUZpcnN0KHJ1bGVzZXQsIHJ1bGVvcmRlcik6CiAgICBmaXJzdCA9IHt9CiAgICBmb3Iga2V5IGlu
IHJldmVyc2VkKHJ1bGVvcmRlcik6CiAgICAgICAgZmlyc3Rba2V5XSA9IHNldCgpCiAgICAgICAg
Zm9yIHZhbHVlcyBpbiBydWxlc2V0W2tleV06CiAgICAgICAgICAgIGlmIGlzU3ltYm9sKHZhbHVl
c1swXSk6CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgICAgZmlyc3Rba2V5XS5hZGQodmFsdWVzWzBdKQoKICAgIHVwZGF0ZWQgPSBUcnVlCiAg
ICB3aGlsZSB1cGRhdGVkOgogICAgICAgIHVwZGF0ZWQgPSBGYWxzZQogICAgICAgIGZvciBrZXkg
aW4gcmV2ZXJzZWQocnVsZW9yZGVyKToKICAgICAgICAgICAga2V5c2l6ZSA9IGxlbihmaXJzdFtr
ZXldKQogICAgICAgICAgICBmb3IgdmFsdWVzIGluIHJ1bGVzZXRba2V5XToKICAgICAgICAgICAg
ICAgIGlmIG5vdCBpc1N5bWJvbCh2YWx1ZXNbMF0pOgogICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCiAgICAgICAgICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgogICAgICAgICAgICAgICAg
ICAgIGlmIGlzU3ltYm9sKHZhbHVlKToKICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhh
c0VtcHR5KGZpcnN0W3ZhbHVlXSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdFtr
ZXldIHw9IGZpcnN0W3ZhbHVlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3Rba2V5XSB8PSAoZmlyc3RbdmFsdWVdIC0gX0VNUFRZ
X1NZTUJPTF9TRVQpCiAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAg
ICAgICAgZmlyc3Rba2V5XS5hZGQodmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
CiAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgIGZpcnN0W2tleV0gfD0g
X0VNUFRZX1NZTUJPTF9TRVQ7CiAgICAgICAgICAgIGlmIGtleXNpemUgPCBsZW4oZmlyc3Rba2V5
XSk6CiAgICAgICAgICAgICAgICB1cGRhdGVkID0gVHJ1ZQoKICAgIHJldHVybiBmaXJzdAoKCmRl
ZiBnZW5lcmF0ZU1lc3NhZ2VGb3JTaG91bGRUb2tlbihzb3VyY2UsIHJ1bGUsIGluZGV4KToKICAg
IGJ1ZmZlciA9IFsnJXMgLT4nICUgc291cmNlXQogICAgZm9yIGNvdW50LCB2YWx1ZSBpbiBlbnVt
ZXJhdGUocnVsZSk6CiAgICAgICAgaWYgY291bnQgPT0gaW5kZXg6CiAgICAgICAgICAgIGJ1ZmZl
ci5hcHBlbmQoJyVzXl5eXicgJSByZS5lc2NhcGUodmFsdWUpKQogICAgICAgIGVsc2U6CiAgICAg
ICAgICAgIGJ1ZmZlci5hcHBlbmQocmUuZXNjYXBlKHZhbHVlKSkKICAgIHJldHVybiAnIndoaWxl
IHBhcnNpbmcgdGhlIHJ1bGU6ICVzIGF0IGxpbmU6IFxcIiIgLiAkc2VsZi0+e0xpbmV9IC4gIlxc
IiInICUgJyAnLmpvaW4oYnVmZmVyKQoKCmRlZiB3cml0ZVJ1bGUocnVsZSwgaW5kZW50LCBzb3Vy
Y2UpOgogICAgZm9yIGNvdW50LCB2YWx1ZSBpbiBlbnVtZXJhdGUocnVsZSk6CiAgICAgICAgaWYg
aXNTeW1ib2wodmFsdWUpOgogICAgICAgICAgICBwcmludCAiJXMkc2VsZi0+cGFyc2UlcygpOyIg
JSAoJyAnICogaW5kZW50LCB2YWx1ZSkKICAgICAgICBlbGlmIF9TVFJJTkdfUEFUVEVSTi5tYXRj
aCh2YWx1ZSk6CiAgICAgICAgICAgIHByaW50ICgiJXMkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgJXMpOyIpICUgKAogICAgICAgICAgICAgICAgJyAnICogaW5kZW50
LCB2YWx1ZSkKICAgICAgICBlbGlmIHJlLm1hdGNoKHInXlthLXpdJywgdmFsdWUpOgogICAgICAg
ICAgICBwcmludCAoIiVzJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
JXNUb2tlbik7IikgJSAoCiAgICAgICAgICAgICAgICAnICcgKiBpbmRlbnQsIHZhbHVlLmNhcGl0
YWxpemUoKSkKICAgIHByaW50ICIlc3JldHVybjsiICUgKCcgJyAqIGluZGVudCkKCgpkZWYgc29y
dENvbmRpdGlvbihkZXN0aW5hdGlvbnMpOgogICAgcmVzdWx0ID0geyAnZmlyc3QnOiBbXSwgJ3Nl
Y29uZCc6IFtdLCAnbGFzdCc6IFtdIH0KICAgIGZvciBydWxlLCB0b2tlbnMgaW4gZGVzdGluYXRp
b25zOgogICAgICAgIGlmIGxlbih0b2tlbnMpID09IDEgYW5kIGlzRW1wdHkobGlzdCh0b2tlbnMp
WzBdKToKICAgICAgICAgICAgcmVzdWx0WydsYXN0J10uYXBwZW5kKChydWxlLCB0b2tlbnMpKQog
ICAgICAgICAgICBjb250aW51ZQogICAgICAgIGZvciB0b2tlbiBpbiB0b2tlbnM6CiAgICAgICAg
ICAgIGlmIHJlLm1hdGNoKHInXlthLXpdJywgdG9rZW4pOgogICAgICAgICAgICAgICAgcmVzdWx0
WydzZWNvbmQnXS5hcHBlbmQoKHJ1bGUsIHRva2VucykpCiAgICAgICAgICAgICAgICBicmVhawog
ICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJlc3VsdFsnZmlyc3QnXS5hcHBlbmQoKHJ1bGUsIHRv
a2VucykpCgogICAgcmV0dmFsID0gcmVzdWx0WydmaXJzdCddCiAgICByZXR2YWwuZXh0ZW5kKHJl
c3VsdFsnc2Vjb25kJ10pCiAgICByZXR2YWwuZXh0ZW5kKHJlc3VsdFsnbGFzdCddKQogICAgcmV0
dXJuIHJldHZhbAoKCmRlZiBlc2NhcGVTdHJpbmcocGF0dGVybik6CiAgICByZXR1cm4gcmUuZXNj
YXBlKHBhdHRlcm4pCgoKIyBHZW5lcmF0ZSBwZXJsIGNvZGUKZGVmIHdyaXRlUGF0dGVybihkaXJl
Y3RvciwgcnVsZXNldCwgcnVsZW9yZGVyLCBzdGFydCk6CiAgICBwcmludCAiIiIKcGFja2FnZSBJ
RExQYXJzZXI7Cgp1c2UgQ2xhc3M6OlN0cnVjdDsKCnVzZSBzdHJpY3Q7CnVzZSBjb25zdGFudCBT
dHJpbmdUb2tlbiA9PiAwOwp1c2UgY29uc3RhbnQgSW50ZWdlclRva2VuID0+IDE7CnVzZSBjb25z
dGFudCBGbG9hdFRva2VuID0+IDI7CnVzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsK
dXNlIGNvbnN0YW50IE90aGVyVG9rZW4gPT4gNDsKdXNlIGNvbnN0YW50IEVtcHR5VG9rZW4gPT4g
NTsKCnVzZSBwcmVwcm9jZXNzb3I7CgpzdHJ1Y3QoIFRva2VuID0+IHsKICAgIHR5cGUgPT4gJyQn
LCAjIHR5cGUgb2YgdG9rZW4KICAgIHZhbHVlID0+ICckJyAjIHZhbHVlIG9mIHRva2VuCn0pOwoK
c3ViIG5ldyB7CiAgICBteSAkY2xhc3MgPSBzaGlmdDsKCiAgICBteSAkZW1wdHlUb2tlbiA9IFRv
a2VuLT5uZXcoKTsKICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOwogICAgJGVtcHR5
VG9rZW4tPnZhbHVlKCJlbXB0eSIpOwoKICAgIG15ICRzZWxmID0gewoJRG9jdW1lbnRDb250ZW50
ID0+ICIiLAoJRW1wdHlUb2tlbiA9PiAkZW1wdHlUb2tlbiwKCU5leHRUb2tlbiA9PiAkZW1wdHlU
b2tlbiwKCVRva2VuID0+ICRlbXB0eVRva2VuLAogICAgICAgIExpbmUgPT4gIiIsCiAgICAgICAg
TGluZU51bWJlciA9PiAxCiAgICB9OwogICAgcmV0dXJuIGJsZXNzICRzZWxmLCAkY2xhc3M7Cn0K
CnN1YiBhc3NlcnRUb2tlblZhbHVlCnsKICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICBteSAkdG9r
ZW4gPSBzaGlmdDsKICAgIG15ICR2YWx1ZSA9IHNoaWZ0OwogICAgZGllICJOZXh0IHRva2VuIHNo
b3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIg
LiAkc2VsZi0+e0xpbmV9IHVubGVzcyAkdG9rZW4tPnZhbHVlKCkgZXEgJHZhbHVlOwp9CgpzdWIg
YXNzZXJ0VG9rZW5UeXBlCnsKICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICBteSAkdG9rZW4gPSBz
aGlmdDsKICAgIG15ICR0eXBlID0gc2hpZnQ7CiAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNo
b3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4g
JHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cn0KCnN1YiBhc3Nl
cnRVbmV4cGVjdGVkVG9rZW4KewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIG15ICR0b2tlbiA9
IHNoaWZ0OwogICAgZGllICJVbmV4cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAk
c2VsZi0+e0xpbmV9Owp9CgpzdWIgUGFyc2UKewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIG15
ICRmaWxlTmFtZSA9IHNoaWZ0OwogICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKICAgIG15ICRwcmVw
cm9jZXNzb3IgPSBzaGlmdDsKCiAgICBteSBAbGluZXMgPSBhcHBseVByZXByb2Nlc3NvcigkZmls
ZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKTsKICAgICRzZWxmLT57TGluZX0gPSAkbGlu
ZXNbMF07CiAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPSBqb2luKCcgJywgQGxpbmVzKTsK
CiAgICAkc2VsZi0+Z2V0VG9rZW4oKTsKICAgIGV2YWwgewoJJHNlbGYtPnBhcnNlJXMoKTsKCiAg
ICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgICAgaWYgKCRuZXh0LT50
eXBlKCkgIT0gRW1wdHlUb2tlbikgewogICAgICAgICAgICBkaWUgIkV4cGVjdCBFT0YsIGJ1dCBm
b3VuZCAiIC4gJG5leHQtPnZhbHVlKCk7CiAgICAgICAgfQogICAgfTsKICAgIGlmICgkQCkgewog
ICAgICAgIGRpZSAkQDsKICAgIH0KfQoKc3ViIG5leHRUb2tlbgp7CiAgICBteSAkc2VsZiA9IHNo
aWZ0OwogICAgcmV0dXJuICRzZWxmLT57TmV4dFRva2VufTsKfQoKc3ViIGdldFRva2VuCnsKICAg
IG15ICRzZWxmID0gc2hpZnQ7CiAgICAkc2VsZi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2Vu
fTsKICAgICRzZWxmLT57TmV4dFRva2VufSA9ICRzZWxmLT5nZXRUb2tlbkludGVybmFsKCk7CiAg
ICByZXR1cm4gJHNlbGYtPntUb2tlbn07Cn0KCm15ICR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuID0g
J15bXFx0XFxuXFxyIF0qW1xcblxccl0nOwpteSAkZmxvYXRUb2tlblBhdHRlcm4gPSAnXigtPygo
WzAtOV0rXFwuWzAtOV0qfFswLTldKlxcLlswLTldKykoW0VlXVsrLV0/WzAtOV0rKT98WzAtOV0r
W0VlXVsrLV0/WzAtOV0rKSknOwpteSAkaW50ZWdlclRva2VuUGF0dGVybiA9ICdeKC0/WzEtOV1b
MC05XSp8LT8wW1h4XVswLTlBLUZhLWZdK3wtPzBbMC03XSopJzsKbXkgJHN0cmluZ1Rva2VuUGF0
dGVybiA9ICdeKFxcIlteXFwiXSpcXCIpJzsKbXkgJGlkZW50aWZpZXJUb2tlblBhdHRlcm4gPSAn
XihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7Cm15ICRvdGhlclRva2VuUGF0dGVybiA9ICdeKDo6
fFxcLlxcLlxcLnxbXlxcdFxcblxcciAwLTlBLVpfYS16XSknOwoKc3ViIGdldFRva2VuSW50ZXJu
YWwKewogICAgbXkgJHNlbGYgPSBzaGlmdDsKCiAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IC8kd2hpdGVzcGFjZVRva2VuUGF0dGVybi8pIHsKICAgICAgICAkc2VsZi0+e0RvY3Vt
ZW50Q29udGVudH0gPX4gcy8oJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4pLy87CiAgICAgICAgbXkg
JHNraXBwZWQgPSAkMTsKICAgICAgICAkc2VsZi0+e0xpbmVOdW1iZXJ9Kysgd2hpbGUgKCRza2lw
cGVkID1+IC9cXG4vZyk7CiAgICAgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAv
XihbXlxcblxccl0rKS8pIHsKICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGlu
ZU51bWJlcn0gLiAiOiIgLiAkMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc2VsZi0+
e0xpbmV9ID0gIlVua25vd24iOwogICAgICAgIH0KICAgIH0KICAgICRzZWxmLT57RG9jdW1lbnRD
b250ZW50fSA9fiBzL14oW1xcdFxcblxcciBdKykvLzsKICAgIGlmICgkc2VsZi0+e0RvY3VtZW50
Q29udGVudH0gZXEgIiIpIHsKICAgICAgICByZXR1cm4gJHNlbGYtPntFbXB0eVRva2VufTsKICAg
IH0KCiAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7CiAgICBpZiAoJHNlbGYtPntEb2N1bWVu
dENvbnRlbnR9ID1+IC8kZmxvYXRUb2tlblBhdHRlcm4vKSB7CiAgICAgICAgJHRva2VuLT50eXBl
KEZsb2F0VG9rZW4pOwogICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOwogICAgICAgICRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiBzLyRmbG9hdFRva2VuUGF0dGVybi8vOwogICAgICAgIHJldHVy
biAkdG9rZW47CiAgICB9CiAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaW50
ZWdlclRva2VuUGF0dGVybi8pIHsKICAgICAgICAkdG9rZW4tPnR5cGUoSW50ZWdlclRva2VuKTsK
ICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVu
dH0gPX4gcy8kaW50ZWdlclRva2VuUGF0dGVybi8vOwogICAgICAgIHJldHVybiAkdG9rZW47CiAg
ICB9CiAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kc3RyaW5nVG9rZW5QYXR0
ZXJuLykgewogICAgICAgICR0b2tlbi0+dHlwZShTdHJpbmdUb2tlbik7CiAgICAgICAgJHRva2Vu
LT52YWx1ZSgkMSk7CiAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJHN0cmlu
Z1Rva2VuUGF0dGVybi8vOwogICAgICAgIHJldHVybiAkdG9rZW47CiAgICB9CiAgICBpZiAoJHNl
bGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaWRlbnRpZmllclRva2VuUGF0dGVybi8pIHsKICAg
ICAgICAkdG9rZW4tPnR5cGUoSWRlbnRpZmllclRva2VuKTsKICAgICAgICAkdG9rZW4tPnZhbHVl
KCQxKTsKICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRv
a2VuUGF0dGVybi8vOwogICAgICAgIHJldHVybiAkdG9rZW47CiAgICB9CiAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kb3RoZXJUb2tlblBhdHRlcm4vKSB7CiAgICAgICAgJHRv
a2VuLT50eXBlKE90aGVyVG9rZW4pOwogICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOwogICAgICAg
ICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8vOwogICAg
ICAgIHJldHVybiAkdG9rZW47CiAgICB9CiAgICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0
ICIgLiAkc2VsZi0+e0xpbmV9Owp9ClxuIiIiICUgc3RhcnQKICAgIG5leHRDb25kaXRpb25NYXAg
PSB7fQogICAgZm9yIHNvdXJjZSwgZGVzdGluYXRpb25zIGluIGRpcmVjdG9yLml0ZXJpdGVtcygp
OgogICAgICAgIGNvdW50ID0gMAogICAgICAgIGZvciBydWxlLCB0b2tlbnMgaW4gZGVzdGluYXRp
b25zOgogICAgICAgICAgICB2YWx1ZUNvbmRpdGlvbiA9IFtdCiAgICAgICAgICAgIGZvciB0b2tl
biBpbiB0b2tlbnM6CiAgICAgICAgICAgICAgICBpZiBpc0VtcHR5KHRva2VuKToKICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgaWYgX1NUUklOR19QQVRURVJOLm1h
dGNoKHRva2VuKToKICAgICAgICAgICAgICAgICAgICB2YWx1ZUNvbmRpdGlvbi5hcHBlbmQodG9r
ZW5bMTotMV0pCiAgICAgICAgICAgIGlmIGxlbih2YWx1ZUNvbmRpdGlvbikgPD0gMToKICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIHZhbHVlQ29uZGl0aW9uLnNvcnQoKQogICAg
ICAgICAgICBjb25kaXRpb25UZXh0ID0gJ3wnLmpvaW4oWwogICAgICAgICAgICAgICAgICAgIGVz
Y2FwZVN0cmluZyhpdGVtKSBmb3IgaXRlbSBpbiB2YWx1ZUNvbmRpdGlvbl0pCiAgICAgICAgICAg
IGlmIG5vdCBjb25kaXRpb25UZXh0IGluIG5leHRDb25kaXRpb25NYXA6CiAgICAgICAgICAgICAg
ICBjb3VudCArPSAxCiAgICAgICAgICAgICAgICB0b2tlbk5hbWUgPSAnJG5leHQlc18lZCcgJSAo
c291cmNlLCBjb3VudCkKICAgICAgICAgICAgICAgIHByaW50ICJteSAlcyA9ICdeKCVzKSQnOyIg
JSAodG9rZW5OYW1lLCBjb25kaXRpb25UZXh0KQogICAgICAgICAgICAgICAgbmV4dENvbmRpdGlv
bk1hcFtjb25kaXRpb25UZXh0XSA9IHRva2VuTmFtZQogICAgcHJpbnQgIlxuIjsKCiAgICBmb3Ig
a2V5IGluIHJ1bGVvcmRlcjoKICAgICAgICBwcmludCAic3ViIHBhcnNlJXNcbnsiICUga2V5CiAg
ICAgICAgcHJpbnQgIiAgICBteSAkc2VsZiA9IHNoaWZ0OyIKICAgICAgICBwcmludCAiICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOyIKICAgICAgICBkZXN0aW5hdGlvbnMgPSBkaXJl
Y3RvcltrZXldCiAgICAgICAgZGVmYXVsdFJ1bGUgPSBOb25lCgogICAgICAgIGZvciBydWxlLCB0
b2tlbnMgaW4gc29ydENvbmRpdGlvbihkZXN0aW5hdGlvbnMpOgogICAgICAgICAgICBjb25kaXRp
b24gPSBbXQogICAgICAgICAgICB2YWx1ZUNvbmRpdGlvbiA9IFtdCgogICAgICAgICAgICBpZiBs
ZW4odG9rZW5zKSA9PSAxIGFuZCBpc0VtcHR5KGxpc3QodG9rZW5zKVswXSk6CiAgICAgICAgICAg
ICAgICBpZiBkZWZhdWx0UnVsZToKICAgICAgICAgICAgICAgICAgICBwcmludCA+PnN5cy5zdGRl
cnIsICJOb3QgTEwoMSk6ICIsIGRlZmF1bHRSdWxlCiAgICAgICAgICAgICAgICAgICAgc3lzLmV4
aXQoMSkKICAgICAgICAgICAgICAgIGRlZmF1bHRSdWxlID0gcnVsZQogICAgICAgICAgICAgICAg
Y29udGludWUKCiAgICAgICAgICAgIGZvciB0b2tlbiBpbiB0b2tlbnM6CiAgICAgICAgICAgICAg
ICBpZiBpc0VtcHR5KHRva2VuKToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAg
ICAgICAgICAgaWYgX1NUUklOR19QQVRURVJOLm1hdGNoKHRva2VuKToKICAgICAgICAgICAgICAg
ICAgICB2YWx1ZUNvbmRpdGlvbi5hcHBlbmQodG9rZW5bMTotMV0pCiAgICAgICAgICAgICAgICBl
bGlmIHJlLm1hdGNoKHInXlthLXpdJywgdG9rZW4pOgogICAgICAgICAgICAgICAgICAgIGNvbmRp
dGlvbi5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgICAgICckbmV4dC0+dHlwZSgpID09ICVz
VG9rZW4nICUgdG9rZW4uY2FwaXRhbGl6ZSgpKQogICAgICAgICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgICAgICAgICAjIGVycm9yCiAgICAgICAgICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3Rk
ZXJyLCAnSW52YWxpZCB0b2tlbjogJXMnICUgdG9rZW4KCiAgICAgICAgICAgIGluZGVudCA9IDQK
ICAgICAgICAgICAgaWYgdmFsdWVDb25kaXRpb246CiAgICAgICAgICAgICAgICBpZiBsZW4odmFs
dWVDb25kaXRpb24pID09IDE6CiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLmFwcGVuZCgK
ICAgICAgICAgICAgICAgICAgICAgICAgJyRuZXh0LT52YWx1ZSgpIGVxICIlcyInICUgcmUuc3Vi
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgciciJywgJ1xcIicsIHZhbHVlQ29uZGl0aW9u
WzBdKSkKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgdmFsdWVDb25k
aXRpb24uc29ydCgpCiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uVGV4dCA9ICd8Jy5qb2lu
KFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZVN0cmluZyhpdGVtKSBmb3IgaXRl
bSBpbiB2YWx1ZUNvbmRpdGlvbl0pCiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uLmFwcGVu
ZCgKICAgICAgICAgICAgICAgICAgICAgICAgIiRuZXh0LT52YWx1ZSgpID1+IC8lcy8iICUgbmV4
dENvbmRpdGlvbk1hcC5nZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25U
ZXh0LCAnXiglcykkJyAlIGNvbmRpdGlvblRleHQpKQogICAgICAgICAgICBpZiBjb25kaXRpb246
CiAgICAgICAgICAgICAgICBpbmRlbnQgKz0gNAogICAgICAgICAgICAgICAgaWYgbGVuKGNvbmRp
dGlvbikgPiAxOgogICAgICAgICAgICAgICAgICAgIHByaW50ICIgICAgaWYgKCVzKSB7IiAlICcg
fHwgJy5qb2luKGNvbmRpdGlvbikKICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgICAgcHJpbnQgIiAgICBpZiAoJXMpIHsiICUgY29uZGl0aW9uWzBdCgogICAgICAgICAgICB3
cml0ZVJ1bGUocnVsZSwgaW5kZW50LCBrZXkpCgogICAgICAgICAgICBpZiBjb25kaXRpb246CiAg
ICAgICAgICAgICAgICBwcmludCAiICAgIH0iCgogICAgICAgIGlmIGRlZmF1bHRSdWxlOgogICAg
ICAgICAgICB3cml0ZVJ1bGUoZGVmYXVsdFJ1bGUsIDQsIGtleSkKICAgICAgICBlbHNlOgogICAg
ICAgICAgICBwcmludCAnICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOycKICAgICAgICBwcmludCAifVxuIgogICAgcHJpbnQgIlxuMTtcbiI7CgoKZGVmIGR1
bXBGb2xsb3coZm9sbG93LCBydWxlT3JkZXIpOgogICAgZm9yIGtleSBpbiBydWxlT3JkZXI6CiAg
ICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnZm9sbG93KCVzKSA9ICcgJSBrZXksICc9JywgZm9s
bG93W2tleV0KCgpkZWYgZHVtcEZpcnN0KGZpcnN0LCBydWxlT3JkZXIpOgogICAgZm9yIGtleSBp
biBydWxlT3JkZXI6CiAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnZmlyc3QoJXMpID0gJyAl
IGtleSwgZmlyc3Rba2V5XQoKCmRlZiBkdW1wRGlyZWN0b3IoZGlyZWN0b3IsIHJ1bGVPcmRlcik6
CiAgICBmb3Iga2V5IGluIHJ1bGVPcmRlcjoKICAgICAgICBpZiBrZXkgbm90IGluIGRpcmVjdG9y
OgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIHZhbHVlcyA9IGRpcmVjdG9yW2tleV0KICAg
ICAgICBmb3IgZGVzdGluYXRpb24sIGRpcmVjdG9yRm9yIGluIHZhbHVlczoKICAgICAgICAgICAg
cHJpbnQgPj5zeXMuc3RkZXJyLCAnZGlyZWN0b3IoJXMsICVzKSA9IFslc10nICUgKGtleSwgJyAn
LmpvaW4oZGVzdGluYXRpb24pLCAnLCAnLmpvaW4oZGlyZWN0b3JGb3IpKQoKCmRlZiBtYWluKCk6
CiAgICBpbnB1dCA9IG9wZW4oc3lzLmFyZ3ZbMV0sICdyJykKICAgIHRyeToKICAgICAgICB0ZXh0
ID0gaW5wdXQucmVhZCgpCiAgICBmaW5hbGx5OgogICAgICAgIGlucHV0LmNsb3NlKCkKCiAgICBy
dWxlcyA9IFtdCiAgICBydWxlID0gW10KICAgIGxlZnRTeW1ib2wgPSBOb25lCiAgICBmb3IgbGlu
ZU1hdGNoIGluIF9MSU5FX1BBVFRFUk4uZmluZGl0ZXIodGV4dCk6CiAgICAgICAgbSA9IF9SVUxF
X1NUQVJUX0xJTkVfUEFUVEVSTi5tYXRjaChsaW5lTWF0Y2guZ3JvdXAoMSkpCiAgICAgICAgaWYg
bToKICAgICAgICAgICAgaWYgcnVsZSBhbmQgbGVmdFN5bWJvbDoKICAgICAgICAgICAgICAgIHJ1
bGVzLmFwcGVuZCgobGVmdFN5bWJvbCwgJyAnLmpvaW4ocnVsZSkpKQoKICAgICAgICAgICAgbGVm
dFN5bWJvbCA9IG0uZ3JvdXAoMSkKICAgICAgICAgICAgcnVsZSA9IFttLmdyb3VwKDIpXQogICAg
ICAgIGVsc2U6CiAgICAgICAgICAgIHJ1bGUuYXBwZW5kKGxpbmVNYXRjaC5ncm91cCgxKSkKCiAg
ICBpZiBydWxlIGFuZCBsZWZ0U3ltYm9sOgogICAgICAgIHJ1bGVzLmFwcGVuZCgobGVmdFN5bWJv
bCwgJyAnLmpvaW4ocnVsZSkpKQoKICAgIHJ1bGVPcmRlciA9IFtdCiAgICBydWxlc2V0ID0ge30K
ICAgIGZvciBsZWZ0RXhwclRleHQsIHJpZ2h0RXhwclRleHQgaW4gcnVsZXM6CiAgICAgICAgbSA9
IF9MRUZUX0VYUFJfUEFUVEVSTi5tYXRjaChsZWZ0RXhwclRleHQpCiAgICAgICAgaWYgbm90IG06
CiAgICAgICAgICAgIGNvbnRpbnVlCgogICAgICAgIHJpZ2h0RXhwcmVzc2lvbnMgPSBbXQogICAg
ICAgIGZvciBpdGVtIGluIF9SSUdIVF9FWFBSU19QQVRURVJOLmZpbmRhbGwocmlnaHRFeHByVGV4
dCk6CiAgICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvbnMuYXBwZW5kKAogICAgICAgICAgICAgICAg
W3ggZm9yIHggaW4gcmUuc3BsaXQocicoXHN8XHhjMlx4YTApKycsIGl0ZW1bMF0pCiAgICAgICAg
ICAgICAgICAgaWYgeCBhbmQgbm90IHJlLm1hdGNoKHInKFxzfFx4YzJceGEwKSsnLCB4KV0pCiAg
ICAgICAgcnVsZXNldFttLmdyb3VwKDIpXSA9IHJpZ2h0RXhwcmVzc2lvbnMKICAgICAgICBydWxl
T3JkZXIuYXBwZW5kKG0uZ3JvdXAoMikpCgogICAgZmlyc3QgPSBnZW5lcmF0ZUZpcnN0KHJ1bGVz
ZXQsIHJ1bGVPcmRlcikKICAgIGZvbGxvdyA9IGdlbmVyYXRlRm9sbG93KHJ1bGVzZXQsIGZpcnN0
KQogICAgZGlyZWN0b3IgPSBnZW5lcmF0ZURpcmVjdG9yKHJ1bGVzZXQsIGZpcnN0LCBmb2xsb3cp
CgogICAgZHVtcEZpcnN0KGZpcnN0LCBydWxlT3JkZXIpCiAgICBkdW1wRm9sbG93KGZvbGxvdywg
cnVsZU9yZGVyKQogICAgZHVtcERpcmVjdG9yKGRpcmVjdG9yLCBydWxlT3JkZXIpCiAgICAKICAg
IHdyaXRlUGF0dGVybihkaXJlY3RvciwgcnVsZXNldCwgcnVsZU9yZGVyLCAiRGVmaW5pdGlvbnMi
KQoKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBtYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>157663</attachid>
            <date>2012-08-10 00:58:04 -0700</date>
            <delta_ts>2012-08-10 00:58:04 -0700</delta_ts>
            <desc>IDL Grammar (merged current WebKit IDL grammar and WebIDL Editor&apos;s draft grammar)</desc>
            <filename>IDLGrammarBaseEditorsDraft2.txt</filename>
            <type>text/plain</type>
            <size>8237</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">WzFdCURlZmluaXRpb25zCeKGkglFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgRGVmaW5pdGlvbiBEZWZp
bml0aW9ucyAKIHwgRGVmaW5pdGlvbk9sZCBEZWZpbml0aW9ucyAKIHwgzrUKWzJdCURlZmluaXRp
b24J4oaSCUNhbGxiYWNrT3JJbnRlcmZhY2UgCiB8IFBhcnRpYWwgCiB8IERpY3Rpb25hcnkgCiB8
IEV4Y2VwdGlvbiAKIHwgRW51bSAKIHwgVHlwZWRlZiAKIHwgSW1wbGVtZW50c1N0YXRlbWVudApb
M10JQ2FsbGJhY2tPckludGVyZmFjZQnihpIJImNhbGxiYWNrIiBDYWxsYmFja1Jlc3RPckludGVy
ZmFjZSAKIHwgSW50ZXJmYWNlCls0XQlDYWxsYmFja1Jlc3RPckludGVyZmFjZQnihpIJQ2FsbGJh
Y2tSZXN0IAogfCBJbnRlcmZhY2UKWzVdCUludGVyZmFjZQnihpIJImludGVyZmFjZSIgaWRlbnRp
ZmllciBJbmhlcml0YW5jZSAieyIgSW50ZXJmYWNlTWVtYmVycyAifSIgIjsiCls2XQlQYXJ0aWFs
CeKGkgkicGFydGlhbCIgUGFydGlhbERlZmluaXRpb24KWzddCVBhcnRpYWxEZWZpbml0aW9uCeKG
kglQYXJ0aWFsSW50ZXJmYWNlIAogfCBQYXJ0aWFsRGljdGlvbmFyeQpbOF0JUGFydGlhbEludGVy
ZmFjZQnihpIJImludGVyZmFjZSIgaWRlbnRpZmllciAieyIgSW50ZXJmYWNlTWVtYmVycyAifSIg
IjsiCls5XQlJbnRlcmZhY2VNZW1iZXJzCeKGkglFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgSW50ZXJm
YWNlTWVtYmVyIEludGVyZmFjZU1lbWJlcnMgCiB8IEludGVyZmFjZU1lbWJlck9sZCBJbnRlcmZh
Y2VNZW1iZXJzCiB8IM61ClsxMF0JSW50ZXJmYWNlTWVtYmVyCeKGkglDb25zdCAKIHwgQXR0cmli
dXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yClsxMV0JRGljdGlvbmFyeQnihpIJImRpY3Rpb25hcnki
IGlkZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIERpY3Rpb25hcnlNZW1iZXJzICJ9IiAiOyIKWzEy
XQlEaWN0aW9uYXJ5TWVtYmVycwnihpIJRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IERpY3Rpb25hcnlN
ZW1iZXIgRGljdGlvbmFyeU1lbWJlcnMgCiB8IERpY3Rpb25hcnlNZW1iZXJPbGQgRGljdGlvbmFy
eU1lbWJlcnMKIHwgzrUKWzEzXQlEaWN0aW9uYXJ5TWVtYmVyCeKGkglUeXBlIGlkZW50aWZpZXIg
RGVmYXVsdCAiOyIKWzE0XQlQYXJ0aWFsRGljdGlvbmFyeQnihpIJImRpY3Rpb25hcnkiIGlkZW50
aWZpZXIgInsiIERpY3Rpb25hcnlNZW1iZXJzICJ9IiAiOyIKWzE1XQlEZWZhdWx0CeKGkgkiPSIg
RGVmYXVsdFZhbHVlIAogfCDOtQpbMTZdCURlZmF1bHRWYWx1ZQnihpIJQ29uc3RWYWx1ZSAKIHwg
c3RyaW5nClsxN10JRXhjZXB0aW9uCeKGkgkiZXhjZXB0aW9uIiBpZGVudGlmaWVyIEluaGVyaXRh
bmNlICJ7IiBFeGNlcHRpb25NZW1iZXJzICJ9IiAiOyIKWzE4XQlFeGNlcHRpb25NZW1iZXJzCeKG
kglFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5IEV4Y2VwdGlvbk1lbWJlciBFeGNlcHRp
b25NZW1iZXJzIAogfCDOtQpbMTldCUluaGVyaXRhbmNlCeKGkgkiOiIgaWRlbnRpZmllciAKIHwg
zrUKWzIwXQlFbnVtCeKGkgkiZW51bSIgaWRlbnRpZmllciAieyIgRW51bVZhbHVlTGlzdCAifSIg
IjsiClsyMV0JRW51bVZhbHVlTGlzdAnihpIJc3RyaW5nIEVudW1WYWx1ZXMKWzIyXQlFbnVtVmFs
dWVzCeKGkgkiLCIgc3RyaW5nIEVudW1WYWx1ZXMgCiB8IM61ClsyM10JQ2FsbGJhY2tSZXN0CeKG
kglpZGVudGlmaWVyICI9IiBSZXR1cm5UeXBlICIoIiBBcmd1bWVudExpc3QgIikiICI7IgpbMjRd
CVR5cGVkZWYJ4oaSCSJ0eXBlZGVmIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QgVHlwZSBpZGVudGlm
aWVyICI7IgpbMjVdCUltcGxlbWVudHNTdGF0ZW1lbnQJ4oaSCWlkZW50aWZpZXIgImltcGxlbWVu
dHMiIGlkZW50aWZpZXIgIjsiClsyNl0JQ29uc3QJ4oaSCSJjb25zdCIgQ29uc3RUeXBlIGlkZW50
aWZpZXIgIj0iIENvbnN0VmFsdWUgIjsiClsyN10JQ29uc3RWYWx1ZQnihpIJQm9vbGVhbkxpdGVy
YWwgCiB8IEZsb2F0TGl0ZXJhbCAKIHwgaW50ZWdlciAKIHwgIm51bGwiClsyOF0JQm9vbGVhbkxp
dGVyYWwJ4oaSCSJ0cnVlIiAKIHwgImZhbHNlIgpbMjldCUZsb2F0TGl0ZXJhbAnihpIJZmxvYXQg
CiB8ICItIiAiSW5maW5pdHkiIAogfCAiSW5maW5pdHkiIAogfCAiTmFOIgpbMzBdCUF0dHJpYnV0
ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcgnihpIJU2VyaWFsaXplciAKIHwgUXVhbGlmaWVyIEF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdCAKIHwgQXR0cmlidXRlIAogfCBPcGVyYXRpb25Pckl0ZXJhdG9y
ClszMV0JU2VyaWFsaXplcgnihpIJInNlcmlhbGl6ZXIiIFNlcmlhbGl6ZXJSZXN0ClszMl0JU2Vy
aWFsaXplclJlc3QJ4oaSCU9wZXJhdGlvblJlc3QgCiB8ICI9IiBTZXJpYWxpemF0aW9uUGF0dGVy
biAKIHwgzrUKWzMzXQlTZXJpYWxpemF0aW9uUGF0dGVybgnihpIJInsiIFNlcmlhbGl6YXRpb25Q
YXR0ZXJuTWFwICJ9IiAKIHwgIlsiIFNlcmlhbGl6YXRpb25QYXR0ZXJuTGlzdCAiXSIgCiB8IGlk
ZW50aWZpZXIKWzM0XQlTZXJpYWxpemF0aW9uUGF0dGVybk1hcAnihpIJImdldHRlciIgCiB8ICJp
bmhlcml0IiBJZGVudGlmaWVycyAKIHwgaWRlbnRpZmllciBJZGVudGlmaWVycyAKIHwgzrUKWzM1
XQlTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QJ4oaSCSJnZXR0ZXIiIAogfCBpZGVudGlmaWVyIElk
ZW50aWZpZXJzIAogfCDOtQpbMzZdCUlkZW50aWZpZXJzCeKGkgkiLCIgaWRlbnRpZmllciBJZGVu
dGlmaWVycyAKIHwgzrUKWzM3XQlRdWFsaWZpZXIJ4oaSCSJzdGF0aWMiIAogfCAic3RyaW5naWZp
ZXIiClszOF0JQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0CeKGkglBdHRyaWJ1dGVSZXN0IAogfCBS
ZXR1cm5UeXBlIE9wZXJhdGlvblJlc3QgCiB8ICI7IgpbMzldCUF0dHJpYnV0ZQnihpIJSW5oZXJp
dCBBdHRyaWJ1dGVSZXN0Cls0MF0JQXR0cmlidXRlUmVzdAnihpIJUmVhZE9ubHkgImF0dHJpYnV0
ZSIgVHlwZSBpZGVudGlmaWVyIEdldCAiOyIKWzQxXQlJbmhlcml0CeKGkgkiaW5oZXJpdCIgCiB8
IM61Cls0Ml0JUmVhZE9ubHkJ4oaSCSJyZWFkb25seSIgCiB8IM61Cls0M10JT3BlcmF0aW9uT3JJ
dGVyYXRvcgnihpIJUmV0dXJuVHlwZSBPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdCAKIHwgU3BlY2lh
bE9wZXJhdGlvbgpbNDRdCVNwZWNpYWxPcGVyYXRpb24J4oaSCVNwZWNpYWwgU3BlY2lhbHMgUmV0
dXJuVHlwZSBPcGVyYXRpb25SZXN0Cls0NV0JU3BlY2lhbHMJ4oaSCVNwZWNpYWwgU3BlY2lhbHMg
CiB8IM61Cls0Nl0JU3BlY2lhbAnihpIJImdldHRlciIgCiB8ICJzZXR0ZXIiIAogfCAiY3JlYXRv
ciIgCiB8ICJkZWxldGVyIiAKIHwgImxlZ2FjeWNhbGxlciIKWzQ3XQlPcGVyYXRpb25Pckl0ZXJh
dG9yUmVzdAnihpIJSXRlcmF0b3JSZXN0IAogfCBPcGVyYXRpb25SZXN0Cls0OF0JSXRlcmF0b3JS
ZXN0CeKGkgkiaXRlcmF0b3IiIE9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVjdCAiOyIK
WzQ5XQlPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QJ4oaSCU9wdGlvbmFsSXRlcmF0
b3JJbnRlcmZhY2UgCiB8ICJvYmplY3QiCls1MF0JT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZQni
hpIJIj0iIGlkZW50aWZpZXIgCiB8IM61Cls1MV0JT3BlcmF0aW9uUmVzdAnihpIJT3B0aW9uYWxJ
ZGVudGlmaWVyICIoIiBBcmd1bWVudExpc3QgIikiICBSYWlzZXMgIjsiCls1Ml0JT3B0aW9uYWxJ
ZGVudGlmaWVyCeKGkglpZGVudGlmaWVyIAogfCDOtQpbNTNdCUFyZ3VtZW50TGlzdAnihpIJQXJn
dW1lbnQgQXJndW1lbnRzIAogfCDOtQpbNTRdCUFyZ3VtZW50cwnihpIJIiwiIEFyZ3VtZW50IEFy
Z3VtZW50cyAKIHwgzrUKWzU1XQlBcmd1bWVudAnihpIJSW4gRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
QWxsb3dFbXB0eSBPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudApbNTZdCU9wdGlvbmFsT3JSZXF1
aXJlZEFyZ3VtZW50CeKGkgkib3B0aW9uYWwiIFR5cGUgQXJndW1lbnROYW1lIERlZmF1bHQgCiB8
IFR5cGUgRWxsaXBzaXMgQXJndW1lbnROYW1lCls1N10JQXJndW1lbnROYW1lCeKGkglBcmd1bWVu
dE5hbWVLZXl3b3JkIAogfCBpZGVudGlmaWVyCls1OF0JRWxsaXBzaXMJ4oaSCSIuLi4iIAogfCDO
tQpbNTldCUV4Y2VwdGlvbk1lbWJlcgnihpIJQ29uc3QgCiB8IEV4Y2VwdGlvbkZpZWxkCls2MF0J
RXhjZXB0aW9uRmllbGQJ4oaSCVR5cGUgaWRlbnRpZmllciAiOyIKWzYxXQlFeHRlbmRlZEF0dHJp
YnV0ZUxpc3RBbGxvd0VtcHR5CeKGkgkiWyIgRXh0ZW5kZWRBdHRyaWJ1dGUgRXh0ZW5kZWRBdHRy
aWJ1dGVzICJdIiAKIHwgzrUKWzYxLjVdICBFeHRlbmRlZEF0dHJpYnV0ZUxpc3QJ4oaSCSJbIiBF
eHRlbmRlZEF0dHJpYnV0ZSBFeHRlbmRlZEF0dHJpYnV0ZXMgIl0iCls2Ml0JRXh0ZW5kZWRBdHRy
aWJ1dGVzCeKGkgkiLCIgRXh0ZW5kZWRBdHRyaWJ1dGUyIEV4dGVuZGVkQXR0cmlidXRlcyAKIHwg
zrUKWzYzXQlFeHRlbmRlZEF0dHJpYnV0ZQnihpIJIGlkZW50aWZpZXIgRXh0ZW5kZWRBdHRyaWJ1
dGVSZXN0Cls2NF0JRXh0ZW5kZWRBdHRyaWJ1dGUyCeKGkgkgaWRlbnRpZmllciBFeHRlbmRlZEF0
dHJpYnV0ZVJlc3QKIHwgzrUKWzY1XSAgICBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QgICDihpIJICIo
IiBBcmd1bWVudExpc3QgIikiCiB8ICI9IiBFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCiB8IM61Cls2
Nl0gICAgRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MiAg4oaSIGlkZW50aWZpZXIgRXh0ZW5kZWRBdHRy
aWJ1dGVSZXN0MwogfCBpbnRlZ2VyCls2N10gICAgRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MyAg4oaS
ICImIiBpZGVudGlmaWVyCiB8ICJ8IiBpZGVudGlmaWVyCiB8ICIoIiBBcmd1bWVudExpc3QgIiki
CiB8IElkZW50aWZpZXJMaXN0Cls2Ny41XSBJZGVudGlmaWVyTGlzdCDihpIgaWRlbnRpZmllciBJ
ZGVudGlmaWVyTGlzdAogfCDOtQpbNjhdCUFyZ3VtZW50TmFtZUtleXdvcmQJ4oaSCSAiYXR0cmli
dXRlIiAKIHwgImNhbGxiYWNrIiAKIHwgImNvbnN0IiAKIHwgImNyZWF0b3IiIAogfCAiZGVsZXRl
ciIgCiB8ICJkaWN0aW9uYXJ5IiAKIHwgImVudW0iIAogfCAiZXhjZXB0aW9uIiAKIHwgImdldHRl
ciIgCiB8ICJpbXBsZW1lbnRzIiAKIHwgImluaGVyaXQiIAogfCAiaW50ZXJmYWNlIiAKIHwgImxl
Z2FjeWNhbGxlciIgCiB8ICJwYXJ0aWFsIiAKIHwgInNlcmlhbGl6ZXIiIAogfCAic2V0dGVyIiAK
IHwgInN0YXRpYyIgCiB8ICJzdHJpbmdpZmllciIgCiB8ICJ0eXBlZGVmIiAKIHwgInVucmVzdHJp
Y3RlZCIKWzY5XQlUeXBlCeKGkglTaW5nbGVUeXBlIAogfCBVbmlvblR5cGUgVHlwZVN1ZmZpeApb
NzBdCVNpbmdsZVR5cGUJ4oaSCU5vbkFueVR5cGUgCiB8ICJhbnkiIFR5cGVTdWZmaXhTdGFydGlu
Z1dpdGhBcnJheQpbNzFdCVVuaW9uVHlwZQnihpIJIigiIFVuaW9uTWVtYmVyVHlwZSAib3IiIFVu
aW9uTWVtYmVyVHlwZSBVbmlvbk1lbWJlclR5cGVzICIpIgpbNzJdCVVuaW9uTWVtYmVyVHlwZQni
hpIJTm9uQW55VHlwZSAKIHwgVW5pb25UeXBlIFR5cGVTdWZmaXggCiB8ICJhbnkiICJbIiAiXSIg
VHlwZVN1ZmZpeApbNzNdCVVuaW9uTWVtYmVyVHlwZXMJ4oaSCSJvciIgVW5pb25NZW1iZXJUeXBl
IFVuaW9uTWVtYmVyVHlwZXMgCiB8IM61Cls3NF0JTm9uQW55VHlwZQnihpIJUHJpbWl0aXZlVHlw
ZSBUeXBlU3VmZml4IAogfCAiQnl0ZVN0cmluZyIgVHlwZVN1ZmZpeCAKIHwgIkRPTVN0cmluZyIg
VHlwZVN1ZmZpeCAKIHwgaWRlbnRpZmllciBUeXBlU3VmZml4IAogfCAic2VxdWVuY2UiICI8IiBU
eXBlICI+IiBOdWxsIAogfCAib2JqZWN0IiBUeXBlU3VmZml4IAogfCAiRGF0ZSIgVHlwZVN1ZmZp
eApbNzVdCUNvbnN0VHlwZQnihpIJUHJpbWl0aXZlVHlwZSBOdWxsIAogfCBpZGVudGlmaWVyIE51
bGwKWzc2XQlQcmltaXRpdmVUeXBlCeKGkglVbnNpZ25lZEludGVnZXJUeXBlIAogfCBVbnJlc3Ry
aWN0ZWRGbG9hdFR5cGUgCiB8ICJib29sZWFuIiAKIHwgImJ5dGUiIAogfCAib2N0ZXQiCls3N10J
VW5yZXN0cmljdGVkRmxvYXRUeXBlCeKGkgkidW5yZXN0cmljdGVkIiBGbG9hdFR5cGUgCiB8IEZs
b2F0VHlwZQpbNzhdCUZsb2F0VHlwZQnihpIJImZsb2F0IiAKIHwgImRvdWJsZSIKWzc5XQlVbnNp
Z25lZEludGVnZXJUeXBlCeKGkgkidW5zaWduZWQiIEludGVnZXJUeXBlIAogfCBJbnRlZ2VyVHlw
ZQpbODBdCUludGVnZXJUeXBlCeKGkgkic2hvcnQiIAogfCAiaW50IgogfCAibG9uZyIgT3B0aW9u
YWxMb25nCls4MV0JT3B0aW9uYWxMb25nCeKGkgkibG9uZyIgCiB8IM61Cls4Ml0JVHlwZVN1ZmZp
eAnihpIJIlsiICJdIiBUeXBlU3VmZml4IAogfCAiPyIgVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFy
cmF5IAogfCDOtQpbODNdCVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQnihpIJIlsiICJdIiBU
eXBlU3VmZml4IAogfCDOtQpbODRdCU51bGwJ4oaSCSI/IiAKIHwgzrUKWzg1XQlSZXR1cm5UeXBl
CeKGkglUeXBlIAogfCAidm9pZCIKWzg2XQlHZXQJ4oaSCUluaGVyaXRzR2V0dGVyIFNldFJhaXNl
cwogfCBTZXRHZXRSYWlzZXMgCiB8IM61Cls4N10JSW5oZXJpdHNHZXR0ZXIJ4oaSCSJpbmhlcml0
cyIgImdldHRlciIKWzI1XQlTZXRHZXRSYWlzZXMJ4oaSCVNldFJhaXNlcyBHZXRSYWlzZXMyCiB8
IEdldFJhaXNlcwogfCBTZXRHZXRSYWlzZXMyClsyN10JR2V0UmFpc2VzCeKGkgkiZ2V0dGVyIiAi
cmFpc2VzIiBFeGNlcHRpb25MaXN0ClsyNy41XQlHZXRSYWlzZXMyCeKGkgkiLCIgImdldHRlciIg
InJhaXNlcyIgRXhjZXB0aW9uTGlzdAogfCDOtQpbMjhdCVNldFJhaXNlcwnihpIJInNldHRlciIg
InJhaXNlcyIgRXhjZXB0aW9uTGlzdCAKWzI5XSAgICBTZXRHZXRSYWlzZXMyIOKGkiBHZXRSYWlz
ZXMzIFNldFJhaXNlczMKWzI5XSAgICBHZXRSYWlzZXMzICDihpIgImdldHJhaXNlcyIgRXhjZXB0
aW9uTGlzdAogfCDOtQpbMjldICAgIFNldFJhaXNlczMgIOKGkiAic2V0cmFpc2VzIiBFeGNlcHRp
b25MaXN0CiB8IM61Cls5MF0JRXhjZXB0aW9uTGlzdAnihpIJIigiIGlkZW5maXRpZXIgSWRlbnRp
ZmllcnMgIikiCls5MV0JUmFpc2VzCeKGkgkicmFpc2VzIiBFeGNlcHRpb25MaXN0IAogfCDOtQpb
Ml0JRGVmaW5pdGlvbk9sZAnihpIJQ2FsbGJhY2tPckludGVyZmFjZSAKIHwgUGFydGlhbCAKIHwg
RGljdGlvbmFyeU9sZCAKIHwgRXhjZXB0aW9uT2xkCiB8IEVudW1PbGQgCiB8IFR5cGVkZWYgCiB8
IEltcGxlbWVudHNTdGF0ZW1lbnQKWzNdCUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQJ4oaSCSJjYWxs
YmFjayIgQ2FsbGJhY2tSZXN0T3JJbnRlcmZhY2UgCiB8IEludGVyZmFjZU9sZApbNV0JSW50ZXJm
YWNlT2xkCeKGkgkiaW50ZXJmYWNlIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5IGlk
ZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIEludGVyZmFjZU1lbWJlcnMgIn0iICI7IgpbMTBdCUlu
dGVyZmFjZU1lbWJlck9sZAnihpIJQ29uc3QKIHwgQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJh
dG9yT2xkClsxMV0JRGljdGlvbmFyeU9sZAnihpIJImRpY3Rpb25hcnkiIEV4dGVuZGVkQXR0cmli
dXRlTGlzdEFsbG93RW1wdHkgaWRlbnRpZmllciBJbmhlcml0YW5jZSAieyIgRGljdGlvbmFyeU1l
bWJlcnMgIn0iICI7IgpbMTNdCURpY3Rpb25hcnlNZW1iZXJPbGQJ4oaSCVR5cGUgRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSBpZGVudGlmaWVyIERlZmF1bHQgIjsiClsxN10JRXhjZXB0
aW9uT2xkCeKGkgkiZXhjZXB0aW9uIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5IGlk
ZW50aWZpZXIgSW5oZXJpdGFuY2UgInsiIEV4Y2VwdGlvbk1lbWJlcnMgIn0iICI7IgpbMjBdCUVu
dW1PbGQJ4oaSCSJlbnVtIiBFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5IGlkZW50aWZp
ZXIgInsiIEVudW1WYWx1ZUxpc3QgIn0iICI7IgpbMzBdCUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJ
dGVyYXRvck9sZAnihpIJU2VyaWFsaXplciAKIHwgUXVhbGlmaWVyIEF0dHJpYnV0ZU9yT3BlcmF0
aW9uUmVzdE9sZAogfCBBdHRyaWJ1dGVPbGQKIHwgT3BlcmF0aW9uT3JJdGVyYXRvcgpbMzhdCUF0
dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZAnihpIJQXR0cmlidXRlUmVzdE9sZAogfCBSZXR1cm5U
eXBlIE9wZXJhdGlvblJlc3QgCiB8ICI7IgpbMzldCUF0dHJpYnV0ZU9sZAnihpIJSW5oZXJpdCBB
dHRyaWJ1dGVSZXN0T2xkCls0MF0JQXR0cmlidXRlUmVzdE9sZAnihpIJUmVhZE9ubHkgImF0dHJp
YnV0ZSIgRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSBUeXBlIGlkZW50aWZpZXIgR2V0
ICI7IgpbNDBdCUluCeKGkgkiaW4iIAogfCDOtQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157670</attachid>
            <date>2012-08-10 01:27:12 -0700</date>
            <delta_ts>2012-08-27 22:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120810172643.patch</filename>
            <type>text/plain</type>
            <size>180200</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI1NDE2YTcyMTk1N2M4
OTMyYzI5MWJiMDg2YTFmMWUxMjc3ZTE1ZS4uNDc4NjQ3ZGFlZjc5NjMzYWYzYzhmMzYxYWE3NDNm
MDY4MjRmMzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdHJvcyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOC0wOSAgU2ltb24gSGF1
c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1vdmUg
c3VwcG9ydCBmb3IgX19xdF9zZW5kZXJfXyBpbiBRT2JqZWN0IGJyaWRnZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNkNmM2YTJiOTFm
OTNiZGVhNWMwMmI3NDk2MWJmYjg5ZDQxLi5jNmFlODhjNzIxZDc0MGZhNzI2ZTA5ZjYyNWUxODU2
YmY0MzVlNjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQpAQCAtMjEsNDUxICsyMSwyMzIxIEBACiAKIHBhY2thZ2UgSURMUGFyc2VyOwogCit1c2Ug
Q2xhc3M6OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAKIHVzZSBJUEM6
Ok9wZW4yOwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAKLXVzZSBjb25z
dGFudCBNT0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgotCi11c2UgY29uc3RhbnQg
TU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25zdGFudCBNT0RF
X0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1P
REVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCi0KLSMgSGVscGVyIHZh
cmlhYmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7Ci0KLW15ICRwYXJzZU1vZGU7Ci1teSAkcHJl
c2VydmVkUGFyc2VNb2RlOwotCi1teSAkYmVRdWlldDsgIyBTaG91bGQgbm90IGRpc3BsYXkgYW55
dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9sZCB0aGUgcmVzdWx0aW5n
ICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBwYXJzZSBvbmx5IGVub3Vn
aCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK3VzZSBjb25zdGFudCBTdHJpbmdUb2tlbiA9PiAw
OwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNlIGNvbnN0YW50IEZsb2F0VG9r
ZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsKK3VzZSBjb25zdGFu
dCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlUb2tlbiA9PiA1OworCitzdHJ1
Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyB0eXBlIG9mIHRva2VuCisgICAgdmFs
dWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4KK30pOworCitzdWIgbmV3IHsKKyAgICBteSAkY2xh
c3MgPSBzaGlmdDsKKworICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4tPm5ldygpOworICAgICRl
bXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRlbXB0eVRva2VuLT52YWx1ZSgiZW1w
dHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBEb2N1bWVudENvbnRlbnQgPT4gIiIs
CisgICAgICAgIEVtcHR5VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIE5leHRUb2tlbiA9
PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgVG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIExp
bmUgPT4gIiIsCisgICAgICAgIExpbmVOdW1iZXIgPT4gMQorICAgIH07CisgICAgcmV0dXJuIGJs
ZXNzICRzZWxmLCAkY2xhc3M7Cit9CiAKLXN1YiBJbml0aWFsaXplR2xvYmFsRGF0YQorc3ViIGFz
c2VydFRva2VuVmFsdWUKIHsKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOwotCi0gICAgJHBh
cnNlTW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgJHByZXNlcnZlZFBhcnNlTW9kZSA9IE1PREVfVU5E
RUY7Ci0KLSAgICAkZG9jdW1lbnQgPSAwOwotICAgICRwYXJlbnRzT25seSA9IDA7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkdmFsdWUgPSBz
aGlmdDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRtc2cgPSAiTmV4dCB0b2tlbiBz
aG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgpIC4gIiBhdCAi
IC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAoJGxpbmUpKSB7CisgICAgICAgICRt
c2cgPSAkbXNnIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnIHVubGVzcyAkdG9rZW4tPnZh
bHVlKCkgZXEgJHZhbHVlOwogfQogCi0jIERlZmF1bHQgQ29uc3RydWN0b3IKLXN1YiBuZXcKK3N1
YiBhc3NlcnRUb2tlblR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKLQotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7Ci0KLSAgICAkYmVR
dWlldCA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hp
ZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNo
b3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4g
JHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cit9CiAKLSAgICBi
bGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJlZmVyZW5jZTsKK3N1YiBh
c3NlcnRVbmV4cGVjdGVkVG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0
b2tlbiA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1zZyA9ICJVbmV4
cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlm
IChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAiIElETFBhcnNlci5w
bToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnOwogfQogCi0jIFJldHVybnMgdGhlIHBh
cnNlZCAnaWRsRG9jdW1lbnQnCiBzdWIgUGFyc2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKICAgICBt
eSAkZGVmaW5lcyA9IHNoaWZ0OwogICAgIG15ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKLSAgICAk
cGFyZW50c09ubHkgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcgdG8gcGFy
c2UgJGZpbGVOYW1lLi4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkgQGRvY3VtZW50
Q29udGVudCA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRwcmVwcm9j
ZXNzb3IpOworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOwogCi0gICAgbXkgJGRhdGFBdmFpbGFi
bGUgPSAwOworICAgIG15IEBsaW5lcyA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRl
ZmluZXMsICRwcmVwcm9jZXNzb3IpOworICAgICRzZWxmLT57TGluZX0gPSAkbGluZXNbMF07Cisg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID0gam9pbignICcsIEBsaW5lcyk7CiAKLSAgICAj
IFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3JlYWNoIChAZG9jdW1lbnRDb250ZW50KSB7
Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2JqZWN0LT5EZXRlcm1pbmVQYXJzZU1vZGUo
JF8pOworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIGV2YWwgeworICAgICAgICBteSAkcmVz
dWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChAZGVmaW5pdGlv
bnMsIEB7JHJlc3VsdH0pOwogCi0gICAgICAgIGlmICgkbmV3UGFyc2VNb2RlIG5lIE1PREVfVU5E
RUYpIHsKLSAgICAgICAgICAgIGlmICgkZGF0YUF2YWlsYWJsZSBlcSAwKSB7Ci0gICAgICAgICAg
ICAgICAgJGRhdGFBdmFpbGFibGUgPSAxOyAjIFN0YXJ0IG5vZGUgYnVpbGRpbmcuLi4KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24o
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpICE9IEVtcHR5VG9rZW4pIHsKKyAgICAgICAgICAg
IGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5kICIgLiAkbmV4dC0+dmFsdWUoKSAuICIgYXQgIiAu
ICRzZWxmLT57TGluZX07CiAgICAgICAgIH0KKyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZp
bGVOYW1lIiBpZiAkQDsKKworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBAZGVm
aW5pdGlvbnM7CisKKyAgICBteSAkZG9jdW1lbnQ7CisgICAgaWYgKCQjZGVmaW5pdGlvbnMgPT0g
MCAmJiByZWYoJGRlZmluaXRpb25zWzBdKSBlcSAiaWRsRG9jdW1lbnQiKSB7CisgICAgICAgICRk
b2N1bWVudCA9ICRkZWZpbml0aW9uc1swXTsKKyAgICB9IGVsc2UgeworICAgICAgICAkZG9jdW1l
bnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1bGUoIiIpOwor
ICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQGRlZmluaXRpb25zKTsKKyAgICB9
CisgICAgICAgIAorICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyByZWYoJGRvY3Vt
ZW50KSBlcSAiaWRsRG9jdW1lbnQiOworCisgICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5h
bWUpOworICAgIHJldHVybiAkZG9jdW1lbnQ7Cit9CisKK3N1YiBuZXh0VG9rZW4KK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e05leHRUb2tlbn07Cit9CisKK3N1
YiBnZXRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNlbGYtPntUb2tlbn0g
PSAkc2VsZi0+e05leHRUb2tlbn07CisgICAgJHNlbGYtPntOZXh0VG9rZW59ID0gJHNlbGYtPmdl
dFRva2VuSW50ZXJuYWwoKTsKKyAgICByZXR1cm4gJHNlbGYtPntUb2tlbn07Cit9CisKK215ICR3
aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuID0gJ15bXHRcblxyIF0qW1xuXHJdJzsKK215ICRmbG9hdFRv
a2VuUGF0dGVybiA9ICdeKC0/KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsr
LV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSknOworbXkgJGludGVnZXJUb2tlblBh
dHRlcm4gPSAnXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKSc7
CitteSAkc3RyaW5nVG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwiXSpcIiknOworbXkgJGlkZW50aWZp
ZXJUb2tlblBhdHRlcm4gPSAnXihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7CitteSAkb3RoZXJU
b2tlblBhdHRlcm4gPSAnXig6OnxcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0pJzsKIAotICAg
ICAgICAjIFVwZGF0ZSBkZXRlY3RlZCBkYXRhIHN0cmVhbSBtb2RlLi4uCi0gICAgICAgIGlmICgk
bmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAgICRwYXJzZU1vZGUgPSAk
bmV3UGFyc2VNb2RlOworc3ViIGdldFRva2VuSW50ZXJuYWwKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworCisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHdoaXRlc3BhY2VU
b2tlblBhdHRlcm4vKSB7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLygk
d2hpdGVzcGFjZVRva2VuUGF0dGVybikvLzsKKyAgICAgICAgbXkgJHNraXBwZWQgPSAkMTsKKyAg
ICAgICAgJHNlbGYtPntMaW5lTnVtYmVyfSsrIHdoaWxlICgkc2tpcHBlZCA9fiAvXG4vZyk7Cisg
ICAgICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gL14oW15cblxyXSspLykgewor
ICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJlcn0gLiAiOiIgLiAk
MTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0gPSAiVW5rbm93
biI7CiAgICAgICAgIH0KKyAgICB9CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMv
XihbXHRcblxyIF0rKS8vOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gZXEgIiIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQogCi0gICAgICAg
IHB1c2goQHRlbXBvcmFyeUNvbnRlbnQsICRfKTsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3
KCk7CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0VG9rZW5QYXR0
ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tl
bi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kZmxv
YXRUb2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYg
KCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRlcm4vKSB7Cisg
ICAgICAgICR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVl
KCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGludGVnZXJUb2tl
blBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsKKyAgICAgICAg
JHRva2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7Cisg
ICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tl
bi0+dHlwZShJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAg
ICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJUb2tlblBhdHRl
cm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9j
dW1lbnRDb250ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4t
PnR5cGUoT3RoZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4vLzsKKyAgICAg
ICAgcmV0dXJuICR0b2tlbjsKICAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBh
dCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhp
bmcgcmVtYWluaW5nIHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5E
RUYpIGFuZCAoJCN0ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJv
Y2Vzc1NlY3Rpb24oKTsKK215ICRuZXh0QXR0cmlidXRlT2xkXzEgPSAnXihhdHRyaWJ1dGV8aW5o
ZXJpdHxyZWFkb25seSkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14oaW50fGxvbmd8
c2hvcnR8dW5zaWduZWQpJCc7CitteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxm
bG9hdHx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dFNldEdldFJhaXNlczJfMSA9ICdeKDt8Z2V0
cmFpc2VzfHNldHJhaXNlcykkJzsKK215ICRuZXh0QXJndW1lbnRMaXN0XzEgPSAnXihcKHxCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlu
fGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0
ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dE5vbkFueVR5cGVfMSA9ICdeKGJvb2xlYW58Ynl0ZXxk
b3VibGV8ZmxvYXR8aW50fGxvbmd8b2N0ZXR8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJs
ZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0
fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdp
Zmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0T3B0aW9uYWxJdGVy
YXRvckludGVyZmFjZU9yT2JqZWN0XzEgPSAnXig7fD0pJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9y
T3BlcmF0aW9uT3JJdGVyYXRvcl8xID0gJ14oc3RhdGljfHN0cmluZ2lmaWVyKSQnOworbXkgJG5l
eHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMiA9ICdeKFwofEJ5dGVTdHJpbmd8RE9N
U3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0
fGdldHRlcnxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNldHRl
cnxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0VW5yZXN0cmlj
dGVkRmxvYXRUeXBlXzEgPSAnXihkb3VibGV8ZmxvYXQpJCc7CitteSAkbmV4dEV4dGVuZGVkQXR0
cmlidXRlUmVzdDNfMSA9ICdeKCx8XF0pJCc7CitteSAkbmV4dEV4Y2VwdGlvbkZpZWxkXzEgPSAn
XihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZs
b2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dFR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVl
bmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0U3BlY2lhbHNfMSA9
ICdeKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikkJzsKK215ICRu
ZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxleGNlcHRpb258
aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhjZXB0aW9uTWVtYmVyc18x
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVhbnxieXRlfGNv
bnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8
c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRBdHRyaWJ1dGVSZXN0XzEg
PSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7CitteSAkbmV4dFNpbmdsZVR5cGVfMSA9ICdeKEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9u
Z3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwor
bXkgJG5leHRHZXRfMSA9ICdeKDt8Z2V0cmFpc2VzfGdldHRlcnxzZXRyYWlzZXN8c2V0dGVyKSQn
OworbXkgJG5leHRBcmd1bWVudE5hbWVfMSA9ICdeKGF0dHJpYnV0ZXxjYWxsYmFja3xjb25zdHxj
cmVhdG9yfGRlbGV0ZXJ8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxnZXR0ZXJ8aW1wbGVtZW50
c3xpbmhlcml0fGludGVyZmFjZXxsZWdhY3ljYWxsZXJ8cGFydGlhbHxzZXJpYWxpemVyfHNldHRl
cnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dENv
bnN0VmFsdWVfMSA9ICdeKGZhbHNlfHRydWUpJCc7CitteSAkbmV4dENvbnN0VmFsdWVfMiA9ICde
KC18SW5maW5pdHl8TmFOKSQnOworbXkgJG5leHREZWZpbml0aW9uXzEgPSAnXihjYWxsYmFja3xp
bnRlcmZhY2UpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xID0gJ14oXCh8
Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxp
bnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVk
fHZvaWQpJCc7CitteSAkbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMSA9ICdeKGludHxsb25nfHNo
b3J0KSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNyZWF0b3J8ZGVs
ZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9i
amVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0
aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dERl
ZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0eXxOYU58ZmFsc2V8bnVsbHx0cnVlKSQnOworCitz
dWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGRl
ZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb247CisgICAgICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAg
ICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbnNfMS8pIHsKKyAgICAgICAgICAg
ICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbk9sZCgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZCAo
JGRlZmluaXRpb24pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgJGRlZmluaXRp
b24pOworICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25zOworfQogCi0g
ICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0g
Ci0gICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworc3ViIHBhcnNlRGVmaW5pdGlv
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlv
bl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbCgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0
aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNl
cHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW0oJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VNb2R1bGUKK3N1YiBwYXJzZUNhbGxi
YWNrT3JJbnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2Ui
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZh
Y2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxu
IiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQ2FsbGJhY2tSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLSAg
ICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworc3ViIHBhcnNlSW50
ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRhdGFO
b2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRpbnRlcmZhY2VOYW1l
VG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5v
ZGUtPm5hbWUoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1c2goQHsk
ZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAg
ICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0i
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7
Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJz
KTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgbXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6IGRpZSgiUGFyc2lu
ZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICRkYXRhTm9kZS0+bW9kdWxlKCRt
b2R1bGVOYW1lKTsKK3N1YiBwYXJzZVBhcnRpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHByaW50ICIgIHwt
LS0tPiBNb2R1bGU7IE5BTUUgXCIkbW9kdWxlTmFtZVwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVR
dWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlUGFydGlhbERlZmluaXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
IH0KIAotc3ViIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZVBhcnRpYWxEZWZpbml0
aW9uCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0OwotICAgIG15ICRhdHRycyA9IHNoaWZ0Owor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgaWYgKCEleyRhdHRyc30pIHsKLSAgICAgICAgcmV0dXJuICIiOworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
aW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbEludGVyZmFj
ZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbERp
Y3Rpb25hcnkoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIG15
IEB0ZW1wOwotICAgIHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1ZSkgPSBlYWNoKCV7JGF0dHJz
fSkpIHsKLSAgICAgICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1ZSIpOworc3ViIHBhcnNlUGFy
dGlhbEludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAuICJbIiAu
IGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVycworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJlcnMgPSAoKTsKKwor
ICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyOworCisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2Vs
Zi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRpbnRlcmZhY2VN
ZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8
ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlcnNfMS8pIHsKKyAgICAgICAg
ICAgICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAaW50ZXJm
YWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKIH0KIAotc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVz
CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKIHsKLSAgICBteSAkc3RyID0gc2hpZnQ7Ci0gICAg
JHN0ciA9fiBzL1xbXHMqKC4qKVxzKlxdLyQxL2c7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgbXkgJWF0dHJzID0gKCk7CitzdWIg
cGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQ
YXJzZSBuYW1lCi0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKK3N1YiBw
YXJzZURpY3Rpb25hcnlNZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAg
ICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8
fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAg
ICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCgpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQotICAgICAgICBteSAkbmFtZSA9ICQxOwotICAg
ICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwotCi0gICAgICAgIGlmICgkc3RyID1+IC9e
XHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqPS8vOwotICAgICAgICAgICAgaWYg
KCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAgICMgUGFyc2Ug
Jz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAgIG15ICRjb25z
dHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyooW1x3XGRdKykv
KSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25zdHJ1Y3Rvck5hbWUgPSAkMTsKLSAgICAgICAg
ICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLSAgICAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmli
dXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
JHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1
bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVyZSA9ICQxOwotICAgICAgICAgICAgICAgICAg
ICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29uc3RydWN0b3JO
YW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJlfTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6
ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVs
c2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIg
PT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIHZhbHVlICcsJz8KLSAgICAg
ICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXixdKiksPy8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5h
bWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9e
XHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15c
cypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAg
ICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14o
W14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAg
ICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAg
ICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4i
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKiw/Lykgewot
ICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwotICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJD
b25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gIiI7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAiVkFMVUVf
SVNfTUlTU0lORyI7CisgICAgfQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNlRGljdGlvbmFy
eU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGVmYXVsdAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZURlZmF1bHRWYWx1ZSgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBwYXJzZURlZmF1
bHRWYWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbiB8fCAkbmV4
dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZh
dWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0VmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUV4Y2VwdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15
ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXhjZXB0
aW9uTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJGV4Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JGRhdGFOb2RlLT5uYW1lKCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAk
ZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJl
bnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICBteSAkZXhjZXB0
aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBh
cHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7CisgICAgICAgIGFw
cGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
RXhjZXB0aW9uTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG1lbWJl
cnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uTWVtYmVyc18xLykgeworICAgICAg
ICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgICAgICNteSAkbWVtYmVyID0gJHNlbGYt
PnBhcnNlRXhjZXB0aW9uTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAg
ICAgbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICgkbWVtYmVyKSkgeworICAgICAg
ICAgICAgICAgIHB1c2goQG1lbWJlcnMsICRtZW1iZXIpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAgICAgICAgICAg
IGxhc3Q7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30KKworc3Vi
IHBhcnNlSW5oZXJpdGFuY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBwYXJl
bnQgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI6Iik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgcHVzaChAcGFyZW50LCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAg
ICAjIE11bHRpcGxlIGluaGVyaXRhbmNlPworICAgICAgICBwdXNoKEBwYXJlbnQsIEB7JHNlbGYt
PnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBwYXJlbnQ7Cit9CisK
K3N1YiBwYXJzZUVudW0KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIp
OworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJzZUVudW1WYWx1
ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKIH0KIAotc3ViIHBhcnNlUGFyYW1ldGVycworc3ViIHBhcnNlRW51bVZhbHVlcwog
ewotICAgIG15ICRuZXdEYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRtZXRob2RTaWduYXR1cmUg
PSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2VuKTsKKyAg
ICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgIH0KKyAgICByZXR1cm47Cit9CiAK
LSAgICAjIFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMgYnV0IG9ubHkgaWYgdGhlIGNvbW1hCi0g
ICAgIyBpcyBub3Qgd2l0aGluIGF0dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2VkIGhlcmUKLSAg
ICAjIGFzIGJlaW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRpbmcgJ1snLgot
ICAgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9uJ3QgbmVzdC4K
LSAgICBteSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRtZXRob2RTaWduYXR1cmUp
OwotICAgIGZvcmVhY2ggKEBwYXJhbXMpIHsKLSAgICAgICAgbXkgJGxpbmUgPSAkXzsKK3N1YiBw
YXJzZUNhbGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPSIpOworICAgICAgICAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
IAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2Vs
ZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAgICAgbXkgJHBh
cmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRw
YXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUgPSAoZGVmaW5l
ZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwot
ICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6ICIiOwotICAg
ICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJy
b3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZVR5cGVkZWYKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ0eXBlZGVmIik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdCgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBteSAkaXNOdWxsYWJsZSA9
ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNlSW1wbGVtZW50c1N0YXRlbWVudAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW1wbGVtZW50cyIpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlm
aWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkg
JHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRwYXJhbURhdGFO
b2RlLT5kaXJlY3Rpb24oJHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUt
Pm5hbWUoJHBhcmFtTmFtZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCRwYXJhbVR5
cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVzKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VDb25zdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUNvbnN0YW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiY29uc3QiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRzZWxmLT5wYXJz
ZUNvbnN0VHlwZSgpKTsKKyAgICAgICAgbXkgJGNvbnN0TmFtZVRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGNvbnN0TmFtZVRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZVRv
a2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI9Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNlbGYtPnBhcnNl
Q29uc3RWYWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFOb2RlLT5wYXJh
bWV0ZXJzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2RlKTsKK3N1YiBw
YXJzZUNvbnN0VmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDb25z
dFZhbHVlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIpOworICAgICAg
ICByZXR1cm4gIm51bGwiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMi8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0TGl0ZXJhbCgpOworICAgIH0KKyAgICAjIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAiICB8
ICAgfD4gIFBhcmFtOyBUWVBFIFwiJHBhcmFtVHlwZVwiIE5BTUUgXCIkcGFyYW1OYW1lXCIiIC4g
Ci0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAg
IiwgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVR
dWlldDsgICAgICAgICAgCitzdWIgcGFyc2VCb29sZWFuTGl0ZXJhbAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiKTsKKyAgICAgICAgcmV0dXJuICJ0cnVlIjsKICAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIpOworICAgICAgICBy
ZXR1cm4gImZhbHNlIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VJbnRlcmZhY2UKK3N1YiBw
YXJzZUZsb2F0TGl0ZXJhbAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkc2VjdGlvbk5hbWUgPSBzaGlmdDsKLQotICAgIG15ICRk
YXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotCi0gICAgIyBMb29rIGZvciBlbmQt
b2YtaW50ZXJmYWNlIG1hcmsKLSAgICAkZGF0YSA9fiAvfTsvZzsKLSAgICAkZGF0YSA9IHN1YnN0
cigkZGF0YSwgaW5kZXgoJGRhdGEsICRzZWN0aW9uTmFtZSksIHBvcygkZGF0YSkgLSBsZW5ndGgo
JGRhdGEpKTsKLQotICAgICRkYXRhID1+IHMvW1xuXHJdLyAvZzsKLQotICAgICMgQmVnaW5uaW5n
IG9mIHRoZSByZWdleHAgcGFyc2luZyBtYWdpYwotICAgIGlmICgkc2VjdGlvbk5hbWUgZXEgImlu
dGVyZmFjZSIgfHwgJHNlY3Rpb25OYW1lIGVxICJleGNlcHRpb24iKSB7Ci0gICAgICAgIHByaW50
ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIGludGVyZmFjZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0K
LSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAiIjsKLSAgICAgICAgbXkgJGludGVyZmFjZURh
dGEgPSAiIjsKLQotICAgICAgICAjIE1hdGNoIGlkZW50aWZpZXIgb2YgdGhlIGludGVyZmFjZSwg
YW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEgPX4gLyRJRExTdHJ1Y3R1cmU6Omlu
dGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNFeGNlcHRpb24gPSAoZGVmaW5lZCgk
MSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRl
cyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkgJGludGVyZmFj
ZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAgICAgICAgJGludGVyZmFjZURhdGEg
PSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRh
XG4pIikpOwotCi0gICAgICAgICMgRmlsbCBpbiBrbm93biBwYXJ0cyBvZiB0aGUgZG9tQ2xhc3Mg
ZGF0YXN0cnVjdHVyZSBub3cuLi4KLSAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigkaXNF
eGNlcHRpb24pOwotICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5hbWUpOwotICAg
ICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGlu
dGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChkZWZpbmVkICRleHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkgJG5ld0RhdGFO
b2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAg
ICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDb25zdHJ1Y3RvciJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
c3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAgICAgICAgICAgICRkYXRhTm9kZS0+
Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmli
dXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifS0+eyJTaWduYXR1cmUifSk7Ci0gICAg
ICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSA9ICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9eyJDb25zdHJ1Y3Rvck5hbWUifTsK
LSAgICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAg
ICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICItIik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5pdHkiKTsKKyAg
ICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIkluZmluaXR5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIkluZmluaXR5Iik7CisgICAgICAgIHJldHVybiAiSW5maW5pdHkiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIk5hTiIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJOYU4iKTsKKyAgICAgICAgcmV0dXJu
ICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQog
Ci0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBpbnRlcmZhY2VQ
YXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZvcmVhY2goQGlu
dGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0gICAgICAgICAg
ICAkbGluZSA9fiBzL1xzKi8vZzsKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVy
YXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPnBh
cmVudHM7Ci0gICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlh
bGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZp
ZXIgPSAkc2VsZi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0g
JHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICBpZiAoZGVmaW5lZCgkbmV3RGF0YU5vZGUpICYmICRxdWFsaWZpZXIgZXEg
InN0YXRpYyIpIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoMSk7CiAgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcmV0dXJuIGlmICRwYXJlbnRzT25seTsKK3N1YiBw
YXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXJpYWxpemVyIik7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRpbnRlcmZhY2VEYXRhID1+IHMv
W1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxpdCgvOy8sICRp
bnRlcmZhY2VEYXRhKTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAg
ICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIG5l
eHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgkbGluZSA9fiAvXFdhdHRy
aWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50
ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9u
UmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgcmV0dXJuOworfQogCi0g
ICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMSk7Ci0gICAgICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1
dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMykgPyAkMyA6ICIgIik7IGNob3AoJGF0
dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyk7CitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVy
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJ7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXph
dGlvblBhdHRlcm5NYXAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ9Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBh
dHRlcm5MaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiXSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChk
ZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbiki
KSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUp
ID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgCi0g
ICAgICAgICAgICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3Ig
cmVnZXhwIG1hdGNoaW5nCitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXQiKTsK
KyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0
cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRnZXR0
ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJzZVNlcmlhbGl6
YXRpb25QYXR0ZXJuTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
Z2V0dGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNl
bGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUlk
ZW50aWZpZXJzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJuOworfQogCi0g
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnNldHRlclJhaXNlc1NlbGVj
dG9yLzsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyRXhjZXB0aW9uID0gKGRlZmluZWQoJDEp
ID8gJDEgOiAiIik7CitzdWIgcGFyc2VJZGVudGlmaWVycworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgQGlkZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiLCIpOworICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRv
a2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlkZW50cywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIFxAaWRlbnRzOworfQogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3
IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkYXR0
cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygkaXNT
dGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21T
aWduYXR1cmUoKSk7CitzdWIgcGFyc2VRdWFsaWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OwogCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJp
YnV0ZURhdGFOYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
dHlwZSgkYXR0cmlidXRlRGF0YVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGF0
dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcykpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RhdGljIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0YXRpYyIpOworICAg
ICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAic3RyaW5naWZpZXIiKTsKKyAgICAgICAgcmV0dXJuICJzdHJpbmdpZmllciI7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9k
ZS0+YXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRh
Tm9kZSk7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAg
ICAgICAgICAgICAgIHByaW50ICIgIHwgIHw+ICBBdHRyaWJ1dGU7IFNUQVRJQz8gXCIkaXNTdGF0
aWNcIiBUWVBFIFwiJGF0dHJpYnV0ZVR5cGVcIiBEQVRBIE5BTUUgXCIkYXR0cmlidXRlRGF0YU5h
bWVcIiBEQVRBIFRZUEUgXCIkYXR0cmlidXRlRGF0YVR5cGVcIiBHRVQgRVhDRVBUSU9OPyBcIiRn
ZXR0ZXJFeGNlcHRpb25cIiBTRVQgRVhDRVBUSU9OPyBcIiRzZXR0ZXJFeGNlcHRpb25cIiIgLgot
ICAgICAgICAgICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAg
ICAgICAgICAgIiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykg
LiAiXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEv
KSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOwor
ICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAg
ICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAg
ICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgJHNl
dHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRhTm9k
ZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRpb24pOwotICAg
ICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0KC8s
LywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZSAhfiAvXlxz
KigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0XHMrLykgewot
ICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VNZXRob2RT
ZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiOworc3Vi
IHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXh0
ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRob2RF
eHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmlu
ZWQoJDIpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmluZWQoJDMpID8g
JDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAg
ICAgICAgICBteSAkbWV0aG9kTmFtZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5n
IGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhv
ZFNpZ25hdHVyZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291
cmNlOlxuJGxpbmVcbikiKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAg
ICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAg
ICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdl
eHAgbWF0Y2hpbmcKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21B
dHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKKyAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOwor
ICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiYXR0cmlidXRlIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBk
b21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRz
ZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgp
KTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJzZUdldCgpOworICAgICAgICBpZiAo
ZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5nZXR0
ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNlcyJ9fSk7CisgICAgICAgICAgICBw
dXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57InNldHJh
aXNlcyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVy
biAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICRsaW5lID1+
IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJG1l
dGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlSW5oZXJp
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXQiKTsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAgICAgICAgICAg
ICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CitzdWIgcGFyc2VSZWFkT25s
eQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyZWFkb25seSIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyZWFkb25seSIpOwor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAg
ICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMo
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOworc3Vi
IHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgcHJp
bnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkbWV0aG9k
VHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0aG9kRXhjZXB0aW9u
XCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwg
ICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTcGVjaWFsT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEv
KSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOwor
ICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVz
dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9k
ZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBl
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAK
LSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAg
ICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1l
dGhvZEV4Y2VwdGlvbik7CitzdWIgcGFyc2VTcGVjaWFsT3BlcmF0aW9uCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbCgpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICBteSAkcmV0dXJuVHlwZSA9
ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYg
KGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJl
LT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2Rl
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0Rh
dGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZVNwZWNpYWxzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9k
ZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFO
b2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJ
RExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRjb25z
dEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkY29u
c3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5cGUgPSAo
ZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJy
b3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiBbXTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5l
dyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29u
c3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGNvbnN0VHlwZSk7
Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29uc3RWYWx1ZSk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VTcGVjaWFs
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICAg
ICAgcmV0dXJuICJnZXR0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNl
dHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJzZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY3JlYXRvciIpOworICAgICAgICByZXR1cm4gImNy
ZWF0b3IiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGVsZXRl
ciIpOworICAgICAgICByZXR1cm4gImRlbGV0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJsZWdhY3ljYWxsZXIiKTsKKyAgICAgICAgcmV0dXJuICJs
ZWdhY3ljYWxsZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlS
ZWYgPSAkZGF0YU5vZGUtPmNvbnN0YW50czsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlS
ZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQRSBc
IiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxu
IiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJh
dG9yIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSXRlcmF0b3JSZXN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfC0tLS0+IEludGVyZmFjZTsgTkFNRSBcIiRpbnRlcmZh
Y2VOYW1lXCIiIC4KLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAg
ICAgICAgICAgICAgICAiLCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4gfC1c
biB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUl0ZXJhdG9yUmVzdAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpdGVyYXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpdGVyYXRvciIpOworICAgICAgICAkc2VsZi0+cGFyc2VPcHRpb25h
bEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAg
ICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBEZXRl
cm1pbmVQYXJzZU1vZGUKK3N1YiBwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVj
dAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsgIAotICAgIG15ICRsaW5lID0gc2hpZnQ7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUv
KSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2lu
dGVyZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lm
ICgkXyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMS8pIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Im9iamVjdCIpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlT3B0
aW9uYWxJdGVyYXRvckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRtb2RlOworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2Vu
KCksIElkZW50aWZpZXJUb2tlbik7CisgICAgfQorICAgIHJldHVybjsKIH0KIAotIyBJbnRlcm5h
bCBoZWxwZXIKLXN1YiBQcm9jZXNzU2VjdGlvbgorc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAogewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9N
T0RVTEUpIHsKLSAgICAgICAgZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZhdGFsIGVy
cm9yIVxuIikgaWYgKCRkb2N1bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0gbmV3IGlk
bERvY3VtZW50KCk7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVudCk7Ci0g
ICAgfSBlbHNpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VNb2RlIGVx
IE1PREVfRVhDRVBUSU9OKSB7Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNzKCk7Ci0g
ICAgICAgIG15ICRzZWN0aW9uTmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgPyAi
aW50ZXJmYWNlIiA6ICJleGNlcHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJzZUludGVyZmFj
ZSgkbm9kZSwgJHNlY3Rpb25OYW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8gbW9kdWxlIHNw
ZWNpZmllZCEgRmF0YWwgRXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAgICAgICBt
eSAkYXJyYXlSZWYgPSAkZG9jdW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRhcnJheVJl
ZiwgJG5vZGUpOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
IGVxICIoIikgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAg
ICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJG5hbWUpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAkbmFtZSk7CisgICAgICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50
TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKSIpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25z
fSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgQHRlbXBvcmFyeUNv
bnRlbnQgPSAiIjsKK3N1YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0K
KyAgICByZXR1cm4gIiI7CiB9CiAKLTE7CitzdWIgcGFyc2VBcmd1bWVudExpc3QKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAg
ICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAg
cHVzaChAYXJndW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgfQorICAg
IHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkg
eworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMs
ICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
bGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1
YiBwYXJzZUFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnRMaXN0XzEvKSB7CisgICAg
ICAgIG15ICRpbiA9ICRzZWxmLT5wYXJzZUluKCk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7
CisgICAgICAgIG15ICRhcmd1bWVudCA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsT3JSZXF1aXJlZEFy
Z3VtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXJndW1lbnQtPmRpcmVj
dGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7CisgICAgJHBhcmFt
RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAib3B0aW9uYWwiKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFy
c2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAi
PyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVt
b3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgor
ICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgk
dHlwZSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50
TmFtZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICByZXR1cm4g
JHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewor
ICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRh
Tm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9e
KC4qKVw/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDEpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUo
MCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlzdHMsIGUuZy4g
Im9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMvXD8vL2c7Cisg
ICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJn
dW1lbnROYW1lKCkpOworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0QXJndW1lbnROYW1lXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VB
cmd1bWVudE5hbWVLZXl3b3JkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVl
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiLi4uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIi4uLiIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAg
cmV0dXJuIDA7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkZpZWxkKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0
aW9uRmllbGRfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0
ZSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOwor
ICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOwor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBwYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsK
KyAgICAgICAgbXkgJGF0dHJzID0ge307CisgICAgICAgIG15ICRhdHRyID0gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGUoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0cn0p
IHsKKyAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAg
fQorICAgICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAg
ICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGF0dHJzLT57
JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICByZXR1cm4gJGF0dHJz
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworeworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICB3aGlsZSAoMSkgewor
ICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBteSAkYXR0ciA9ICRzZWxmLT5w
YXJzZUV4dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICAgICAgZm9yIG15ICRrZXkgKGtleXMg
JXskYXR0cn0pIHsKKyAgICAgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57JGtl
eX07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7Cit9CisKK3N1YiBwYXJzZUV4dGVu
ZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHRva2VuLT52YWx1ZSgpKTsK
KyAgICB9CisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTcGVjIGRvZXNuJyBhbGxvdyAi
W10iLiBCdXQgV2ViS2l0IHJlcXVpcmVzLgorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAnXScp
IHsKKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVk
QXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7Cisg
ICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgIG15
ICRhdHRycyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiKTsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0g
JHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gJGF0dHJzOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkYXR0cnMtPnsk
bmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7CisgICAgICAgIHJl
dHVybiAkYXR0cnM7CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsK
KyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGF0
dHJzLT57JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAgICByZXR1cm4gJGF0
dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZVJlc3QzKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9r
ZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiKTsKKyAgICAgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRv
a2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAiJiIgLiAkdG9r
ZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAifCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ8Iik7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICRu
YW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIigiKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkYXR0ci0+eyRu
YW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuICRhdHRy
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xLykgeworICAgICAg
ICBteSBAbmFtZXMgPSAoKTsKKyAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsKKyAgICAgICAg
cHVzaChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOworICAgICAgICBy
ZXR1cm4gam9pbignICcsIEBuYW1lcyk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJZGVudGlmaWVyTGlzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICAgICBwdXNo
KEBuYW1lcywgJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBuYW1lczsK
K30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lS2V5d29yZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Y3JlYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImdldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNl
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJz
dGF0aWMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJlc3RyaWN0
ZWQiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+
cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFR5
cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VTaW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJhbnkiKTsKKyAgICAgICAgcmV0dXJuICJhbnkiIC4gJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBl
XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlVW5pb25UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKCIpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
VW5pb25NZW1iZXJUeXBlcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZVVuaW9uTWVtYmVyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIo
IikgeworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiYW55IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImFueSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8xLykgewor
ICAgICAgICAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlw
ZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgfQorICAg
IHJldHVybjsKK30KKworc3ViIHBhcnNlTm9uQW55VHlwZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJCeXRlU3RyaW5nIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkJ5dGVTdHJpbmciKTsKKyAgICAg
ICAgcmV0dXJuICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9NU3RyaW5nIik7CisgICAg
ICAgIHJldHVybiAiRE9NU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiKTsKKyAgICAg
ICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIpOworICAgICAgICByZXR1cm4gInNlcXVl
bmNlPCIgLiAkdHlwZSAuICI+IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0Iik7CisgICAgICAgIHJldHVybiAib2Jq
ZWN0IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJEYXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIkRhdGUiKTsKKyAgICAgICAgcmV0dXJuICJEYXRlIiAuICRzZWxmLT5w
YXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNl
bGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVByaW1pdGl2ZVR5cGUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzEvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzIvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJvb2xlYW4iKTsKKyAgICAgICAg
cmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJieXRl
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImJ5dGUiKTsKKyAgICAgICAgcmV0dXJuICJieXRlIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJvY3RldCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJvY3RldCIpOworICAgICAgICByZXR1cm4gIm9jdGV0IjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIpOworICAgICAgICBy
ZXR1cm4gInVucmVzdHJpY3RlZCIgLiAkc2VsZi0+cGFyc2VGbG9hdFR5cGUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVucmVzdHJpY3RlZEZsb2F0VHlwZV8xLykg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlRmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZs
b2F0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImZsb2F0Iik7CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJkb3VibGUiKTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUi
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5zaWduZWQiKTsKKyAgICAgICAgcmV0
dXJuICJ1bnNpZ25lZCAiIC4gJHNlbGYtPnBhcnNlSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlSW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2hv
cnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAic2hvcnQiKTsKKyAgICAgICAgcmV0dXJuICJzaG9ydCI7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiaW50IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImludCIpOworICAgICAgICByZXR1cm4gImludCI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIik7CisgICAgICAgIGlmICgkc2Vs
Zi0+cGFyc2VPcHRpb25hbExvbmcoKSkgeworICAgICAgICAgICAgcmV0dXJuICJsb25nIGxvbmci
OworICAgICAgICB9CisgICAgICAgIHJldHVybiAibG9uZyI7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlT3B0aW9uYWxMb25nCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImxvbmci
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
bG9uZyIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1
YiBwYXJzZVR5cGVTdWZmaXgKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJbIik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIp
OworICAgICAgICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAgICAgICAgcmV0dXJuICI/IiAu
ICRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSgpOworICAgIH0KKyAgICBy
ZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJldHVybiAiW10i
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisK
K3N1YiBwYXJzZU51bGwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/Iik7Cisg
ICAgICAgIHJldHVybiAiPyI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNl
UmV0dXJuVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ2b2lkIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInZvaWQiKTsK
KyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxk
XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRz
IikgeworICAgICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0
c0dldHRlcigpOworICAgICAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMTsKKyAgICAgICAgJGF0
dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAk
c2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0R2V0XzEvKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIg
cGFyc2VJbmhlcml0c0dldHRlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhl
cml0cyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJpbmhlcml0cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlU2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
YXR0ciA9IHt9OworICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAwOworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIi
KSB7CisgICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2Vz
KCk7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2Vz
MigpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9IFtdOworICAg
ICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlcygpOworICAg
ICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRTZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXRHZXRS
YWlzZXMyKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2VzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0
ZXIiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsK
KyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlzZXMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZVNldEdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRT
ZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRhdHRy
LT57ImluaGVyaXRzIn0gPSAwOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxm
LT5wYXJzZUdldFJhaXNlczMoKTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAkc2Vs
Zi0+cGFyc2VTZXRSYWlzZXMzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VHZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImdldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJnZXRyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2Vw
dGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlz
ZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHJhaXNlcyIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXRyYWlzZXMi
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15IEBleGNlcHRpb25zID0gKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOwor
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHB1c2goQGV4
Y2VwdGlvbnMsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1c2goQGV4Y2VwdGlvbnMsIEB7
JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuIFxAZXhjZXB0aW9u
czsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
RXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZURl
ZmluaXRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0
aW9uXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNl
T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWwoe30pOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VEaWN0aW9uYXJ5T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhj
ZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uT2xkKCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUVudW1PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZih7fSk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50
c1N0YXRlbWVudCh7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTW9kdWxlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgbXkgJGRvY3VtZW50
ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIik7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRkb2N1bWVu
dC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0aW9ucyA9ICRz
ZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHskZG9jdW1lbnQtPmNsYXNz
ZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWxTZW1p
Y29sb24oKTsKKyAgICAgICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIg
cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxs
YmFja1Jlc3RPckludGVyZmFjZSh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlT2xk
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0g
bmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAg
ICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5u
YW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMCk7
CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVy
aXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJ7Iik7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNl
SW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUs
ICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qo
JGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRh
Tm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VDb25zdCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJ
dGVyYXRvck9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlPbGQKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7Cisg
ICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRz
ZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRF
eGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAg
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk9sZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21D
bGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAk
dG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkdG9r
ZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAg
ICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgp
fSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
eyIpOworICAgICAgICBteSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFj
ZU1lbWJlcnMoKTsKKyAgICAgICAgIyRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7Cisg
ICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRW51bU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVu
dW0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0
eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlTGlzdCgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVPck9w
ZXJhdGlvbk9ySXRlcmF0b3JPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2Vy
aWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoe30pOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZpZXIgPSAkc2VsZi0+cGFyc2VR
dWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0T2xkKCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpICYm
ICRxdWFsaWZpZXIgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+aXNTdGF0
aWMoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRy
aWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZU9wZXJhdGlvbk9ySXRlcmF0b3Ioe30pOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0
dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZVJlc3RPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJu
VHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0
KHt9KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRk
YXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZU9s
ZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykg
eworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmli
dXRlUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0
ZVJlc3RfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgp
OworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5l
d0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0K
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRy
aWJ1dGUiKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJz
ZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0
UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsK
KyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRn
ZXRSZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUt
PnNldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAg
fQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VJbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbiIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbiIpOworICAgICAgICBy
ZXR1cm4gImluIjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VPcHRpb25h
bFNlbWljb2xvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICB9
Cit9CisKK3N1YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KyAgICBteSAkbWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVtIChAeyRtZW1iZXJz
fSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikgeworICAgICAg
ICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAgICAgICAgICAg
IG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUNvbnN0YW50
IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwgJGl0ZW0pOwor
ICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAi
ZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorfQorCitzdWIg
YXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBpZiAoZGVmaW5l
ZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+
eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAkZGF0YU5vZGUt
PmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3
RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgbXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25z
dHJ1Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICglYXR0cmlidXRl
cyk7CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5c1swXTsKKyAg
ICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJpYnV0ZXN7JGNv
bnN0cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1l
ZENvbnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0YU5vZGUtPmNv
bnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisxOworCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0
T2JqLmNwcAppbmRleCBhOTNmOTY4ZTRmYTlmY2FjZjQ3ODQ2ZjIxYWYxOGQ3MDNiMGFkNThhLi45
ZDRjM2U0MmI0NWE4NTBiNzBlOWEzNmZiZDA2MjU0ZTdkNGNjNjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5jcHAKQEAgLTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VW5zaWdu
ZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIpCiAgICAgaW1w
bCgpLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLWxv
bmcgbG9uZyBXZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01UZXN0T2JqOjps
b25nQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgcmV0dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdBdHRy
KCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcgbmV3QXR0cikK
K3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRyKQogewogICAg
IGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNldEF0dHIobmV3
QXR0cik7CisgICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIGxvbmcg
bG9uZyBXZWJET01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1LDkgKzQyNSw3
IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50IG5l
d0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNl
dEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7
Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihl
YykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6
c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdT
dHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJE
T01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAg
aW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzdHJp
bmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NjEsMjggKzY1NywyOCBAQCB2
b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9pZE1ldGhvZCgp
OwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxvbmcg
QXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2Jq
QXJnKQordm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcs
IGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcp
CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+dm9p
ZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAgaW1w
bCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50IFdlYkRPTVRl
c3RPYmo6OmxvbmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBpbXBsKCktPmxv
bmdNZXRob2QoKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZFdpdGhBcmdz
KGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdpdGhBcmdzKGlu
dCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9i
aiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiBpbXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2Jq
QXJnKSk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0
ckFyZywgdG9XZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RP
Ymo6Om9iak1ldGhvZCgpCkBAIC02OTMsMTIgKzY4OSwxMiBAQCBXZWJET01UZXN0T2JqIFdlYkRP
TVRlc3RPYmo6Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGlt
cGwoKS0+b2JqTWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpv
YmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFy
ZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0
T2JqOjpvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBz
dHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkK
ICAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0b1dlYktpdChX
VEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNv
cmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5v
YmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOwog
fQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFy
Z3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RP
YmomIG9iakFyZykKQEAgLTg4Niw0NCArODgyLDQ0IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6b3Zl
cmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQogCiAjZW5kaWYKIAotdm9p
ZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiApCit2b2lkIFdlYkRPTVRl
c3RPYmo6OmNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSgpKTsK
KyAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6
Y29udmVydDIoY29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKCkpOworICAgIGlt
cGwoKS0+Y29udmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9i
ajo6Y29udmVydDMoY29uc3QgV2ViRE9NYyYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0
Myhjb25zdCBXZWJET01jJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0Myh0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5j
b252ZXJ0Myh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252
ZXJ0NChjb25zdCBXZWJET01kJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KGNvbnN0
IFdlYkRPTWQmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpbXBsKCktPmNvbnZlcnQ0KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQ0
KHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ1KGNv
bnN0IFdlYkRPTWUmICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDUoY29uc3QgV2ViRE9N
ZSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlt
cGwoKS0+Y29udmVydDUodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDUodG9XZWJD
b3JlKHZhbHVlKSk7CiB9CiAKIFdlYkRPTVNWR1BvaW50IFdlYkRPTVRlc3RPYmo6Om11dGFibGVQ
b2ludEZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggYmQzNzNkODM3OGYzZTM4M2Q4OTli
NGY5NTE3Nzk0OTU3ZTI5ZTRhYy4uY2FhMzZlOWQxYjJlN2UzMmQ4MDA1ZjQ3MDE1N2RiZDI3MGU3
ZmVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTc3LDggKzc3LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvcnRBdHRyKHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0
QXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hv
cnQpOwotICAgIGxvbmcgbG9uZyBBdHRyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBdHRyKGxvbmcg
bG9uZyk7CisgICAgaW50IGxvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRMb25nQXR0cihp
bnQpOwogICAgIGxvbmcgbG9uZyBsb25nTG9uZ0F0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldExv
bmdMb25nQXR0cihsb25nIGxvbmcpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bnNpZ25lZExv
bmdMb25nQXR0cigpIGNvbnN0OwpAQCAtMTQ1LDExICsxNDUsMTEgQEAgcHVibGljOgogICAgIGlu
dCByZXBsYWNlYWJsZUF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCB2b2lkTWV0aG9kKCk7
Ci0gICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Ci0gICAgbG9uZyBs
b25nIE1ldGhvZCgpOwotICAgIGxvbmcgbG9uZyBNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJn
LCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJn
KTsKKyAgICB2b2lkIHZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgaW50IGxv
bmdNZXRob2QoKTsKKyAgICBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25z
dCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAg
ICBXZWJET01UZXN0T2JqIG9iak1ldGhvZCgpOwotICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0
IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRo
QXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRPTVN0
cmluZyYgc2VyaWFsaXplZEFyZyk7CiAgICAgdm9pZCBpZGJLZXkoY29uc3QgV2ViRE9NSURCS2V5
JiBrZXkpOwpAQCAtMTgwLDExICsxODAsMTEgQEAgcHVibGljOgogI2lmIEVOQUJMRShDb25kaXRp
b24xKQogICAgIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBl
KTsKICNlbmRpZgotICAgIHZvaWQgY29udmVydDEoY29uc3QgV2ViRE9NYSYgKTsKLSAgICB2b2lk
IGNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICk7Ci0gICAgdm9pZCBjb252ZXJ0Myhjb25zdCBXZWJE
T01jJiApOwotICAgIHZvaWQgY29udmVydDQoY29uc3QgV2ViRE9NZCYgKTsKLSAgICB2b2lkIGNv
bnZlcnQ1KGNvbnN0IFdlYkRPTWUmICk7CisgICAgdm9pZCBjb252ZXJ0MShjb25zdCBXZWJET01h
JiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJET01iJiB2YWx1ZSk7CisgICAg
dm9pZCBjb252ZXJ0Myhjb25zdCBXZWJET01jJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChj
b25zdCBXZWJET01kJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2
YWx1ZSk7CiAgICAgV2ViRE9NU1ZHUG9pbnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBX
ZWJET01TVkdQb2ludCBpbW11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggNWUyYmRlNGEwNDcyYjYz
ZmJjNTNkMzAyMTAyMmIxZWQ1OWE2ZGRjNi4uMTU1MzVjMTAwNGUwY2E0NDc0NjI0NGNhMWI0ZDQ2
MmQ4ZTZiMDc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNSw3
ICsxMDUsNyBAQCBlbnVtIHsKICAgICBQUk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAg
IFBST1BfU0hPUlRfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJP
UF9BVFRSLAorICAgIFBST1BfTE9OR19BVFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAg
ICAgUFJPUF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApA
QCAtMTc3LDYgKzE3NywxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVT
ZWxmLT5zZXRVbnNpZ25lZFNob3J0QXR0cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAg
Y29yZVNlbGYtPnNldExvbmdBdHRyKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7
CiAgICAgICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRf
dWludDY0KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKQEAgLTIyNiw4ICsyMzAsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1Bf
QVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElP
TjogewpAQCAtMjM2LDggKzIzOSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENF
UFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6
ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNl
bGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRG
OChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjcs
OCArMzI5LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91
aW50KHZhbHVlLCBjb3JlU2VsZi0+dW5zaWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICBjYXNlIFBST1BfQVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2
NCh2YWx1ZSwgY29yZVNlbGYtPmF0dHIoKSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogewor
ICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAg
LTU4NiwxMiArNTg4LDEyIEBAIEdfTUFYVUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19pbnQ2NCgiYXR0ciIsIC8qIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBz
aG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIs
IC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX01JTklOVDY0LCAvKiBtaW4gKi8KLUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyog
bmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9vYmpfbG9uZy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291
bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyog
bWluICovCitHX01BWExPTkcsIC8qIG1heCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
b2JqZWN0Q2xhc3MsCkBAIC05MTcsNyArOTE5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lk
X21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50
NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05MzAsMjEgKzkzMiwyMSBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjbwogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNv
cmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwog
ICAgIH0KLSAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcs
IGNvbnZlcnRlZE9iakFyZyk7CisgICAgaXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtp
dF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xv
bmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRl
c3RPYmoqIG9iakFyZykKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dp
dGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hh
ciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpAQCAtOTU3LDcgKzk1OSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAg
IGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVz
dWx0ID0gaXRlbS0+TWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRl
ZE9iakFyZyk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCkBAIC05NzMsNyArOTc1LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9i
akFyZykKK3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0
RE9NVGVzdE9iaiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDAp
OwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTk4Niw3ICs5
ODgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbgogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcg
PSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29u
dmVydGVkT2JqQXJnLCAwKTsKICAgICB9Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIGNv
bnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRl
c3RPYmo+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZykpOwogICAgIFdlYktp
dERPTVRlc3RPYmoqIHJlc3VsdCA9IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzMwLDc4ICsxMzMyLDc4IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogKQord2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSkKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWQg
PSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0g
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHZhbHVlKTsKKyAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZh
bHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAg
ICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0t
PmNvbnZlcnQxKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkVmFsdWUp
OwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWIqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
X3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6YiogY29udmVydGVkID0gMDsKLSAgICBp
ZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3Jl
dHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Cisg
ICAgV2ViQ29yZTo6YiogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAg
ICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0Mihj
b252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01jKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWMqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmMqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmMqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDMoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0Myhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01kKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjpkKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpkKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDQoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICkKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6
ZSogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktp
dDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZSogY29udmVydGVkVmFsdWUgPSAw
OworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29y
ZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAg
IH0KLSAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ1KGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NU1ZHUG9pbnQqCkBAIC0xNTIyLDIzICsxNTI0
LDIzIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Vuc2lnbmVkX3Nob3J0X2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1CiAgICAgaXRlbS0+c2V0VW5zaWduZWRTaG9y
dEF0dHIodmFsdWUpOwogfQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
aW50NjQgcmVzdWx0ID0gaXRlbS0+YXR0cigpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPmxv
bmdBdHRyKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgdmFsdWUpCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xv
bmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zZXRBdHRyKHZhbHVlKTsKKyAgICBpdGVt
LT5zZXRMb25nQXR0cih2YWx1ZSk7CiB9CiAKIGdpbnQ2NApAQCAtMTg2NiwxNyArMTg2OCwxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7
Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwot
ICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJX
RUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0t
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlKTsKIH0KIAogZ2xvbmcKQEAgLTE5MTUs
MTkgKzE5MTIsMTQgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9n
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24o
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CiAgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFs
dWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogZ2NoYXIqCkBAIC0yMDE4LDcgKzIw
MTAsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC0yMDI5LDEyICsyMDIxLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwK
ICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBn
X3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9l
cnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVj
ZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RP
YmoqCkBAIC0yMDU0LDcgKzIwNDEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RP
YmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0y
MDY1LDEyICsyMDUyLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNj
LmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRE
T01UZXN0T2JqKgpAQCAtMjExNiw3ICsyMDk4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUK
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3Jp
cHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIxMjcsMTIgKzIxMDksNyBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktp
dDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUp
OwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwog
fQogCiBXZWJLaXRET01UZXN0T2JqKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4
IGI4ZDU3ZGUxNmE0YTIwNWI1YmY1YWVjY2UxNTE2Njg5OTUyMWFmZTMuLjg5ZTQ2ZjhlODY5Njhj
OGQ3NWZkMzg1ZDE3MTBjOWM0OTk2NDk5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKQEAgLTU4LDcgKzU4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21l
dGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzog
QSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAg
KiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtNjYsMzAgKzY2LDMwIEBAIHdl
YmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAg
KgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFy
KiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25n
QXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAv
KioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kOgorICogd2Via2l0X2RvbV90ZXN0X29i
al9sb25nX21ldGhvZDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9k
b21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgot
ICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzOgorICogd2Via2l0X2RvbV90
ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJB
cmc6IEEgI2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3Qg
Z2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK1dFQktJVF9BUEkgZ2xv
bmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kOgpAQCAtMTA0LDcgKzEwNCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChX
ZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpf
bWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJn
OiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIK
ICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC0xMTIsNyArMTEyLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwog
ICoKICoqLwogV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0T2JqKgotd2Via2l0X2RvbV90ZXN0X29i
al9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0
X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVxdWly
ZXNfYWxsX2FyZ3NfYW5kX3Rocm93czoKQEAgLTQwMCw1NyArNDAwLDU3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDE6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYQorICogQHZhbHVl
OiBBICNXZWJLaXRET01hCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01hKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9jb252ZXJ0MjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNX
ZWJLaXRET01iCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWIKICAqCiAgKiBSZXR1cm5zOgogICoK
ICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2Nv
bnZlcnQyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqIHZhbHVlKTsKIAogLyoq
CiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWMKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYwog
ICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfY29udmVydDMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYyogKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0
RE9NYyogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQ6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NZAorICogQHZh
bHVlOiBBICNXZWJLaXRET01kCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01kKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01kKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90
ZXN0X29ial9jb252ZXJ0NToKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBB
ICNXZWJLaXRET01lCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWUKICAqCiAgKiBSZXR1cm5zOgog
ICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKTsKIAog
LyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX211dGFibGVfcG9pbnRfZnVuY3Rpb246CkBAIC01
NjksMjUgKzU2OSwyNSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Vuc2lnbmVkX3Nob3J0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1
ZSk7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cjoKKyAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2Jq
CiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworV0VCS0lUX0FQSSBn
bG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHI6CisgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQHZhbHVlOiBBICNnaW50NjQKKyAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCiAgKiBS
ZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSk7Cit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFs
dWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfbG9uZ19hdHRyOgpA
QCAtOTE5LDEzICs5MTksMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dl
dHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjZ2xvbmcKLSAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRo
X3NldHRlcl9leGNlcHRpb246CkBAIC05NjQsMTMgKzk2MywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9i
aiogc2VsZgogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhf
Z2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRy
X3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTEwNTEsMTMgKzEwNDksMTIgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRE
T01UZXN0T2JqKiBzZWwKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICog
QHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUp
OwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CkBAIC0xMDc0LDEzICsxMDcxLDEyIEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25f
Y29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERP
TVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2Ny
aXB0X3N0YXRlX2F0dHJpYnV0ZToKQEAgLTExMTgsMTMgKzExMTQsMTIgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0
ZV9hdHRyaWJ1dGUKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAq
IEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAq
Ki8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJv
cik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfd2l0
aF9zcGFjZXNfYXR0cmlidXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBiZDc5MDA2NDY0Y2FmMzBlOWYyMTYz
OTFmZWZmYjgwODBkYzVhZDIxLi40YWEzZGVhMDIyNDUzZjNkOTE3YTQxY2VhNDQzNjkxNzZhMmI4
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAicmVhZE9ubHlUZXN0T2JqQXR0
ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKSwgKGludHB0
cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAic2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
aG9ydEF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9
LAogICAgIHsgInVuc2lnbmVkU2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZFNob3J0
QXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciwgTm9JbnRyaW5z
aWMgfSwKLSAgICB7ICJBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9iakF0dHIsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ0F0dHIiLCBEb250RGVsZXRl
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakxvbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakxvbmdBdHRyLCBOb0ludHJpbnNp
YyB9LAogICAgIHsgImxvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0xvbmdBdHRyKSwg
KGludHB0cl90KXNldEpTVGVzdE9iakxvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0
dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIsIE5vSW50cmlu
c2ljIH0sCiAgICAgeyAic3RyaW5nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LApAQCAtMjYyLDgg
KzI2Miw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KICAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwK
ICAgICB7ICJ2b2lkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
b2lkTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidm9pZE1ldGhv
ZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9k
V2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJNZXRob2QiLCBE
b250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZCksIChpbnRwdHJfdCkwLCBO
b0ludHJpbnNpYyB9LAotICAgIHsgIk1ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6
RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNp
YyB9LAorICAgIHsgImxvbmdNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25n
TWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm9iak1l
dGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKSwgKGlu
dHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kV2l0aEFyZ3MiLCBEb250
RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKSwgKGludHB0
cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIiwgRG9u
dERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAo
aW50cHRyX3QpMSwgTm9JbnRyaW5zaWMgfSwKQEAgLTQ2MCwxMiArNDYwLDEyIEBAIEpTVmFsdWUg
anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBQcm9wZXJ0eU5hCiB9CiAKIAotSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBqc1Rlc3RPYmpM
b25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmpl
Y3Qoc2xvdEJhc2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+YXR0cigpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGltcGwtPmxvbmdBdHRyKCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTk3OCwxMiArOTc4LDEyIEBAIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1CiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgaW1wbC0+c2V0QXR0cihzdGF0aWNfY2FzdDxsb25nIGxv
bmc+KHZhbHVlLnRvSW50ZWdlcihleGVjKSkpOworICAgIGltcGwtPnNldExvbmdBdHRyKHZhbHVl
LnRvSW50MzIoZXhlYykpOwogfQogCiAKQEAgLTExMjcsOSArMTEyNyw3IEBAIHZvaWQgc2V0SlNU
ZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc09iamVjdCwKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2
YWx1ZS50b0ludDMyKGV4ZWMpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMp
KTsKIH0KIAogCkBAIC0xMTQ5LDkgKzExNDcsNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYgog
ICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nh
c3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwotICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJpbmdU
b1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVj
KS0+dmFsdWUoZXhlYykpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAg
ICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih1c3RyaW5nVG9TdHJpbmco
dmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpKSk7CiB9CiAKIApAQCAtMTE5OSw5ICsxMTk1LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
dGhpc08KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMo
ZXhlYywgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBl
Yyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRv
VGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTEyMTAsMTIgKzEyMDQsMTAgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoq
IGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRD
b250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsK
LSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2
YWx1ZSkpOwogfQogCiAKQEAgLTEyMzYsMTIgKzEyMjgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4
ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAg
ICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZh
bHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhl
eGVjLCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xNDEwLDcg
KzE0MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMy
KGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmco
dXN0cmluZ1RvU3RyaW5nKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkuaXNFbXB0eSgpID8gVVN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YykpKTsKQEAgLTE0MTksMTEgKzE0MDksMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAg
ICBUZXN0T2JqKiBvYmpBcmcodG9UZXN0T2JqKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1w
bC0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpOworICAgIGltcGwtPnZv
aWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMp
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TG9uZ01ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVz
dE9iajo6c19pbmZvKSkKQEAgLTE0MzIsMTEgKzE0MjIsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2Jq
OjpzX2luZm8pOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihp
bXBsLT5tZXRob2QoKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwt
PmxvbmdNZXRob2QoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3Rh
dGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVl
KCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKQEAg
LTE0NDYsNyArMTQzNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqCiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxv
bmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9u
Z0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcm
IHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwg
RGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKSkpOwpAQCAtMTQ1Niw3ICsxNDQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0
ZSoKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoaW1wbC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpOworICAgIEpT
Qzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9u
Z0FyZywgc3RyQXJnLCBvYmpBcmcpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKQEAgLTE0ODMsNyArMTQ3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAg
ICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBs
KCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsK
LSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBj
b25zdCBTdHJpbmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwpAQCAtMTQ5Myw3ICsxNDgzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdp
dGhBcmdzKEV4ZWNTdGEKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUg
cmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQ
dHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKKyAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGOjpnZXRQdHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBv
YmpBcmcpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0x
NTI0LDExICsxNTE0LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShFCiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxv
bmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9u
Z0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
LnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpTQzo6SlNWYWx1
ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBs
LT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0
ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+bWV0aG9k
UmV0dXJuaW5nU2VxdWVuY2UobG9uZ0FyZykpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIApAQCAtMjEwMywxMCArMjA5MywxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QyKAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IH0KIAotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVj
KSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
ICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBBcmcpOworICAgIGltcGwtPm92ZXJs
b2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yMTM3LDEwICsyMTI3LDEwIEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDQoCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4o
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0lu
dGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAgaW1wbC0+b3Zl
cmxvYWRlZE1ldGhvZChsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCkBAIC0yNDQwLDEwICsyNDMwLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGV4ZWMpKTsKLSAgICBhKiAodG9hKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBhKiB2YWx1ZSh0b2EoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKLSAgICBpbXBsLT5jb252ZXJ0MSgpOworICAgIGltcGwtPmNvbnZlcnQxKHZhbHVlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDU3LDEw
ICsyNDQ3LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9
IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVj
LT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBiKiAodG9iKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBi
KiB2YWx1ZSh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0MigpOwor
ICAgIGltcGwtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDc0LDEwICsyNDY0LDEwIEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MyhFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGV4ZWMpKTsKLSAgICBjKiAodG9jKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBjKiB2YWx1ZSh0b2MoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0MygpOworICAgIGltcGwtPmNvbnZlcnQzKHZhbHVlKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDkx
LDEwICsyNDgxLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db252ZXJ0NChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChl
eGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4
ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBkKiAodG9kKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBkKiB2YWx1ZSh0b2QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0NCgp
OworICAgIGltcGwtPmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNTA4LDEwICsyNDk4LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBlKiAodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBlKiB2YWx1ZSh0b2UoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0NSgpOworICAgIGltcGwtPmNvbnZlcnQ1KHZhbHVl
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgK
aW5kZXggM2E3ZTljYzI3MWQ4YjU0N2E4NDU3NTNiNjUwYWNlMTlmMjgwNDAzMi4uNjM5OTMyMGNl
MGI5NTFmYzcwNzY3OTAyNWRjNjU1Mjg2YWMyZjU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMTU0LDggKzE1NCw4
IEBAIHByb3RlY3RlZDoKIAogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9p
ZE1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoSlNDOjpFeGVjU3Rh
dGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9k
KEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUq
KTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3Mo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0M6OkV4ZWNTdGF0
ZSopOwpAQCAtMjI5LDggKzIyOSw4IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lCiB2b2lkIHNl
dEpTVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpT
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpTVmFsdWUganNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6
OkpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rl
c3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2Jq
VW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCA0MmU1NGNhMmZmYzlkN2NjNmFjOGQ2YmUw
YjE0MjU0YTAyNzA5OWQ1Li42MWQ5NzBjMDdlMzE5NjY3YTc5Y2YyNzliYjM0OWQxY2FkN2MyNzU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9E
T01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oCkBAIC03Miw4ICs3Miw4IEBAIGVudW0gewogLSAodm9pZClzZXRTaG9y
dEF0dHI6KHNob3J0KW5ld1Nob3J0QXR0cjsKIC0gKHVuc2lnbmVkIHNob3J0KXVuc2lnbmVkU2hv
cnRBdHRyOwogLSAodm9pZClzZXRVbnNpZ25lZFNob3J0QXR0cjoodW5zaWduZWQgc2hvcnQpbmV3
VW5zaWduZWRTaG9ydEF0dHI7Ci0tIChsb25nIGxvbmcpQXR0cjsKLS0gKHZvaWQpc2V0QXR0cjoo
bG9uZyBsb25nKW5ld0F0dHI7CistIChpbnQpbG9uZ0F0dHI7CistICh2b2lkKXNldExvbmdBdHRy
OihpbnQpbmV3TG9uZ0F0dHI7CiAtIChsb25nIGxvbmcpbG9uZ0xvbmdBdHRyOwogLSAodm9pZClz
ZXRMb25nTG9uZ0F0dHI6KGxvbmcgbG9uZyluZXdMb25nTG9uZ0F0dHI7CiAtICh1bnNpZ25lZCBs
b25nIGxvbmcpdW5zaWduZWRMb25nTG9uZ0F0dHI7CkBAIC0xNzAsMTggKzE3MCwxOCBAQCBlbnVt
IHsKIC0gKGludClyZXBsYWNlYWJsZUF0dHJpYnV0ZTsKIC0gKHZvaWQpc2V0UmVwbGFjZWFibGVB
dHRyaWJ1dGU6KGludCluZXdSZXBsYWNlYWJsZUF0dHJpYnV0ZTsKIC0gKHZvaWQpdm9pZE1ldGhv
ZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNT
dHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwotLSAobG9uZyBsb25n
KU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZv
aWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3Ry
QXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKGludClsb25nTWV0aG9kOworLSAo
aW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICopb2JqTWV0
aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0
ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAo
RE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3Ry
aW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmog
KiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBv
YmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNT
dHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAqKWtleTsK
IC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9NRGljdGlv
bmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9t
TWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZv
aWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilz
dHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClhZGRFdmVudExpc3Rl
bmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0
ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlz
dGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxp
c3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0
YXRlVm9pZDsKQEAgLTIxOCwxMSArMjE4LDExIEBAIGVudW0gewogLSAodm9pZClvdmVybG9hZGVk
TWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogI2VuZGlmCiAtIChET01TVkdEb2N1bWVudCAqKWdl
dFNWR0RvY3VtZW50OwotLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKTsKLS0gKHZvaWQpY29udmVy
dDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZlcnQzOihET01jICopOwotLSAodm9pZCljb252ZXJ0
NDooRE9NZCAqKTsKLS0gKHZvaWQpY29udmVydDU6KERPTWUgKik7CistICh2b2lkKWNvbnZlcnQx
OihET01hICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQyOihET01iICopdmFsdWU7CistICh2b2lk
KWNvbnZlcnQzOihET01jICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQ0OihET01kICopdmFsdWU7
CistICh2b2lkKWNvbnZlcnQ1OihET01lICopdmFsdWU7CiAtIChET01TVkdQb2ludCAqKW11dGFi
bGVQb2ludEZ1bmN0aW9uOwogLSAoRE9NU1ZHUG9pbnQgKilpbW11dGFibGVQb2ludEZ1bmN0aW9u
OwogLSAodm9pZClvcmFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCBkMDg2MTFjZjYwYzlmMTUzZmM1
OWM5MzA3OWI2MWRjZWRlNGQwYTQyLi4zMzY0Y2Y5YTY0NTA4OTFkMjk3YWFmY2EzNDUxYzNjZmI4
MTkxY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTE0MCwxNiArMTQwLDE2IEBACiAgICAgSU1QTC0+
c2V0VW5zaWduZWRTaG9ydEF0dHIobmV3VW5zaWduZWRTaG9ydEF0dHIpOwogfQogCi0tIChsb25n
IGxvbmcpQXR0cgorLSAoaW50KWxvbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5hdHRyKCk7CisgICAgcmV0dXJuIElN
UEwtPmxvbmdBdHRyKCk7CiB9CiAKLS0gKHZvaWQpc2V0QXR0cjoobG9uZyBsb25nKW5ld0F0dHIK
Ky0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdMb25nQXR0cgogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRBdHRyKG5ld0F0dHIpOwor
ICAgIElNUEwtPnNldExvbmdBdHRyKG5ld0xvbmdBdHRyKTsKIH0KIAogLSAobG9uZyBsb25nKWxv
bmdMb25nQXR0cgpAQCAtMzQ4LDkgKzM0OCw3IEBACiAtICh2b2lkKXNldEF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uOihpbnQpbmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMp
OworICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKTsKIH0KIAogLSAoaW50KWF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC0zNzks
OSArMzc3LDcgQEAKIC0gKHZvaWQpc2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KE5T
U3RyaW5nICopbmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9u
RE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogLSAoTlNTdHJpbmcgKilz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAtNDUwLDkgKzQ0Niw3IEBACiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUo
bmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJh
aXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0g
KERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcwpA
QCAtNDY5LDkgKzQ2Myw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJh
aXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6
OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZQpAQCAtNTAyLDkgKzQ5NCw3IEBACiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKTsKIAot
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSwg
ZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3Jl
KG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlCkBAIC03MjUsMjIgKzcxNSwyMiBAQAogICAg
IElNUEwtPnZvaWRNZXRob2QoKTsKIH0KIAotLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGxv
bmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmog
KilvYmpBcmcKKy0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT52b2lkTWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgSU1QTC0+dm9pZE1ldGhv
ZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAotLSAobG9uZyBs
b25nKU1ldGhvZAorLSAoaW50KWxvbmdNZXRob2QKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm1ldGhvZCgpOworICAgIHJldHVy
biBJTVBMLT5sb25nTWV0aG9kKCk7CiB9CiAKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoo
bG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9i
aiAqKW9iakFyZworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJn
OihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm1l
dGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAgIHJldHVybiBJTVBM
LT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQog
CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kCkBAIC03NDksMTAgKzczOSwxMCBAQAogICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kKCkpKTsKIH0KIAotLSAoRE9NVGVz
dE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcg
KilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistIChET01UZXN0T2JqICopb2Jq
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShv
YmpBcmcpKSkpOwogfQogCiAtIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJn
c0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
CkBAIC03OTYsMTAgKzc4NiwxMCBAQAogICAgIElNUEwtPmN1c3RvbU1ldGhvZCgpOwogfQogCi0t
ICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistICh2b2lkKWN1c3RvbU1l
dGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
Y29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT5jdXN0b21NZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNT
dHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNl
Q2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCkBAIC05OTEsMzQgKzk4MSwzNCBAQAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVydDE6KERPTWEgKikKKy0gKHZvaWQpY29udmVy
dDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQxKGNv
cmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKQorLSAodm9pZCljb252
ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVydDIo
Y29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQzOihET01jICopCistICh2b2lkKWNv
bnZlcnQzOihET01jICopdmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDMoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0
Myhjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVydDQ6KERPTWQgKikKKy0gKHZvaWQp
Y29udmVydDQ6KERPTWQgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NChjb3JlKCkpOworICAgIElNUEwtPmNvbnZl
cnQ0KGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKQorLSAodm9p
ZCljb252ZXJ0NTooRE9NZSAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQ1KGNvcmUoKSk7CisgICAgSU1QTC0+Y29u
dmVydDUoY29yZSh2YWx1ZSkpOwogfQogCiAtIChET01TVkdQb2ludCAqKW11dGFibGVQb2ludEZ1
bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwKaW5kZXggYzhhN2EwMmE5MjNiZDA0MGUzOTczOWIxZjAzMzgxZDNkOTM4NDVlYy4uOGNm
NmNmOTAyMjllZTNmZmFiM2JkYTdiZDU5NGY4OTMxMjI3Mjg5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNTEsNyArNTEsNyBA
QCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAg
ICAgc3RyaW5nQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAgICAgICAgICAg
ICB0ZXN0T2JqQXR0cjsKIAotICAgICAgICBKUywgVjgKKyAgICAgICAgLy8gSlMsIFY4CiAgICAg
ICAgIC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCiAgICAgICAg
IGF0dHJpYnV0ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgWE1MT2JqQXR0cjsKICAgICAgICAg
YXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICAgICBjcmVhdGU7CkBAIC0yMjEsMTEgKzIy
MSwxMSBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gU1ZH
RG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAKLSAgICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdB
cz1OdWxsXSBhKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1VbmRlZmluZWRdIGIpOwotICAgICAgICB2b2lkIGNvbnZlcnQzKGluIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPUZhbHNlXSBjKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NChpbiBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCk7Ci0gICAgICAgIHZvaWQgY29udmVydDUoaW4gW1Ry
ZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gZSk7Cisg
ICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0g
YSB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVydDIoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3Ry
aW5nQXM9VW5kZWZpbmVkXSBiIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0MyhpbiBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1GYWxzZV0gYyB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29u
dmVydDQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGQgdmFsdWUpOworICAgICAgICB2b2lk
IGNvbnZlcnQ1KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVmaW5lZEFzPU51
bGxTdHJpbmddIGUgdmFsdWUpOwogCiAgICAgICAgIGF0dHJpYnV0ZSBTVkdQb2ludCBtdXRhYmxl
UG9pbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2ludCBpbW11dGFibGVQ
b2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNTcwMDBmNDEzYjAzM2Q2MGM5NmIxZTU1YjkxY2UzNDY5NWFm
OGU3Yi4uYWZmMmNhMDMyZmZiYjFmNTQxOTM5ZTRkMWRkODRmNDE1ZmMyZDU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTE2MCwxOSArMTYwLDE5IEBAIHN0YXRpYyB2b2lkIHVuc2lnbmVkU2hvcnRBdHRyQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4CiAgICAgcmV0
dXJuOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEF0dHJBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQor
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9nZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLmxvbmdBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpbXAtPmF0dHIoKSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5s
b25nQXR0cigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIEF0dHJBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2b2lkIGxvbmdBdHRy
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5BdHRyLl9zZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxv
bmdBdHRyLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwotICAgIGxvbmcgbG9uZyB2ID0gdG9JbnQ2NCh2YWx1ZSk7Ci0gICAgaW1w
LT5zZXRBdHRyKFdURjo6Z2V0UHRyKHYpKTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOwor
ICAgIGltcC0+c2V0TG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00MzIsMTAgKzQz
Miw3IEBAIHN0YXRpYyB2b2lkIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvCiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBpbnQgdiA9IHRvSW50MzIodmFs
dWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJv
eHk6OnNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00NzQsMTAg
KzQ3MSw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgVjhQ
cm94eTo6c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5z
ZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAg
LTU2NywxMyArNTYxLDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai53aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3NldCIpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAg
VGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlwdFN0YXRl
OjpjdXJyZW50KCk7CiAgICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+
c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSwg
ZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIFY4UHJveHk6OnNldERPTUV4Y2Vw
dGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZv
LkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJuOwpAQCAtNTk4LDEzICs1ODksMTAgQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAg
cmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVS
YWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtF
TFkoZWMpKQotICAgICAgICBWOFByb3h5OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNv
bGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47CiB9CiAK
QEAgLTY2MiwxNiArNjUwLDEzIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0lu
c3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3Jp
cHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUp
CiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250
ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4
dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwgV1RG
OjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBWOFByb3h5
OjpzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3Rh
dGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0
SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDY0LDMwICsxMDQ5LDMwIEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAgICByZXR1
cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVYQ0VQ
VElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRF
Ul9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxP
Q0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9O
YXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZvaWRNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRob2RXaXRo
QXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7
CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9kQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01l
dGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5NZXRob2QiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxvbmdN
ZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihp
bXAtPk1ldGhvZCgpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2QoKSwg
YXJncy5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IE1l
dGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhvZFdp
dGhBcmdzIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kV2l0aEFyZ3Mi
KTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQ
VElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwg
b2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3Rh
dGljX2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcp
KSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJn
LCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQpAQCAtMTEwMywxMCArMTA4OCwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93Tm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JM
T0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVm
YXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcs
IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwg
RGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRoQXJn
cyhBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0
b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdz
LkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9k
V2l0aFNlcXVlbmNlQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTEx
MjYsOCArMTExMSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25n
LCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOwotICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2Vx
dWVuY2UoQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQs
IGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOworICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5n
U2VxdWVuY2UobG9uZ0FyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTE1NDEsOCArMTUyNiw4IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcp
OwogICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBUSU9OX0JM
T0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2Jq
QXJnLCBBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAg
IGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQogCkBAIC0xNTYzLDggKzE1NDgsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRN
ZXRob2QoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBpbXAtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7CiB9CiAKQEAgLTE3NDUsOCArMTczMCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZW5hYmxlZEF0UnVudGltZU1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05f
QkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1l
dGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAg
ICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQogCkBAIC0xNzU2LDggKzE3NDEsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6
OnRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1
bnRpbWVNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9J
bnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1
cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc2Nyw4ICsxNzUyLDggQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMShsb25nQXJnKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc3OCw4ICsxNzYzLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDJDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMihs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgyNCw4ICsxODA5
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAg
ICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZl
cnQxKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNv
bnZlcnQxKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgzNSw4
ICsxODIwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MkNhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQog
ICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAt
PmNvbnZlcnQyKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBp
bXAtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAt
MTg0Niw4ICsxODMxLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0M0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYyosICwgVjhjOjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4Yzo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAg
ICBpbXAtPmNvbnZlcnQzKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGMqLCB2YWx1ZSwgVjhjOjpI
YXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSA/IFY4Yzo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsK
KyAgICBpbXAtPmNvbnZlcnQzKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTg1Nyw4ICsxODQyLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252
ZXJ0NENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZCosICwgVjhk
OjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAw
KTsKLSAgICBpbXAtPmNvbnZlcnQ0KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGQqLCB2YWx1ZSwg
VjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkg
OiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKIH0KIApAQCAtMTg2OCw4ICsxODUzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBjb252ZXJ0NUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFy
Z3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZSos
ICwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ1KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGUqLCB2
YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRl
ZmluZWQoKTsKIH0KIApAQCAtMTkzNCw4ICsxOTE5LDggQEAgc3RhdGljIGNvbnN0IEJhdGNoZWRB
dHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJzaG9ydEF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6c2hvcnRBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OnNob3J0QXR0
ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRy
b2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6
Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndW5zaWduZWRT
aG9ydEF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7InVuc2lnbmVk
U2hvcnRBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkU2hvcnRBdHRyQXR0ckdldHRl
ciwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkU2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCi0gICAgLy8gQXR0cmlidXRlICdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJycpCi0gICAgeyJBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OkF0dHJBdHRyR2V0dGVy
LCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAg
IC8vIEF0dHJpYnV0ZSAnbG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykK
KyAgICB7ImxvbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0ckdldHRlciwg
VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAg
ICAgLy8gQXR0cmlidXRlICdsb25nTG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnJykKICAgICB7ImxvbmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0
dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0xvbmdBdHRyQXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZExvbmdMb25nQXR0cicg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQpAQCAtMjA0Niw3ICsyMDMxLDcgQEAgc3Rh
dGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAKIHN0YXRpYyBj
b25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVzdE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1l
dGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiTWV0
aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImxvbmdNZXRo
b2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ01ldGhvZENhbGxiYWNrfSwKICAgICB7Im9iak1l
dGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFja30sCiAgICAgeyJtZXRo
b2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdT
ZXF1ZW5jZUNhbGxiYWNrfSwKICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRlc3RPYmpWOEludGVy
bmFsOjpzZXJpYWxpemVkVmFsdWVDYWxsYmFja30sCkBAIC0yMTg2LDExICsyMTcxLDExIEBAIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0
T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiB2b2lk
TWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgdm9pZE1l
dGhvZFdpdGhBcmdzQXJnYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJndik7CiAgICAgcHJvdG8tPlNl
dCh2ODo6U3RyaW5nOjpOZXcoInZvaWRNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1w
bGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywg
djhVbmRlZmluZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBD
dXN0b20gU2lnbmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAgICBjb25zdCBpbnQgTWV0aG9kV2l0
aEFyZ3NBcmdjID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBNZXRo
b2RXaXRoQXJnc0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhU
ZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJl
PiBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBNZXRo
b2RXaXRoQXJnc0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6
U3RyaW5nOjpOZXcoIk1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXco
VGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCks
IE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9u
Z01ldGhvZFdpdGhBcmdzJworICAgIGNvbnN0IGludCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0g
MzsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFy
Z3NBcmd2W2xvbmdNZXRob2RXaXRoQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RP
Ymo6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxv
bmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25n
TWV0aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+
U2V0KHY4OjpTdHJpbmc6Ok5ldygibG9uZ01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRl
bXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNr
LCB2OFVuZGVmaW5lZCgpLCBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAgIC8v
IEN1c3RvbSBTaWduYXR1cmUgJ29iak1ldGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBvYmpN
ZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160899</attachid>
            <date>2012-08-27 22:24:21 -0700</date>
            <delta_ts>2012-09-18 23:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120828142411.patch</filename>
            <type>text/plain</type>
            <size>177101</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2ODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJhODZlZjY4OGQzMmE4
ZTFjZmZlZGQ4YzY4ZGIzYTJiODU5Y2ExNy4uOWJjMTc4OTE0NDg5ODJjYjc0YWYyNjA0NWYwM2Zi
NzU5ZWExODA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdHJvcyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOC0yNyAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk0ODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMUGFyc2VyLnBtCmluZGV4IDA1N2MwM2Q2YzZhMmI5MWY5M2JkZWE1YzAyYjc0OTYxYmZiODlk
NDEuLmM2YWU4OGM3MjFkNzQwZmE3MjZlMDlmNjI1ZTE4NTZiZjQzNWU2OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkBAIC0yMSw0NTEgKzIxLDIz
MjEgQEAKIAogcGFja2FnZSBJRExQYXJzZXI7CiAKK3VzZSBDbGFzczo6U3RydWN0OworCiB1c2Ug
c3RyaWN0OwotdXNlIHJlICdldmFsJzsKIAogdXNlIElQQzo6T3BlbjI7CiB1c2UgSURMU3RydWN0
dXJlOwogdXNlIHByZXByb2Nlc3NvcjsKIAotdXNlIGNvbnN0YW50IE1PREVfVU5ERUYgICAgPT4g
MDsgIyBEZWZhdWx0IG1vZGUuCi0KLXVzZSBjb25zdGFudCBNT0RFX01PRFVMRSAgPT4gMTA7ICMg
J21vZHVsZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1PREVfSU5URVJGQUNFICA9PiAxMTsgIyAn
aW50ZXJmYWNlJyBzZWN0aW9uCi11c2UgY29uc3RhbnQgTU9ERV9FWENFUFRJT04gID0+IDEyOyAj
ICdleGNlcHRpb24nIHNlY3Rpb24KLQotIyBIZWxwZXIgdmFyaWFibGVzCi1teSBAdGVtcG9yYXJ5
Q29udGVudDsKLQotbXkgJHBhcnNlTW9kZTsKLW15ICRwcmVzZXJ2ZWRQYXJzZU1vZGU7Ci0KLW15
ICRiZVF1aWV0OyAjIFNob3VsZCBub3QgZGlzcGxheSBhbnl0aGluZyBvbiBTVERPVVQ/Ci1teSAk
ZG9jdW1lbnQ7ICMgV2lsbCBob2xkIHRoZSByZXN1bHRpbmcgJ2lkbERvY3VtZW50JwotbXkgJHBh
cmVudHNPbmx5OyAjIElmIDEsIHBhcnNlIG9ubHkgZW5vdWdoIHRvIHBvcHVsYXRlIHBhcmVudHMg
bGlzdAordXNlIGNvbnN0YW50IFN0cmluZ1Rva2VuID0+IDA7Cit1c2UgY29uc3RhbnQgSW50ZWdl
clRva2VuID0+IDE7Cit1c2UgY29uc3RhbnQgRmxvYXRUb2tlbiA9PiAyOwordXNlIGNvbnN0YW50
IElkZW50aWZpZXJUb2tlbiA9PiAzOwordXNlIGNvbnN0YW50IE90aGVyVG9rZW4gPT4gNDsKK3Vz
ZSBjb25zdGFudCBFbXB0eVRva2VuID0+IDU7CisKK3N0cnVjdCggVG9rZW4gPT4geworICAgIHR5
cGUgPT4gJyQnLCAjIHR5cGUgb2YgdG9rZW4KKyAgICB2YWx1ZSA9PiAnJCcgIyB2YWx1ZSBvZiB0
b2tlbgorfSk7CisKK3N1YiBuZXcgeworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworCisgICAgbXkg
JGVtcHR5VG9rZW4gPSBUb2tlbi0+bmV3KCk7CisgICAgJGVtcHR5VG9rZW4tPnR5cGUoRW1wdHlU
b2tlbik7CisgICAgJGVtcHR5VG9rZW4tPnZhbHVlKCJlbXB0eSIpOworCisgICAgbXkgJHNlbGYg
PSB7CisgICAgICAgIERvY3VtZW50Q29udGVudCA9PiAiIiwKKyAgICAgICAgRW1wdHlUb2tlbiA9
PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAg
ICBUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgTGluZSA9PiAiIiwKKyAgICAgICAgTGlu
ZU51bWJlciA9PiAxCisgICAgfTsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKK30K
IAotc3ViIEluaXRpYWxpemVHbG9iYWxEYXRhCitzdWIgYXNzZXJ0VG9rZW5WYWx1ZQogewotICAg
IEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7Ci0KLSAgICAkcGFyc2VNb2RlID0gTU9ERV9VTkRFRjsK
LSAgICAkcHJlc2VydmVkUGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKLQotICAgICRkb2N1bWVudCA9
IDA7Ci0gICAgJHBhcmVudHNPbmx5ID0gMDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR2YWx1ZSA9IHNoaWZ0OworICAgIG15ICRsaW5lID0g
c2hpZnQ7CisgICAgbXkgJG1zZyA9ICJOZXh0IHRva2VuIHNob3VsZCBiZSAiIC4gJHZhbHVlIC4g
IiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAg
IGlmIChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAkbGluZTsKKyAg
ICB9CisgICAgZGllICRtc2cgdW5sZXNzICR0b2tlbi0+dmFsdWUoKSBlcSAkdmFsdWU7CiB9CiAK
LSMgRGVmYXVsdCBDb25zdHJ1Y3Rvcgotc3ViIG5ldworc3ViIGFzc2VydFRva2VuVHlwZQogewot
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkcmVmZXJlbmNlID0geyB9OwotCi0gICAg
SW5pdGlhbGl6ZUdsb2JhbERhdGEoKTsKLQotICAgICRiZVF1aWV0ID0gc2hpZnQ7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworICAgIGRpZSAiTmV4dCB0b2tlbidzIHR5cGUgc2hvdWxkIGJlICIgLiAkdHlwZSAuICIs
IGJ1dCAiIC4gJHRva2VuLT50eXBlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9IHVubGVzcyAk
dG9rZW4tPnR5cGUoKSBlcSAkdHlwZTsKK30KIAotICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmpl
Y3QpOwotICAgIHJldHVybiAkcmVmZXJlbmNlOworc3ViIGFzc2VydFVuZXhwZWN0ZWRUb2tlbgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkg
JGxpbmUgPSBzaGlmdDsKKyAgICBteSAkbXNnID0gIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tl
biAuICIgYXQgIiAuICRzZWxmLT57TGluZX07CisgICAgaWYgKGRlZmluZWQgKCRsaW5lKSkgewor
ICAgICAgICAkbXNnID0gJG1zZyAuICIgSURMUGFyc2VyLnBtOiIgLiAkbGluZTsKKyAgICB9Cisg
ICAgZGllICRtc2c7CiB9CiAKLSMgUmV0dXJucyB0aGUgcGFyc2VkICdpZGxEb2N1bWVudCcKIHN1
YiBQYXJzZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OwogICAgIG15ICRmaWxlTmFtZSA9IHNoaWZ0OwogICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CiAg
ICAgbXkgJHByZXByb2Nlc3NvciA9IHNoaWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0Owog
Ci0gICAgcHJpbnQgIiB8ICoqKiBTdGFydGluZyB0byBwYXJzZSAkZmlsZU5hbWUuLi5cbiB8XG4i
IHVubGVzcyAkYmVRdWlldDsKLSAgICBteSBAZG9jdW1lbnRDb250ZW50ID0gYXBwbHlQcmVwcm9j
ZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CisgICAgbXkgQGRlZmlu
aXRpb25zID0gKCk7CiAKLSAgICBteSAkZGF0YUF2YWlsYWJsZSA9IDA7CisgICAgbXkgQGxpbmVz
ID0gYXBwbHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7
CisgICAgJHNlbGYtPntMaW5lfSA9ICRsaW5lc1swXTsKKyAgICAkc2VsZi0+e0RvY3VtZW50Q29u
dGVudH0gPSBqb2luKCcgJywgQGxpbmVzKTsKIAotICAgICMgU2ltcGxlIElETCBQYXJzZXIgKHRt
KQotICAgIGZvcmVhY2ggKEBkb2N1bWVudENvbnRlbnQpIHsKLSAgICAgICAgbXkgJG5ld1BhcnNl
TW9kZSA9ICRvYmplY3QtPkRldGVybWluZVBhcnNlTW9kZSgkXyk7CisgICAgJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgZXZhbCB7CisgICAgICAgIG15ICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VEZWZp
bml0aW9ucygpOworICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgQHskcmVzdWx0fSk7CiAKLSAg
ICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgaWYg
KCRkYXRhQXZhaWxhYmxlIGVxIDApIHsKLSAgICAgICAgICAgICAgICAkZGF0YUF2YWlsYWJsZSA9
IDE7ICMgU3RhcnQgbm9kZSBidWlsZGluZy4uLgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOwotICAgICAgICAgICAgfQorICAg
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50
eXBlKCkgIT0gRW1wdHlUb2tlbikgeworICAgICAgICAgICAgZGllICJFeHBlY3QgRU9GLCBidXQg
Zm91bmQgIiAuICRuZXh0LT52YWx1ZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKICAgICAg
ICAgfQorICAgIH07CisgICAgZGllICRAIC4gIiBpbiAkZmlsZU5hbWUiIGlmICRAOworCisgICAg
ZGllICJObyBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIEBkZWZpbml0aW9uczsKKworICAgIG15ICRk
b2N1bWVudDsKKyAgICBpZiAoJCNkZWZpbml0aW9ucyA9PSAwICYmIHJlZigkZGVmaW5pdGlvbnNb
MF0pIGVxICJpZGxEb2N1bWVudCIpIHsKKyAgICAgICAgJGRvY3VtZW50ID0gJGRlZmluaXRpb25z
WzBdOworICAgIH0gZWxzZSB7CisgICAgICAgICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVudCgp
OworICAgICAgICAkZG9jdW1lbnQtPm1vZHVsZSgiIik7CisgICAgICAgIHB1c2goQHskZG9jdW1l
bnQtPmNsYXNzZXN9LCBAZGVmaW5pdGlvbnMpOworICAgIH0KKyAgICAgICAgCisgICAgZGllICJO
byBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIHJlZigkZG9jdW1lbnQpIGVxICJpZGxEb2N1bWVudCI7
CisKKyAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CisgICAgcmV0dXJuICRkb2N1
bWVudDsKK30KKworc3ViIG5leHRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
cmV0dXJuICRzZWxmLT57TmV4dFRva2VufTsKK30KKworc3ViIGdldFRva2VuCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2VufTsK
KyAgICAkc2VsZi0+e05leHRUb2tlbn0gPSAkc2VsZi0+Z2V0VG9rZW5JbnRlcm5hbCgpOworICAg
IHJldHVybiAkc2VsZi0+e1Rva2VufTsKK30KKworbXkgJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4g
PSAnXltcdFxuXHIgXSpbXG5ccl0nOworbXkgJGZsb2F0VG9rZW5QYXR0ZXJuID0gJ14oLT8oKFsw
LTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWystXT9bMC05XSspP3xbMC05XStbRWVd
WystXT9bMC05XSspKSc7CitteSAkaW50ZWdlclRva2VuUGF0dGVybiA9ICdeKC0/WzEtOV1bMC05
XSp8LT8wW1h4XVswLTlBLUZhLWZdK3wtPzBbMC03XSopJzsKK215ICRzdHJpbmdUb2tlblBhdHRl
cm4gPSAnXihcIlteXCJdKlwiKSc7CitteSAkaWRlbnRpZmllclRva2VuUGF0dGVybiA9ICdeKFtB
LVpfYS16XVswLTlBLVpfYS16XSopJzsKK215ICRvdGhlclRva2VuUGF0dGVybiA9ICdeKDo6fFwu
XC5cLnxbXlx0XG5cciAwLTlBLVpfYS16XSknOwogCi0gICAgICAgICMgVXBkYXRlIGRldGVjdGVk
IGRhdGEgc3RyZWFtIG1vZGUuLi4KLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9V
TkRFRikgewotICAgICAgICAgICAgJHBhcnNlTW9kZSA9ICRuZXdQYXJzZU1vZGU7CitzdWIgZ2V0
VG9rZW5JbnRlcm5hbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kd2hpdGVzcGFjZVRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvKCR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJu
KS8vOworICAgICAgICBteSAkc2tpcHBlZCA9ICQxOworICAgICAgICAkc2VsZi0+e0xpbmVOdW1i
ZXJ9Kysgd2hpbGUgKCRza2lwcGVkID1+IC9cbi9nKTsKKyAgICAgICAgaWYgKCRzZWxmLT57RG9j
dW1lbnRDb250ZW50fSA9fiAvXihbXlxuXHJdKykvKSB7CisgICAgICAgICAgICAkc2VsZi0+e0xp
bmV9ID0gJHNlbGYtPntMaW5lTnVtYmVyfSAuICI6IiAuICQxOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICJVbmtub3duIjsKICAgICAgICAgfQorICAgIH0K
KyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKFtcdFxuXHIgXSspLy87CisgICAg
aWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSBlcSAiIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPntFbXB0eVRva2VufTsKKyAgICB9CiAKLSAgICAgICAgcHVzaChAdGVtcG9yYXJ5Q29udGVu
dCwgJF8pOworICAgIG15ICR0b2tlbiA9IFRva2VuLT5uZXcoKTsKKyAgICBpZiAoJHNlbGYtPntE
b2N1bWVudENvbnRlbnR9ID1+IC8kZmxvYXRUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tl
bi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAg
ICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRmbG9hdFRva2VuUGF0dGVybi8vOworICAg
ICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IC8kaW50ZWdlclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKElu
dGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+
e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaW50ZWdlclRva2VuUGF0dGVybi8vOworICAgICAgICBy
ZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+
IC8kc3RyaW5nVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoU3RyaW5nVG9r
ZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVu
dENvbnRlbnR9ID1+IHMvJHN0cmluZ1Rva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRv
a2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaWRlbnRp
ZmllclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKElkZW50aWZpZXJUb2tl
bik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50
Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4g
JHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kb3Ro
ZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShPdGhlclRva2VuKTsKKyAg
ICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50
fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOwogICAg
IH0KKyAgICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0ICIgLiAkc2VsZi0+e0xpbmV9Owor
fQogCi0gICAgIyBDaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyByZW1haW5pbmcgdG8gcGFyc2Uu
Li4KLSAgICBpZiAoKCRwYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgYW5kICgkI3RlbXBvcmFyeUNv
bnRlbnQgPiAwKSkgewotICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOworbXkgJG5l
eHRBdHRyaWJ1dGVPbGRfMSA9ICdeKGF0dHJpYnV0ZXxpbmhlcml0fHJlYWRvbmx5KSQnOworbXkg
JG5leHRQcmltaXRpdmVUeXBlXzEgPSAnXihpbnR8bG9uZ3xzaG9ydHx1bnNpZ25lZCkkJzsKK215
ICRuZXh0UHJpbWl0aXZlVHlwZV8yID0gJ14oZG91YmxlfGZsb2F0fHVucmVzdHJpY3RlZCkkJzsK
K215ICRuZXh0U2V0R2V0UmFpc2VzMl8xID0gJ14oO3xnZXRyYWlzZXN8c2V0cmFpc2VzKSQnOwor
bXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58aW50fGxvbmd8b2JqZWN0fG9jdGV0
fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRu
ZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xv
Y3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEludGVyZmFjZU1l
bWJlck9sZF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8YXR0cmlidXRl
fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0
fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2Vy
aWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNp
Z25lZHx2b2lkKSQnOworbXkgJG5leHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3Rf
MSA9ICdeKDt8PSkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEg
PSAnXihzdGF0aWN8c3RyaW5naWZpZXIpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9u
T3JJdGVyYXRvcl8yID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVh
bnxieXRlfGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGludHxsZWdhY3ljYWxs
ZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1
bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRVbnJlc3RyaWN0ZWRGbG9hdFR5cGVfMSA9ICdeKGRv
dWJsZXxmbG9hdCkkJzsKK215ICRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xID0gJ14oLHxc
XSkkJzsKK215ICRuZXh0RXhjZXB0aW9uRmllbGRfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9j
dGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0VHlw
ZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVk
fHVuc2lnbmVkKSQnOworbXkgJG5leHRTcGVjaWFsc18xID0gJ14oY3JlYXRvcnxkZWxldGVyfGdl
dHRlcnxsZWdhY3ljYWxsZXJ8c2V0dGVyKSQnOworbXkgJG5leHREZWZpbml0aW9uc18xID0gJ14o
Y2FsbGJhY2t8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxpbnRlcmZhY2V8cGFydGlhbHx0eXBl
ZGVmKSQnOworbXkgJG5leHRFeGNlcHRpb25NZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8Y29uc3R8ZG91YmxlfGZsb2F0fGludHxs
b25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dEF0dHJpYnV0ZVJlc3RfMSA9ICdeKGF0dHJpYnV0ZXxyZWFkb25s
eSkkJzsKK215ICRuZXh0U2luZ2xlVHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0
ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5j
ZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEdldF8xID0gJ14oO3xn
ZXRyYWlzZXN8Z2V0dGVyfHNldHJhaXNlc3xzZXR0ZXIpJCc7CitteSAkbmV4dEFyZ3VtZW50TmFt
ZV8xID0gJ14oYXR0cmlidXRlfGNhbGxiYWNrfGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkaWN0aW9u
YXJ5fGVudW18ZXhjZXB0aW9ufGdldHRlcnxpbXBsZW1lbnRzfGluaGVyaXR8aW50ZXJmYWNlfGxl
Z2FjeWNhbGxlcnxwYXJ0aWFsfHNlcmlhbGl6ZXJ8c2V0dGVyfHN0YXRpY3xzdHJpbmdpZmllcnx0
eXBlZGVmfHVucmVzdHJpY3RlZCkkJzsKK215ICRuZXh0Q29uc3RWYWx1ZV8xID0gJ14oZmFsc2V8
dHJ1ZSkkJzsKK215ICRuZXh0Q29uc3RWYWx1ZV8yID0gJ14oLXxJbmZpbml0eXxOYU4pJCc7Citt
eSAkbmV4dERlZmluaXRpb25fMSA9ICdeKGNhbGxiYWNrfGludGVyZmFjZSkkJzsKK215ICRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xE
YXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxz
ZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0VW5z
aWduZWRJbnRlZ2VyVHlwZV8xID0gJ14oaW50fGxvbmd8c2hvcnQpJCc7CitteSAkbmV4dEludGVy
ZmFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJp
YnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0
ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNl
cXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1bnJlc3Ry
aWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0RGVmYXVsdFZhbHVlXzEgPSAnXigtfElu
ZmluaXR5fE5hTnxmYWxzZXxudWxsfHRydWUpJCc7CisKK3N1YiBwYXJzZURlZmluaXRpb25zCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAg
IHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
ICAgICBteSAkZGVmaW5pdGlvbjsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikg
eworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+
cGFyc2VEZWZpbml0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHREZWZpbml0aW9uc18xLykgeworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+
cGFyc2VEZWZpbml0aW9uT2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0
OworICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkICgkZGVmaW5pdGlvbikpIHsKKyAgICAg
ICAgICAgIHB1c2goQGRlZmluaXRpb25zLCAkZGVmaW5pdGlvbik7CisgICAgICAgIH0KICAgICB9
CisgICAgcmV0dXJuIFxAZGVmaW5pdGlvbnM7Cit9CiAKLSAgICBwcmludCAiIHwgKioqIEZpbmlz
aGVkIHBhcnNpbmchXG4iIHVubGVzcyAkYmVRdWlldDsKLSAKLSAgICAkZG9jdW1lbnQtPmZpbGVO
YW1lKCRmaWxlTmFtZSk7CitzdWIgcGFyc2VEZWZpbml0aW9uCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICByZXR1
cm4gJGRvY3VtZW50OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0aW9uXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRW51bSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
VHlwZWRlZigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJ
bXBsZW1lbnRzU3RhdGVtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9
CiAKLXN1YiBQYXJzZU1vZHVsZQorc3ViIHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZQogewotICAg
IG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiY2FsbGJhY2siKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNh
bGxiYWNrUmVzdE9ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcHJp
bnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jl
c3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIG15ICRkYXRh
ID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotICAgICRkYXRhID1+IC8kSURMU3RydWN0
dXJlOjptb2R1bGVTZWxlY3Rvci87CitzdWIgcGFyc2VJbnRlcmZhY2UKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiaW50ZXJmYWNlIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRl
cmZhY2UiKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRpbnRlcmZhY2VOYW1lVG9rZW4s
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFt
ZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7
JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJl
cnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgYXBwbHlNZW1i
ZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVu
ZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
ICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBteSAkbW9kdWxlTmFt
ZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRh
dGFcbikiKSk7Ci0gICAgJGRhdGFOb2RlLT5tb2R1bGUoJG1vZHVsZU5hbWUpOworc3ViIHBhcnNl
UGFydGlhbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcHJpbnQgIiAgfC0tLS0+IE1vZHVsZTsgTkFNRSBcIiRt
b2R1bGVOYW1lXCJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJw
YXJ0aWFsIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGVmaW5pdGlvbigk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgZHVtcEV4dGVuZGVk
QXR0cmlidXRlcworc3ViIHBhcnNlUGFydGlhbERlZmluaXRpb24KIHsKLSAgICBteSAkcGFkU3Ry
ID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJzID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICBpZiAoISV7JGF0
dHJzfSkgewotICAgICAgICByZXR1cm4gIiI7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgbXkgQHRlbXA7Ci0gICAgd2hpbGUgKCht
eSAkbmFtZSwgbXkgJHZhbHVlKSA9IGVhY2goJXskYXR0cnN9KSkgewotICAgICAgICBwdXNoKEB0
ZW1wLCAiJG5hbWU9JHZhbHVlIik7CitzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRz
ZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CiAgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgIHJldHVybiAkcGFkU3RyIC4gIlsiIC4gam9pbigiLCAiLCBAdGVtcCkgLiAi
XSI7CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSBAaW50ZXJmYWNlTWVtYmVycyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIG15ICRpbnRlcmZhY2VN
ZW1iZXI7CisKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmli
dXRlTGlzdCgpOworICAgICAgICAgICAgJGludGVyZmFjZU1lbWJlciA9ICRzZWxmLT5wYXJzZUlu
dGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0SW50ZXJmYWNlTWVtYmVyc18xLykgeworICAgICAgICAgICAgJGludGVyZmFjZU1lbWJlciA9
ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlck9sZCgpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZCAkaW50ZXJmYWNl
TWVtYmVyKSB7CisgICAgICAgICAgICBwdXNoKEBpbnRlcmZhY2VNZW1iZXJzLCAkaW50ZXJmYWNl
TWVtYmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBpbnRlcmZhY2VNZW1iZXJz
OwogfQogCi1zdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZUludGVyZmFjZU1l
bWJlcgogewotICAgIG15ICRzdHIgPSBzaGlmdDsKLSAgICAkc3RyID1+IHMvXFtccyooLiopXHMq
XF0vJDEvZzsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dElu
dGVyZmFjZU1lbWJlck9sZF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmli
dXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICBteSAlYXR0cnMgPSAoKTsKK3N1YiBwYXJzZURpY3Rpb25hcnkKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9u
YXJ5TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgd2hp
bGUgKCRzdHIgIX4gL15ccyokLykgewotICAgICAgICAjIFBhcnNlIG5hbWUKLSAgICAgICAgaWYg
KCRzdHIgIX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0
ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOworc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcnMK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRzZWxmLT5wYXJzZURp
Y3Rpb25hcnlNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8k
bmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9u
YXJ5TWVtYmVyT2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OwogICAg
ICAgICB9Ci0gICAgICAgIG15ICRuYW1lID0gJDE7Ci0gICAgICAgICRzdHIgPX4gcy9eXHMqKFtc
d1xkXSspLy87Ci0KLSAgICAgICAgaWYgKCRzdHIgPX4gL15ccyo9LykgewotICAgICAgICAgICAg
JHN0ciA9fiBzL15ccyo9Ly87Ci0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIk5hbWVkQ29uc3Ry
dWN0b3IiKSB7Ci0gICAgICAgICAgICAgICAgIyBQYXJzZSAnPScgbmFtZSAnKCcgYXJndW1lbnRz
ICcpJyAnLCc/Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZTsKLSAgICAgICAg
ICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgICAgICAg
ICAgJGNvbnN0cnVjdG9yTmFtZSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMv
XlxzKihbXHdcZF0rKS8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAg
ICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAk
c2lnbmF0dXJlID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkc2lnbmF0dXJlID1+IHMv
XiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0g
eyJDb25zdHJ1Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+ICRz
aWduYXR1cmV9OwotICAgICAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSopXCks
Py8vOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyosPy8p
IHsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1l
IiA9PiAkY29uc3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAiIn07Ci0gICAgICAgICAgICAg
ICAgICAgICRzdHIgPX4gcy9eXHMqLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidc
biIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgIyBQYXJzZSAnPScgdmFsdWUgJywnPwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+
IC9eXHMqKFteLF0qKSw/LykgewotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0g
JDE7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyokLyQx
LzsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW14sXSopLD8vLzsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0
ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAg
IyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxz
KlwoLy87Ci0gICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAgICAg
ICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5h
bWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14p
XSopXCksPy8vOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkaWUoIklu
dmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcn
IHwgJywnCi0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewotICAgICAg
ICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAiIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9Cisg
ICAgcmV0dXJuOworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmll
bGRfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAg
ICAkc2VsZi0+cGFyc2VEZWZhdWx0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlUGFydGlhbERpY3Rpb25hcnkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQorCitzdWIgcGFyc2VEZWZhdWx0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
Ij0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPSIpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGVmYXVsdFZhbHVlKCk7CisgICAg
fQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNlRGVmYXVsdFZhbHVlCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuIHx8ICRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dERlZmF1bHRWYWx1ZV8xLykgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3RWYWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNs
YXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZXhjZXB0aW9uIik7CisgICAgICAgIG15ICRleGNlcHRpb25OYW1lVG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkZXhjZXB0aW9uTmFt
ZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGV4Y2Vw
dGlvbk5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24o
MSk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUlu
aGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ7Iik7CisgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBh
cnNlRXhjZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5v
ZGUsICRleGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxp
c3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRk
YXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25NZW1iZXJzCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWVtYmVycyA9ICgpOworCisgICAgd2hpbGUg
KDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRFeGNlcHRpb25NZW1iZXJzXzEvKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgp
OworICAgICAgICAgICAgI215ICRtZW1iZXIgPSAkc2VsZi0+cGFyc2VFeGNlcHRpb25NZW1iZXIo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICBteSAkbWVtYmVyID0gJHNlbGYt
PnBhcnNlSW50ZXJmYWNlTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAg
ICAgaWYgKGRlZmluZWQgKCRtZW1iZXIpKSB7CisgICAgICAgICAgICAgICAgcHVzaChAbWVtYmVy
cywgJG1lbWJlcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKiw/
Ly87CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQg
YXR0cmlidXRlOiAnJHN0cidcbiIpOworICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQogICAg
IH0KKyAgICByZXR1cm4gXEBtZW1iZXJzOworfQorCitzdWIgcGFyc2VJbmhlcml0YW5jZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHBhcmVudCA9ICgpOworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjoi
KTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBwdXNo
KEBwYXJlbnQsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICMgTXVsdGlwbGUgaW5oZXJpdGFu
Y2U/CisgICAgICAgIHB1c2goQHBhcmVudCwgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVycygpfSk7
CisgICAgfQorICAgIHJldHVybiBcQHBhcmVudDsKK30KKworc3ViIHBhcnNlRW51bQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImVudW0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgICRzZWxmLT5wYXJz
ZUVudW1WYWx1ZUxpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
IHJldHVybiBcJWF0dHJzOworc3ViIHBhcnNlRW51bVZhbHVlTGlzdAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFy
c2VFbnVtVmFsdWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgcGFy
c2VQYXJhbWV0ZXJzCitzdWIgcGFyc2VFbnVtVmFsdWVzCiB7Ci0gICAgbXkgJG5ld0RhdGFOb2Rl
ID0gc2hpZnQ7Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9IHNoaWZ0OworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVt
VmFsdWVzKCk7CisgICAgfQorICAgIHJldHVybjsKK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRz
IGF0IGNvbW1hcyBidXQgb25seSBpZiB0aGUgY29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0
cmlidXRlIGJyYWNrZXRzLCBleHByZXNzZWQgaGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQg
YnkgYSAnXScgd2l0aG91dCBhIHByZWNlZGluZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBh
c3N1bWVzIHRoYXQgYXR0cmlidXRlcyBkb24ndCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxp
dCgvLCg/IVteW10qXF0pLywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFt
cykgewotICAgICAgICBteSAkbGluZSA9ICRfOworc3ViIHBhcnNlQ2FsbGJhY2tSZXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgICRzZWxm
LT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiki
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRsaW5lID1+IC8k
SURMU3RydWN0dXJlOjppbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3Rvci87Ci0gICAgICAgIG15ICRw
YXJhbURpcmVjdGlvbiA9ICQxOwotICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMg
PSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVz
KTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGVT
dWZmaXggPSBkZWZpbmVkKCQ0KSA/ICQ0IDogIiI7Ci0gICAgICAgIG15ICRwYXJhbU5hbWUgPSAo
ZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOworc3ViIHBhcnNlVHlwZWRlZgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInR5cGVkZWYi
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAg
ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQogCi0gICAgICAgIG15ICRpc051bGxhYmxlID0gJHBhcmFtVHlwZVN1ZmZpeCBlcSAi
PyI7CitzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBk
b21TaWduYXR1cmUoKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmRpcmVjdGlvbigkcGFyYW1E
aXJlY3Rpb24pOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+bmFtZSgkcGFyYW1OYW1lKTsKLSAg
ICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHBhcmFtVHlwZSk7Ci0gICAgICAgICRwYXJhbURh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJHBhcmFt
RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxl
KCRpc051bGxhYmxlKTsKK3N1YiBwYXJzZUNvbnN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0Iikg
eworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjb25zdCIpOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJHNlbGYtPnBhcnNlQ29uc3RUeXBlKCkpOworICAgICAg
ICBteSAkY29uc3ROYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkY29uc3ROYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29uc3ROYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkc2VsZi0+cGFyc2VDb25zdFZhbHVlKCkpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAg
ICBteSAkYXJyYXlSZWYgPSAkbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnM7Ci0gICAgICAgIHB1c2go
QCRhcnJheVJlZiwgJHBhcmFtRGF0YU5vZGUpOworc3ViIHBhcnNlQ29uc3RWYWx1ZQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMS8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUJvb2xlYW5MaXRlcmFsKCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAibnVsbCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJudWxsIik7CisgICAgICAgIHJldHVybiAibnVsbCI7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0Q29uc3RWYWx1ZV8yLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxv
YXRMaXRlcmFsKCk7CisgICAgfQorICAgICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50
ZWdlclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQogCi0gICAgICAgIHByaW50ICIgIHwgICB8PiAgUGFyYW07IFRZUEUgXCIk
cGFyYW1UeXBlXCIgTkFNRSBcIiRwYXJhbU5hbWVcIiIgLiAKLSAgICAgICAgICAgIGR1bXBFeHRl
bmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAiLCAkcGFyYW1EYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0OyAgICAgICAgICAKK3N1YiBw
YXJzZUJvb2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInRydWUi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
dHJ1ZSIpOworICAgICAgICByZXR1cm4gInRydWUiOwogICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImZhbHNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImZhbHNlIik7CisgICAgICAgIHJldHVybiAiZmFsc2UiOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7CiB9CiAKLXN1YiBQYXJzZUludGVyZmFjZQorc3ViIHBhcnNlRmxvYXRMaXRlcmFsCiB7Ci0g
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15
ICRzZWN0aW9uTmFtZSA9IHNoaWZ0OwotCi0gICAgbXkgJGRhdGEgPSBqb2luKCIiLCBAdGVtcG9y
YXJ5Q29udGVudCk7Ci0KLSAgICAjIExvb2sgZm9yIGVuZC1vZi1pbnRlcmZhY2UgbWFyawotICAg
ICRkYXRhID1+IC99Oy9nOwotICAgICRkYXRhID0gc3Vic3RyKCRkYXRhLCBpbmRleCgkZGF0YSwg
JHNlY3Rpb25OYW1lKSwgcG9zKCRkYXRhKSAtIGxlbmd0aCgkZGF0YSkpOwotCi0gICAgJGRhdGEg
PX4gcy9bXG5ccl0vIC9nOwotCi0gICAgIyBCZWdpbm5pbmcgb2YgdGhlIHJlZ2V4cCBwYXJzaW5n
IG1hZ2ljCi0gICAgaWYgKCRzZWN0aW9uTmFtZSBlcSAiaW50ZXJmYWNlIiB8fCAkc2VjdGlvbk5h
bWUgZXEgImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFyc2Ug
aW50ZXJmYWNlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsKLQotICAgICAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICIiOwotICAgICAgICBteSAkaW50ZXJmYWNlRGF0YSA9ICIiOwotCi0gICAgICAgICMg
TWF0Y2ggaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQgZW5jbG9zZWQgZGF0YS4uLgot
ICAgICAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlU2VsZWN0b3IvOwotCi0g
ICAgICAgIG15ICRpc0V4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICgkMSBlcSAnZXhjZXB0aW9u
JykgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAg
bXkgJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQyKSA/ICQyIDogIiAi
KTsgY2hvcCgkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgJGludGVyZmFj
ZU5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpc
biRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlQmFzZSA9IChkZWZpbmVkKCQ0KSA/
ICQ0IDogIiIpOwotICAgICAgICAkaW50ZXJmYWNlRGF0YSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDog
ZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0KLSAgICAgICAgIyBG
aWxsIGluIGtub3duIHBhcnRzIG9mIHRoZSBkb21DbGFzcyBkYXRhc3RydWN0dXJlIG5vdy4uLgot
ICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKCRpc0V4Y2VwdGlvbik7Ci0gICAgICAgICRk
YXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZXMgPSBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1
dGVzKTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1
Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24o
KTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUo
KSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiQ29uc3RydWN0
b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMo
JG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pOwotICAg
ICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lT
X01JU1NJTkciOwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5v
ZGUpOwotICAgICAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFt
ZWRDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9t
RnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21T
aWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgi
TmFtZWRDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIHBh
cnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRD
b25zdHJ1Y3RvciJ9LT57IlNpZ25hdHVyZSJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1l
ZENvbnN0cnVjdG9yIn17IkNvbnN0cnVjdG9yTmFtZSJ9OwotICAgICAgICAgICAgJGRhdGFOb2Rl
LT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOwotICAgICAgICB9Ci0gICAgICAgICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICItIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIi0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJJbmZpbml0eSIpOworICAgICAgICByZXR1cm4gIi1JbmZpbml0
eSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiSW5maW5pdHkiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5pdHki
KTsKKyAgICAgICAgcmV0dXJuICJJbmZpbml0eSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiTmFOIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIk5hTiIpOworICAgICAgICByZXR1cm4gIk5hTiI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5n
ZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgIyBJbmhlcml0YW5j
ZSBkZXRlY3Rpb24KLSAgICAgICAgbXkgQGludGVyZmFjZVBhcmVudHMgPSBzcGxpdCgvLC8sICRp
bnRlcmZhY2VCYXNlKTsKLSAgICAgICAgZm9yZWFjaChAaW50ZXJmYWNlUGFyZW50cykgewotICAg
ICAgICAgICAgbXkgJGxpbmUgPSAkXzsKLSAgICAgICAgICAgICRsaW5lID1+IHMvXHMqLy9nOwor
c3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAg
ICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+cGFyZW50czsKLSAgICAgICAgICAgIHB1
c2goQCRhcnJheVJlZiwgJGxpbmUpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9y
SXRlcmF0b3JfMS8pIHsKKyAgICAgICAgbXkgJHF1YWxpZmllciA9ICRzZWxmLT5wYXJzZVF1YWxp
ZmllcigpOworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVP
ck9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZp
bmVkKCRuZXdEYXRhTm9kZSkgJiYgJHF1YWxpZmllciBlcSAic3RhdGljIikgeworICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4g
JG5ld0RhdGFOb2RlOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0
cmlidXRlT2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGUoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJh
dGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlv
bk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
ICAgICByZXR1cm4gaWYgJHBhcmVudHNPbmx5Oworc3ViIHBhcnNlU2VyaWFsaXplcgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNlcmlhbGl6ZXIiKTsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZVNlcmlhbGl6ZXJSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAgICAgJGludGVyZmFjZURhdGEgPX4gcy9bXG5ccl0vIC9nOwotICAgICAgICBt
eSBAaW50ZXJmYWNlTWV0aG9kcyA9IHNwbGl0KC87LywgJGludGVyZmFjZURhdGEpOworc3ViIHBh
cnNlU2VyaWFsaXplclJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBmb3JlYWNoIG15ICRsaW5lIChA
aW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgbmV4dCBpZiAkbGluZSA9fiAvXlxzKiQv
OwotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0dHJpYnV0ZVxXLykgewotICAgICAgICAg
ICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3Rv
ci87CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6YXRp
b25QYXR0ZXJuKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkaXNT
dGF0aWMgPSBkZWZpbmVkKCQxKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlVHlwZSA9
IChkZWZpbmVkKCQyKSA/ICQyIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVc
bikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyA9
IChkZWZpbmVkKCQzKSA/ICQzIDogIiAiKTsgY2hvcCgkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1
dGVzKTsKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInsi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
eyIpOworICAgICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAg
ICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFUeXBlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAKLSAgICAgICAgICAgICAgICAoJycgPX4g
L14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdleHAgbWF0Y2hpbmcKK3N1YiBw
YXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTWFwCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIpOworICAgICAgICAkc2VsZi0+cGFyc2VJ
ZGVudGlmaWVycygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFy
c2VJZGVudGlmaWVycygpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJldHVybjsKK30K
IAotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpnZXR0ZXJSYWlzZXNT
ZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJGdldHRlckV4Y2VwdGlvbiA9IChkZWZpbmVk
KCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm5MaXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9
fiAvJElETFN0cnVjdHVyZTo6c2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAg
IG15ICRzZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJz
ZUlkZW50aWZpZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAaWRlbnRzID0g
KCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAg
ICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAgICAgcHVz
aChAaWRlbnRzLCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBpZGVudHM7Cit9CiAKLSAg
ICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRhdHRyaWJ1dGVUeXBlKTsKLSAgICAgICAg
ICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKK3N1YiBwYXJz
ZVF1YWxpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5hbWUpOwotICAgICAg
ICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRyaWJ1dGVEYXRhVHlw
ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1
dGVzKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAic3RhdGljIik7CisgICAgICAgIHJldHVybiAic3RhdGljIjsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzdHJpbmdpZmll
ciIpOworICAgICAgICByZXR1cm4gInN0cmluZ2lmaWVyIjsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAg
ICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5hdHRyaWJ1dGVzOwotICAgICAg
ICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKK3N1YiBwYXJzZUF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAg
fCAgfD4gIEF0dHJpYnV0ZTsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkYXR0cmlidXRl
VHlwZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwiIERBVEEgVFlQRSBcIiRhdHRy
aWJ1dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRlckV4Y2VwdGlvblwiIFNFVCBF
WENFUFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAgICAgICAgICAgICAgICAgIGR1
bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VBdHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVy
blR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9
ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNp
Z25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRk
YXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAgICAgJGdldHRlckV4Y2VwdGlv
biA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICAkc2V0dGVyRXhjZXB0aW9uID1+IHMvXHMr
Ly9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSA9
IHNwbGl0KC8sLywgJGdldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0
YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkc2V0dGVyRXhjZXB0aW9uKTsK
LSAgICAgICAgICAgIH0gZWxzaWYgKCRsaW5lICF+IC9eXHMqKCRJRExTdHJ1Y3R1cmU6OmV4dGVu
ZGVkQXR0cmlidXRlU3ludGF4ICk/Y29uc3RccysvKSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUg
PX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1ldGhvZFNlbGVjdG9yLyBvciBkaWUgIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7CitzdWIgcGFyc2VBdHRyaWJ1dGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgICAgICAgICAgICAgIG15ICRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVm
aW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcyk7Ci0g
ICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMik7Ci0gICAgICAgICAgICAg
ICAgbXkgJG1ldGhvZFR5cGUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJv
ciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2ROYW1l
ID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGlu
ZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kU2lnbmF0dXJlID0gKGRlZmluZWQo
JDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXQo
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3QoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICgnJyA9fiAvXi8p
OyAjIFJlc2V0IHZhcmlhYmxlcyBuZWVkZWQgZm9yIHJlZ2V4cCBtYXRjaGluZworc3ViIHBhcnNl
QXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsK
KyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOworICAgICAgICBp
ZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50
eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0KKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAg
ICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0UmVm
ID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAg
ICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRS
ZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnNl
dHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAgfQor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnJhaXNl
c1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXhjZXB0aW9uID0gKGRlZmlu
ZWQoJDEpID8gJDEgOiAiIik7CitzdWIgcGFyc2VJbmhlcml0Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBu
ZXcgZG9tRnVuY3Rpb24oKTsKK3N1YiBwYXJzZVJlYWRPbmx5Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInJlYWRvbmx5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJlYWRvbmx5Iik7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKyAgICByZXR1cm4gMDsKK30KIAotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNT
dGF0aWMoJGlzU3RhdGljKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5uYW1lKCRtZXRob2ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+dHlwZSgkbWV0aG9kVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRl
cygkbWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJh
dG9yCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8LSAgTWV0aG9kOyBT
VEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBcIiRtZXRob2RO
YW1lXCIgRVhDRVBUSU9OPyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAgICAg
ICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgIiwgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVR
dWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVNwZWNpYWxPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVy
blR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9
ICRzZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRh
dGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICRtZXRo
b2RFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUt
PnJhaXNlc0V4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsKK3N1YiBw
YXJzZVNwZWNpYWxPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTcGVjaWFsc18xLykg
eworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVNw
ZWNpYWxzKCk7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlw
ZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkg
eworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
ICAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRtZXRob2RTaWduYXR1
cmUpOworc3ViIHBhcnNlU3BlY2lhbHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAg
ICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5mdW5jdGlvbnM7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Y29uc3RhbnRT
ZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzID0g
KGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyk7
Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0VHlwZSA9IChkZWZpbmVkKCQyKSA/ICQyIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAg
bXkgJGNvbnN0TmFtZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0VmFsdWUgPSAo
ZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4p
IikpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsK
KyAgICAgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFtdOworfQogCi0g
ICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUNvbnN0YW50KCk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5uYW1lKCRjb25zdE5hbWUpOwotICAgICAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkY29uc3RUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnZhbHVlKCRjb25zdFZhbHVlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkY29uc3RFeHRl
bmRlZEF0dHJpYnV0ZXMpKTsKK3N1YiBwYXJzZVNwZWNpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1cm4gImdldHRlciI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOworICAgICAg
ICByZXR1cm4gInNldHRlciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3Jl
YXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJjcmVhdG9yIik7CisgICAgICAgIHJldHVybiAiY3JlYXRvciI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiZGVsZXRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkZWxldGVyIik7CisgICAgICAgIHJldHVybiAi
ZGVsZXRlciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVy
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImxlZ2FjeWNhbGxlciIpOworICAgICAgICByZXR1cm4gImxlZ2FjeWNhbGxlciI7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+Y29uc3Rh
bnRzOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKK3N1
YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAg
ICBwcmludCAiICB8ICAgfD4gIENvbnN0YW50OyBUWVBFIFwiJGNvbnN0VHlwZVwiIE5BTUUgXCIk
Y29uc3ROYW1lXCIgVkFMVUUgXCIkY29uc3RWYWx1ZVwiXG4iIHVubGVzcyAkYmVRdWlldDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaXRlcmF0b3IiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VJdGVyYXRvclJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSBlcSAiKCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3Qo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAi
ICB8LS0tLT4gSW50ZXJmYWNlOyBOQU1FIFwiJGludGVyZmFjZU5hbWVcIiIgLgotICAgICAgICAg
ICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0
Oworc3ViIHBhcnNlSXRlcmF0b3JSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJhdG9yIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIml0ZXJh
dG9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9i
amVjdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIHJldHVybjsKICAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIERldGVybWluZVBhcnNlTW9kZQorc3ViIHBh
cnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0CiB7Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OyAgCi0gICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIG15ICRtb2RlID0g
TU9ERV9VTkRFRjsKLSAgICBpZiAoJF8gPX4gL21vZHVsZS8pIHsKLSAgICAgICAgJG1vZGUgPSBN
T0RFX01PRFVMRTsKLSAgICB9IGVsc2lmICgkXyA9fiAvaW50ZXJmYWNlLykgewotICAgICAgICAk
bW9kZSA9IE1PREVfSU5URVJGQUNFOwotICAgIH0gZWxzaWYgKCRfID1+IC9leGNlcHRpb24vKSB7
Ci0gICAgICAgICRtb2RlID0gTU9ERV9FWENFUFRJT047CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE9wdGlvbmFsSXRl
cmF0b3JJbnRlcmZhY2VPck9iamVjdF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
T3B0aW9uYWxJdGVyYXRvckludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0Iik7CisgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gJG1vZGU7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsK
KyAgICB9CisgICAgcmV0dXJuOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIFByb2Nlc3NT
ZWN0aW9uCitzdWIgcGFyc2VPcGVyYXRpb25SZXN0CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0
OwotICAKLSAgICBpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX01PRFVMRSkgewotICAgICAgICBkaWUg
KCJUd28gbW9kdWxlcyBpbiBvbmUgZmlsZSEgRmF0YWwgZXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50
IG5lIDApOwotICAgICAgICAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKLSAgICAgICAg
JG9iamVjdC0+UGFyc2VNb2R1bGUoJGRvY3VtZW50KTsKLSAgICB9IGVsc2lmICgkcGFyc2VNb2Rl
IGVxIE1PREVfSU5URVJGQUNFIHx8ICRwYXJzZU1vZGUgZXEgTU9ERV9FWENFUFRJT04pIHsKLSAg
ICAgICAgbXkgJG5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKLSAgICAgICAgbXkgJHNlY3Rpb25OYW1l
ID0gJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSA/ICJpbnRlcmZhY2UiIDogImV4Y2VwdGlv
biI7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlSW50ZXJmYWNlKCRub2RlLCAkc2VjdGlvbk5hbWUp
OwotICAgIAotICAgICAgICBkaWUgKCJObyBtb2R1bGUgc3BlY2lmaWVkISBGYXRhbCBFcnJvciFc
biIpIGlmICgkZG9jdW1lbnQgZXEgMCk7Ci0gICAgICAgIG15ICRhcnJheVJlZiA9ICRkb2N1bWVu
dC0+Y2xhc3NlczsKLSAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbm9kZSk7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15
ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICBteSAkbmFtZSA9ICRzZWxm
LT5wYXJzZU9wdGlvbmFsSWRlbnRpZmllcigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+bmFtZSgkbmFtZSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiKCIsICRuYW1lKTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+
cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCl9KTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgIHB1
c2goQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZVJhaXNl
cygpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2Rl
OwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOworc3ViIHBhcnNl
T3B0aW9uYWxJZGVudGlmaWVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAg
ICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiAiIjsKIH0KIAot
MTsKK3N1YiBwYXJzZUFyZ3VtZW50TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dEFyZ3VtZW50TGlzdF8xLykgeworICAgICAgICBwdXNoKEBhcmd1bWVudHMs
ICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEB7JHNl
bGYtPnBhcnNlQXJndW1lbnRzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOwor
fQorCitzdWIgcGFyc2VBcmd1bWVudHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
IEBhcmd1bWVudHMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7
CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IiwiKTsKKyAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgJHNlbGYtPnBhcnNlQXJndW1lbnQo
KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAgICAgICAgbXkgJGluID0gJHNlbGYtPnBh
cnNlSW4oKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJz
ZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJGFyZ3VtZW50
ID0gJHNlbGYtPnBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgICAgICRhcmd1bWVudC0+ZGlyZWN0aW9uKCRzZWxmLT5wYXJzZUluKCkp
OworICAgICAgICByZXR1cm4gJGFyZ3VtZW50OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU9w
dGlvbmFsT3JSZXF1aXJlZEFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkcGFyYW1EYXRhTm9k
ZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKyAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvcHRpb25hbCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvcHRpb25h
bCIpOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgIyBk
b21EYXRhTm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBl
ID1+IC9eKC4qKVw/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxl
KDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVs
bGFibGUoMCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlzdHMs
IGUuZy4gIm9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMvXD8v
L2c7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VEZWZhdWx0KCk7CisgICAgICAgIHJldHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgIG15ICR0eXBlID0gJHNl
bGYtPnBhcnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVy
IGxhc3QgIj8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL14oLiopXD8kLykgeworICAgICAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAgICAgICAgfQorICAgICAg
ICAjIFJlbW92ZSBhbGwgIj8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVj
dFtdIi4KKyAgICAgICAgJHR5cGUgPX4gcy9cPy8vZzsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUt
PnR5cGUoJHR5cGUpOworICAgICAgICAkc2VsZi0+cGFyc2VFbGxpcHNpcygpOworICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAg
IHJldHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBcmd1bWVu
dE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudE5hbWVf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VFbGxpcHNpcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIuLi4iKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLi4u
Iik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIHBh
cnNlRXhjZXB0aW9uTWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlRXhjZXB0aW9uRmllbGQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUo
JHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAk
bmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0QWxsb3dFbXB0eQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgfQor
ICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIpOworICAgICAgICBteSAkYXR0cnMgPSB7
fTsKKyAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZSgpOwor
ICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGF0dHJz
LT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRhdHRyID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgIGZvciBteSAka2V5IChrZXlz
ICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRhdHRyLT57JGtleX07
CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJdIik7CisgICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkYXR0cnMgPSB7fTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7Cisg
ICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwi
KTsKKyAgICAgICAgICAgIG15ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUy
KCk7CisgICAgICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAg
ICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuICRhdHRyczsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICAjIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkuIFNwZWMgZG9lc24nIGFsbG93ICJbXSIuIEJ1dCBXZWJLaXQgcmVxdWly
ZXMuCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICddJykgeworICAgICAgICByZXR1cm4ge307
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZVJlc3QoJHRva2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIHt9Owor
fQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IigiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiKCIpOworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VBcmd1bWVudExp
c3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICIpIik7CisgICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI9Iik7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlUmVzdDIoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9CisK
KyAgICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgeworICAgICAgICAkYXR0cnMtPnskbmFt
ZX0gPSBbXTsKKyAgICB9IGVsc2UgeworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAiVkFMVUVf
SVNfTUlTU0lORyI7CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7Cit9CisKK3N1YiBwYXJzZUV4
dGVuZGVkQXR0cmlidXRlUmVzdDIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDMoJHRva2VuLT52
YWx1ZSgpKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7
CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4g
JHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmli
dXRlUmVzdDMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIiYiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiJiIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgIHJldHVybiAkbmFtZSAuICImIiAuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ8IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInwiKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAifCIgLiAkdG9rZW4tPnZh
bHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAg
bXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIoIik7CisgICAgICAgICRhdHRyLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlQXJn
dW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRF
eHRlbmRlZEF0dHJpYnV0ZVJlc3QzXzEvKSB7CisgICAgICAgIG15IEBuYW1lcyA9ICgpOworICAg
ICAgICBwdXNoKEBuYW1lcywgJG5hbWUpOworICAgICAgICBwdXNoKEBuYW1lcywgQHskc2VsZi0+
cGFyc2VJZGVudGlmaWVyTGlzdCgpfSk7CisgICAgICAgIHJldHVybiBqb2luKCcgJywgQG5hbWVz
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSk7Cit9CisKK3N1YiBwYXJzZUlkZW50aWZpZXJMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSBAbmFtZXMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG5hbWVzOworfQorCitzdWIgcGFyc2VBcmd1bWVu
dE5hbWVLZXl3b3JkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImF0dHJpYnV0ZSIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjcmVhdG9yIikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZGVsZXRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigp
LT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnki
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
ZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiaW1wbGVtZW50cyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tl
bigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXQi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJsZWdhY3ljYWxsZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+
dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
InNldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInVucmVzdHJpY3RlZCIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVR5
cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYt
PnBhcnNlVW5pb25UeXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0VHlwZV8xLykgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlU2luZ2xlVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVNp
bmdsZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYW55IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImFueSIpOworICAg
ICAgICByZXR1cm4gImFueSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJy
YXkoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8
ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmdsZVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbmlv
blR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgICRz
ZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9u
TWVtYmVyVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55Iik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0i
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZU5v
bkFueVR5cGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVu
aW9uTWVtYmVyVHlwZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3IiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib3IiKTsK
KyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCk7CisgICAgICAgICRzZWxmLT5w
YXJzZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdWIgcGFy
c2VOb25BbnlUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Tm9uQW55
VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4g
JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIkJ5dGVTdHJpbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIpOworICAgICAgICByZXR1cm4gIkJ5dGVTdHJpbmci
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJET01TdHJpbmciKTsKKyAgICAgICAgcmV0dXJuICJET01TdHJpbmci
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInNlcXVlbmNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInNlcXVlbmNlIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIpOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5w
YXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI+Iik7CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4iIC4g
JHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9i
amVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvYmplY3QiKTsKKyAgICAgICAgcmV0dXJuICJvYmplY3QiIC4gJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRhdGUiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRGF0ZSIp
OworICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZh
bHVlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBh
cnNlQ29uc3RUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Tm9uQW55
VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4g
JHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VOdWxsKCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlUHJpbWl0aXZlVHlwZQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dFByaW1pdGl2ZVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dFByaW1pdGl2ZVR5cGVfMi8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZVVucmVzdHJpY3RlZEZsb2F0VHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiYm9vbGVhbiIpOworICAgICAgICByZXR1cm4gImJvb2xlYW4iOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImJ5dGUiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYnl0ZSIpOworICAgICAgICByZXR1
cm4gImJ5dGUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9jdGV0Iikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9jdGV0
Iik7CisgICAgICAgIHJldHVybiAib2N0ZXQiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVu
cmVzdHJpY3RlZEZsb2F0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJl
c3RyaWN0ZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAidW5yZXN0cmljdGVkIik7CisgICAgICAgIHJldHVybiAidW5yZXN0cmljdGVkIiAu
ICRzZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0VW5yZXN0cmljdGVkRmxvYXRUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VGbG9hdFR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VGbG9hdFR5cGUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZmxvYXQiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZmxvYXQiKTsKKyAgICAgICAg
cmV0dXJuICJmbG9hdCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZG91Ymxl
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImRvdWJsZSIpOworICAgICAgICByZXR1cm4gImRvdWJsZSI7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJ1bnNpZ25lZCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ1bnNpZ25lZCIpOworICAgICAgICByZXR1cm4gInVuc2lnbmVkICIgLiAkc2Vs
Zi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlSW50ZWdlclR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlZ2VyVHlwZQor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzaG9ydCIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzaG9ydCIpOworICAgICAgICBy
ZXR1cm4gInNob3J0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnQiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50
Iik7CisgICAgICAgIHJldHVybiAiaW50IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJsb25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImxvbmciKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygp
KSB7CisgICAgICAgICAgICByZXR1cm4gImxvbmcgbG9uZyI7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICJsb25nIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbExvbmcKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIik7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJldHVybiAiW10i
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiPyIpOworICAgICAgICByZXR1cm4gIj8iIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZp
eFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBh
cnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiWyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIl0iKTsKKyAgICAgICAgcmV0dXJuICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3Vm
Zml4KCk7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlTnVsbAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAgICAgICAgcmV0dXJuICI/IjsKKyAg
ICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInZvaWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidm9pZCIpOworICAgICAgICByZXR1cm4gInZvaWQi
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VHZXQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5oZXJpdHMiKSB7CisgICAgICAgIG15ICRhdHRy
ID0ge307CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXRzR2V0dGVyKCk7CisgICAgICAgICRh
dHRyLT57ImluaGVyaXRzIn0gPSAxOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9IFtd
OworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlcygp
OworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRHZXRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNldEdldFJhaXNl
cygpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBwYXJzZUluaGVyaXRzR2V0dGVyCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXRzIik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VTZXRHZXRSYWlzZXMK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRhdHRyID0ge307CisgICAgJGF0dHIt
PnsiaW5oZXJpdHMifSA9IDA7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAgICAgJGF0dHItPnsi
c2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgJGF0dHItPnsi
Z2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VHZXRSYWlzZXMyKCk7CisgICAgICAgIHJldHVybiAk
YXR0cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAg
ICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gW107CisgICAgICAgICRhdHRyLT57ImdldHJhaXNl
cyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2VzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdldFJhaXNlczJfMS8pIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNldEdldFJhaXNlczIoKTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VHZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAicmFpc2VzIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNl
cHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2VzMgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107
Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJzZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAic2V0dGVyIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAicmFpc2VzIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNl
cHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2V0R2V0UmFpc2VzMgorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdldFJhaXNlczJfMS8pIHsKKyAg
ICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJGF0dHItPnsiaW5oZXJpdHMifSA9IDA7Cisg
ICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2VzMygpOwor
ICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlczMoKTsK
KyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldFJhaXNl
czMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0cmFpc2VzIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHJhaXNlcyIp
OworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAg
ICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlczMKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAic2V0cmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHJhaXNlcyIpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1
YiBwYXJzZUV4Y2VwdGlvbkxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIp
IHsKKyAgICAgICAgbXkgQGV4Y2VwdGlvbnMgPSAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIik7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcHVzaChAZXhjZXB0aW9ucywgJHRva2VuLT52YWx1
ZSgpKTsKKyAgICAgICAgcHVzaChAZXhjZXB0aW9ucywgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVy
cygpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiKSIpOworICAgICAgICByZXR1cm4gXEBleGNlcHRpb25zOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZVJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyYWlzZXMiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFp
c2VzIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAg
fQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlRGVmaW5pdGlvbk9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dERlZmluaXRpb25fMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlUGFydGlhbCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlv
bmFyeSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnlPbGQoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRW51bU9sZCgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VUeXBlZGVmKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJtb2R1bGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VNb2R1bGUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50KHt9KTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VNb2R1bGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAibW9kdWxlIikgeworICAgICAgICBteSAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJtb2R1
bGUiKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1bGUoJHRva2VuLT52YWx1
ZSgpKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb25zID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMo
KTsKKyAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+Y2xhc3Nlc30sIEB7JGRlZmluaXRpb25zfSk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIp
OworICAgICAgICAkc2VsZi0+cGFyc2VPcHRpb25hbFNlbWljb2xvbigpOworICAgICAgICByZXR1
cm4gJGRvY3VtZW50OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrT3JJbnRlcmZh
Y2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY2FsbGJhY2si
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKHt9
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50
ZXJmYWNlIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2Ui
KTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsK
KyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigwKTsKKyAgICAgICAgcHVzaChAeyRkYXRh
Tm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAg
bXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsK
KyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMpOwor
ICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZUludGVyZmFjZU1lbWJlck9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KHt9KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlck9sZF8xLykgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yT2xkKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlRGljdGlvbmFyeU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnkiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2Vs
Zi0+cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1l
bWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGlj
dGlvbmFyeU1lbWJlck9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7Cisg
ICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBl
KCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFy
c2VEZWZhdWx0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
RXhjZXB0aW9uT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIp
IHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZXhjZXB0aW9uIik7CisgICAg
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRv
a2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAg
ICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBh
cmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgIG15ICRleGNl
cHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAj
JHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlz
dCgkZGF0YU5vZGUsICRleGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0
dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
cmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFbnVtT2xkCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZW51bSIpOworICAgICAgICAkc2VsZi0+
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvck9sZAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXplcih7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMS8pIHsKKyAg
ICAgICAgbXkgJHF1YWxpZmllciA9ICRzZWxmLT5wYXJzZVF1YWxpZmllcigpOworICAgICAgICBt
eSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RPbGQoKTsK
KyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkgJiYgJHF1YWxpZmllciBlcSAic3RhdGlj
IikgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5pc1N0YXRpYygxKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVy
YXRvcl8yLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRv
cih7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0
T2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8x
LykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdE9sZCgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAg
bXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRk
YXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3Qoe30pOworICAgICAgICBpZiAoZGVm
aW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5
cGUoJHJldHVyblR5cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT2xkCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJz
ZUluaGVyaXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3RPbGQo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0T2xkCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgeworICAgICAgICBt
eSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7CisgICAgICAgIGlmICgkc2VsZi0+
cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRv
bmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIpOworICAgICAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
QWxsb3dFbXB0eSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2ln
bmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+
cGFyc2VUeXBlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBteSAkdG9rZW4gPSAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4s
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1l
KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VHZXQo
KTsKKyAgICAgICAgaWYgKGRlZmluZWQgJGdldFJlZikgeworICAgICAgICAgICAgcHVzaChAeyRu
ZXdEYXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlZi0+eyJnZXRyYWlzZXMifX0p
OworICAgICAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7
JGdldFJlZi0+eyJzZXRyYWlzZXMifX0pOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm4gJG5l
d0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUluCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImluIik7CisgICAgICAgIHJldHVybiAiaW4iOworICAgIH0KKyAg
ICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsU2VtaWNvbG9uCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgIH0KK30KKworc3ViIGFwcGx5TWVtYmVy
TGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRtZW1iZXJzID0gc2hp
ZnQ7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JG1lbWJlcnN9KSB7CisgICAgICAgIGlmIChyZWYo
JGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2Rl
LT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQ29uc3RhbnQiKSB7CisgICAgICAgICAgICBwdXNo
KEB7JGRhdGFOb2RlLT5jb25zdGFudHN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAg
ICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21GdW5jdGlvbiIpIHsKKyAgICAg
ICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpdGVtKTsKKyAgICAgICAgICAg
IG5leHQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1YiBhcHBseUV4dGVuZGVkQXR0cmlidXRl
TGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIGlmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QtPnsiQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9t
RnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25h
dHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0cnVj
dG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUt
PnBhcmFtZXRlcnN9LCBAeyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifX0p
OworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0gPSAiVkFM
VUVfSVNfTUlTU0lORyI7CisgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFO
b2RlKTsKKyAgICB9IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFt
ZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5j
dGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJl
KCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1
Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBteSAlYXR0cmlidXRlcyA9ICV7
JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn19OworICAgICAgICBt
eSBAYXR0cmlidXRlS2V5cyA9IGtleXMgKCVhdHRyaWJ1dGVzKTsKKyAgICAgICAgbXkgJGNvbnN0
cnVjdG9yTmFtZSA9ICRhdHRyaWJ1dGVLZXlzWzBdOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFO
b2RlLT5wYXJhbWV0ZXJzfSwgQHskYXR0cmlidXRlc3skY29uc3RydWN0b3JOYW1lfX0pOworICAg
ICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSA9ICRjb25z
dHJ1Y3Rvck5hbWU7CisgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2Rl
KTsKKyAgICB9CisgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7Cit9CisKKzE7CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCmluZGV4IGFhODExOTVi
YjRjZWRiOTQ1OGQ3NDZmYjMyMTA0ZTQ5NTA4MGVjNGIuLjEwZWVhZGEyNDQ3YTQ4OWJiNDI3YzBj
OWQ4MWJlODQ3YzhkNDgxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApAQCAtMTUxLDIwICsxNTEs
MjAgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRVbnNpZ25lZFNob3J0QXR0cih1bnNpZ25lZCBz
aG9ydCBuZXdVbnNpZ25lZFNob3J0QXR0cikKICAgICBpbXBsKCktPnNldFVuc2lnbmVkU2hvcnRB
dHRyKG5ld1Vuc2lnbmVkU2hvcnRBdHRyKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6
OkF0dHIoKSBjb25zdAoraW50IFdlYkRPTVRlc3RPYmo6OmxvbmdBdHRyKCkgY29uc3QKIHsKICAg
ICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gaW1wbCgpLT5h
dHRyKCk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ0F0dHIoKTsKIH0KIAotdm9pZCBXZWJET01U
ZXN0T2JqOjpzZXRBdHRyKGxvbmcgbG9uZyBuZXdBdHRyKQordm9pZCBXZWJET01UZXN0T2JqOjpz
ZXRMb25nQXR0cihpbnQgbmV3TG9uZ0F0dHIpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGltcGwoKS0+c2V0QXR0cihuZXdBdHRyKTsKKyAgICBpbXBsKCktPnNl
dExvbmdBdHRyKG5ld0xvbmdBdHRyKTsKIH0KIAogbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Omxv
bmdMb25nQXR0cigpIGNvbnN0CkBAIC00MjMsOSArNDIzLDcgQEAgdm9pZCBXZWJET01UZXN0T2Jq
OjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihpbnQgbmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24pCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJET01SYWlzZUVycm9y
KHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAgaW1wbCgpLT5zZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAK
IGludCBXZWJET01UZXN0T2JqOjphdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC00
NjIsOSArNDYwLDcgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihjb25zdCBXZWJET01TdHJpbmcmIG5ld1N0cmkKICAgICBpZiAoIWltcGwoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3RhdGljX2Nh
c3Q8V2ViRE9NRXhjZXB0aW9uQ29kZT4oZWMpKTsKKyAgICBpbXBsKCktPnNldFN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0K
IAogV2ViRE9NU3RyaW5nIFdlYkRPTVRlc3RPYmo6OnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uKCkgY29uc3QKQEAgLTY1OSwyOCArNjU1LDI4IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6dm9p
ZE1ldGhvZCgpCiAgICAgaW1wbCgpLT52b2lkTWV0aG9kKCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVz
dE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmlu
ZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCit2b2lkIFdlYkRPTVRlc3RP
Ymo6OnZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBz
dHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBz
dHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKKyAgICBpbXBsKCktPnZvaWRNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKIH0KIAotbG9uZyBsb25nIFdl
YkRPTVRlc3RPYmo6Ok1ldGhvZCgpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZCgpCiB7
CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGltcGwo
KS0+bWV0aG9kKCk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZCgpOwogfQogCi1sb25n
IGxvbmcgV2ViRE9NVGVzdE9iajo6TWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3Qg
V2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKK2ludCBX
ZWJET01UZXN0T2JqOjpsb25nTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRP
TVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAgaWYg
KCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGltcGwoKS0+bWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKKyAgICByZXR1cm4gaW1w
bCgpLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSk7CiB9CiAKIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9kKCkKQEAgLTY5
MSwxMiArNjg3LDEyIEBAIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9kKCkK
ICAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5vYmpNZXRob2QoKSkpOwog
fQogCi1XZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZFdpdGhBcmdzKGxvbmcg
bG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2Jq
JiBvYmpBcmcpCitXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZFdpdGhBcmdz
KGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gV2ViRE9N
VGVzdE9iaigpOwogCi0gICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+b2Jq
TWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOworICAgIHJl
dHVybiB0b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdB
cmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpKSk7CiB9CiAKIFdlYkRPTVRlc3RPYmogV2Vi
RE9NVGVzdE9iajo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhjb25zdCBXZWJE
T01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQpAQCAtODg0LDM2
ICs4ODAsMzYgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpvdmVybG9hZGVkTWV0aG9kMShjb25zdCBX
ZWJET01TdHJpbmcmIHR5cGUpCiAKICNlbmRpZgogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQxKGNvbnN0IFdlYkRPTWEmICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDEoY29uc3Qg
V2ViRE9NYSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGltcGwoKS0+Y29udmVydDEodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDEo
dG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDIoY29u
c3QgV2ViRE9NYiYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0Mihjb25zdCBXZWJET01i
JiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1w
bCgpLT5jb252ZXJ0Mih0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0Mih0b1dlYkNv
cmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NChjb25zdCBXZWJE
T01kJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQmIHZhbHVl
KQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNv
bnZlcnQ0KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQ0KHRvV2ViQ29yZSh2YWx1
ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmICkK
K3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDUoY29uc3QgV2ViRE9NZSYgdmFsdWUpCiB7CiAg
ICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDUo
dG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDUodG9XZWJDb3JlKHZhbHVlKSk7CiB9
CiAKIFdlYkRPTVNWR1BvaW50IFdlYkRPTVRlc3RPYmo6Om11dGFibGVQb2ludEZ1bmN0aW9uKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmgKaW5kZXggMDBmMDYwMDJkNzMzZjk2YmU1YmMwODkxMTU0MGFlM2U0NTY5
NzdmYy4uNDY1ZDQzOTA2NTgxZDViZDE0NWFhOGZlOTM2MzI5Y2I4YzY3MTRhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2Jq
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmgKQEAgLTc2LDggKzc2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvcnRBdHRy
KHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0QXR0cigpIGNvbnN0Owog
ICAgIHZvaWQgc2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQpOwotICAgIGxvbmcg
bG9uZyBBdHRyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBdHRyKGxvbmcgbG9uZyk7CisgICAgaW50
IGxvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRMb25nQXR0cihpbnQpOwogICAgIGxvbmcg
bG9uZyBsb25nTG9uZ0F0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldExvbmdMb25nQXR0cihsb25n
IGxvbmcpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bnNpZ25lZExvbmdMb25nQXR0cigpIGNv
bnN0OwpAQCAtMTQ0LDExICsxNDQsMTEgQEAgcHVibGljOgogICAgIGludCByZXBsYWNlYWJsZUF0
dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCB2b2lkTWV0aG9kKCk7Ci0gICAgdm9pZCB2b2lk
TWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcs
IGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Ci0gICAgbG9uZyBsb25nIE1ldGhvZCgpOwot
ICAgIGxvbmcgbG9uZyBNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01T
dHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKKyAgICB2b2lkIHZv
aWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcs
IGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgaW50IGxvbmdNZXRob2QoKTsKKyAg
ICBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcm
IHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICBXZWJET01UZXN0T2Jq
IG9iak1ldGhvZCgpOwotICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3MobG9uZyBs
b25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmom
IG9iakFyZyk7CisgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0Fy
ZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFy
Zyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
KGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcp
OwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0IFdlYkRPTVN0cmluZyYgc2VyaWFsaXpl
ZEFyZyk7CiAgICAgdm9pZCBpZGJLZXkoY29uc3QgV2ViRE9NSURCS2V5JiBrZXkpOwpAQCAtMTc5
LDEwICsxNzksMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShDb25kaXRpb24xKQogICAgIHZvaWQg
b3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKTsKICNlbmRpZgotICAg
IHZvaWQgY29udmVydDEoY29uc3QgV2ViRE9NYSYgKTsKLSAgICB2b2lkIGNvbnZlcnQyKGNvbnN0
IFdlYkRPTWImICk7Ci0gICAgdm9pZCBjb252ZXJ0NChjb25zdCBXZWJET01kJiApOwotICAgIHZv
aWQgY29udmVydDUoY29uc3QgV2ViRE9NZSYgKTsKKyAgICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdl
YkRPTWEmIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQyKGNvbnN0IFdlYkRPTWImIHZhbHVlKTsK
KyAgICB2b2lkIGNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQmIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZl
cnQ1KGNvbnN0IFdlYkRPTWUmIHZhbHVlKTsKICAgICBXZWJET01TVkdQb2ludCBtdXRhYmxlUG9p
bnRGdW5jdGlvbigpOwogICAgIFdlYkRPTVNWR1BvaW50IGltbXV0YWJsZVBvaW50RnVuY3Rpb24o
KTsKICAgICB2b2lkIGJhbmFuYSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApp
bmRleCBjZWZiYzA0YTQ5MDhiNTY4YWM2ZDYxMTBkMzg3YmU3YWQ2ZTgzNzc4Li5hN2I5ZjUzNDIz
YmViNzMyOWRiNzIwNTk5NmZjNDkyYzljYzNiNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmNwcApAQCAtMTAzLDcgKzEwMyw3IEBAIGVudW0gewogICAgIFBST1BfUkVBRF9PTkxZ
X1RFU1RfT0JKX0FUVFIsCiAgICAgUFJPUF9TSE9SVF9BVFRSLAogICAgIFBST1BfVU5TSUdORURf
U0hPUlRfQVRUUiwKLSAgICBQUk9QX0FUVFIsCisgICAgUFJPUF9MT05HX0FUVFIsCiAgICAgUFJP
UF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSLAogICAg
IFBST1BfU1RSSU5HX0FUVFIsCkBAIC0xNzUsNiArMTc1LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVy
dHlJZCwKICAgICAgICAgY29yZVNlbGYtPnNldFVuc2lnbmVkU2hvcnRBdHRyKChnX3ZhbHVlX2dl
dF91aW50KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX0xP
TkdfQVRUUjogeworICAgICAgICBjb3JlU2VsZi0+c2V0TG9uZ0F0dHIoKGdfdmFsdWVfZ2V0X2xv
bmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIFBST1BfVU5TSUdO
RURfTE9OR19MT05HX0FUVFI6IHsKICAgICAgICAgY29yZVNlbGYtPnNldFVuc2lnbmVkTG9uZ0xv
bmdBdHRyKChnX3ZhbHVlX2dldF91aW50NjQodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwpAQCAt
MjI0LDggKzIyOCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNldEF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSksIGVjKTsKKyAg
ICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9s
b25nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0FUVFJf
V0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0yMzQsOCArMjM3LDcgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlkLAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX1NUUklOR19B
VFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSwg
ZWMpOworICAgICAgICBjb3JlU2VsZi0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
V1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX1NFVFRFUl9F
WENFUFRJT046IHsKQEAgLTMyNSw4ICszMjcsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAg
ICAgICAgIGdfdmFsdWVfc2V0X3VpbnQodmFsdWUsIGNvcmVTZWxmLT51bnNpZ25lZFNob3J0QXR0
cigpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgUFJPUF9BVFRSOiB7Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X2ludDY0KHZhbHVlLCBjb3JlU2VsZi0+YXR0cigpKTsKKyAgICBjYXNl
IFBST1BfTE9OR19BVFRSOiB7CisgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVT
ZWxmLT5sb25nQXR0cigpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9M
T05HX0xPTkdfQVRUUjogewpAQCAtNTg0LDEyICs1ODYsMTIgQEAgR19NQVhVSU5ULCAvKiBtYXgg
Ki8KIDAsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwogICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BVFRSLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludDY0KCJhdHRyIiwgLyogbmFtZSAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGVzdF9vYmpfYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBn
aW50NjQgVGVzdE9iai5hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJh
IGRvYyBzdHVmZiBoZXJlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdfTUlOSU5UNjQsIC8qIG1pbiAqLwotR19NQVhJTlQ2NCwg
LyogbWF4ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0xPTkdf
QVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19s
b25nKCJsb25nLWF0dHIiLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9sb25nLWF0dHIiLCAvKiBz
aG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2xvbmcgVGVzdE9iai5sb25nLWF0
dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4ICovCiAwLCAvKiBk
ZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKQEAgLTkxNSw3ICs5MTcsNyBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAK
IHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZykKK3dlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9h
cmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBz
dHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTky
OCwyMSArOTMwLDIxIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdz
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvCiAgICAgICAgIGNvbnZlcnRl
ZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZE9iakFyZyk7CiAgICAgfQotICAgIGl0ZW0tPnZvaWRNZXRob2RXaXRoQXJncyhB
cmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKKyAgICBpdGVtLT52b2lkTWV0
aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwog
fQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZChXZWJLaXRET01U
ZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0
T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVt
LT5NZXRob2QoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nTWV0aG9kKCk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93
aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIq
IHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVz
dF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25n
IGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05NTUsNyArOTU3LDcgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBB
cmcsIGNvbnN0IGcKICAgICAgICAgY29udmVydGVkT2JqQXJnID0gV2ViS2l0Ojpjb3JlKG9iakFy
Zyk7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZlcnRlZE9iakFyZywgMCk7CiAg
ICAgfQotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5NZXRob2RXaXRoQXJncyhBcmcsIGNvbnZl
cnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5s
b25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpB
cmcpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTk3MSw3ICs5NzMsNyBAQCB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIH0KIAogV2Vi
S2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3Mo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywg
V2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQord2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9k
X3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBn
Y2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwpAQCAtOTg0LDcgKzk4Niw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhv
ZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uCiAgICAg
ICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBSZWZQdHI8
V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1l
dGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVk
T2JqQXJnKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogcmVzdWx0ID0gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEzMjgsNjMgKzEz
MzAsNjMgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIH0KIAogdm9pZAotd2Via2l0X2RvbV90
ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiApCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktp
dERPTWEqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdl
YkNvcmU6OmEqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQg
PSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZFZh
bHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJL
aXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVl
KTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252
ZXJ0MShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29u
dmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogKQord2Via2l0X2RvbV90
ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjpiKiBj
b252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpj
b3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7Cisg
ICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZh
bHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQot
ICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDIoY29udmVy
dGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29u
dmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6ZCogY29udmVydGVkID0g
MDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAg
ICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2
YWx1ZSk7CisgICAgV2ViQ29yZTo6ZCogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1
ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAg
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5j
b252ZXJ0NChjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZFZhbHVlKTsK
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBXZWJLaXRET01lKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwog
ICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYg
KCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1
cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAg
IFdlYkNvcmU6OmUqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAg
ICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVy
bl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDUoY29u
dmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktp
dERPTVNWR1BvaW50KgpAQCAtMTUwNSwyMyArMTUwNywyMyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF91bnNpZ25lZF9zaG9ydF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGd1c2hvcnQg
dmFsdQogICAgIGl0ZW0tPnNldFVuc2lnbmVkU2hvcnRBdHRyKHZhbHVlKTsKIH0KIAotZ2ludDY0
Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitn
bG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2ludDY0IHJlc3VsdCA9IGl0ZW0tPmF0dHIo
KTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nQXR0cigpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19h
dHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQogewogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
aXRlbS0+c2V0QXR0cih2YWx1ZSk7CisgICAgaXRlbS0+c2V0TG9uZ0F0dHIodmFsdWUpOwogfQog
CiBnaW50NjQKQEAgLTE4NDksMTcgKzE4NTEsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
YXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8K
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNl
cHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9y
KQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
V2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbih2YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJh
bChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwg
ZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bih2YWx1ZSk7CiB9CiAKIGdsb25nCkBAIC0xODk4LDE5ICsxODk1LDE0IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19h
dHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3Ry
aW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUp
OwogICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4
KHZhbHVlKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5z
ZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAg
IGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNk
ZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9t
X3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0K
KyAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1
ZSk7CiB9CiAKIGdjaGFyKgpAQCAtMjAwMSw3ICsxOTkzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2Jq
KiBzZWwKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0
T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRo
X3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdl
YktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjAxMiwxMiArMjAw
NCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0
ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMp
OwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFy
a19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwot
ICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVy
dGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKgpAQCAtMjAzNyw3ICsyMDI0LDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0
cmlidXRlX3JhaXNlcyhXZWJLaXRET00KIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3Ip
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
dHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoq
IHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjA0OCwxMiArMjAzNSw3IEBAIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9y
YWlzZXMoV2ViS2l0RE9NCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZh
bHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQot
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0g
ICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBl
Y2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zy
b21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAg
fQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKQEAgLTIwOTksNyArMjA4
MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVf
YXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2Jq
KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC0yMTEwLDEyICsyMDkyLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUK
ICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBn
X3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAg
IGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNk
ZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9t
X3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0K
KyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCA0NmI4NWQwYmU1YThkMGExZGIzZTM2ZTU0
NzNhMzNiMWE2OWNjZmVkLi4zODUwYjIxNTA4MTZhYWU5NDEwMjM2YzcxYzcwZDRiYmIzNWQ2NTYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCkBAIC01OCw3ICs1OCw3IEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAvKioK
ICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEg
I2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVz
dE9iagogICoKQEAgLTY2LDMwICs2NiwzMCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0
aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2Jq
KiBvYmpBcmcpOword2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywg
V2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X21ldGhvZDoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Q6CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJ
IGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
Zik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0
aG9kX3dpdGhfYXJnczoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9h
cmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAor
ICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzog
QSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJ
IGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRl
c3RPYmoqIG9iakFyZyk7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xv
bmdfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAvKioK
ICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZDoKQEAgLTEwNCw3ICsxMDQsNyBAQCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAv
KioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzog
QSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01U
ZXN0T2JqCiAgKgpAQCAtMTEyLDcgKzExMiw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdFQktJVF9BUEkgV2ViS2l0
RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2Vi
S2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93
aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2No
YXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdzX2FuZF90aHJvd3M6CkBA
IC00MDAsNDYgKzQwMCw0NiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9k
MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlwZQogLyoqCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
LSAqIEA6IEEgI1dlYktpdERPTWEKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYQogICoKICAqIFJl
dHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29u
dmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogKTsKK3dlYmtpdF9kb21f
dGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogdmFs
dWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDI6CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYgorICogQHZhbHVlOiBBICNX
ZWJLaXRET01iCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01iKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBXZWJLaXRET01iKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0NDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRE
T01kCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWQKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwog
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqIHZhbHVlKTsKIAogLyoqCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKLSAqIEA6IEEgI1dlYktpdERPTWUKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NZQogICoKICAq
IFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
Y29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogKTsKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSog
dmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbXV0YWJsZV9wb2ludF9mdW5j
dGlvbjoKQEAgLTU1OCwyNSArNTU4LDI1IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
dXNob3J0IHZhbHVlKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyOgor
ICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitX
RUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0
cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01UZXN0T2JqCi0gKiBAdmFsdWU6IEEgI2dpbnQ2NAorICogQHZhbHVlOiBBICNnbG9u
ZwogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKTsK
K3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19s
b25nX2F0dHI6CkBAIC05MDgsMTMgKzkwOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9h
dHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwog
ICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnbG9uZwotICogQGVy
cm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAot
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTk1MywxMyArOTUyLDEyIEBAIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0
cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagog
ICogQHZhbHVlOiBBICNnY2hhcgotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoK
ICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5n
X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRf
c3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
c3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtMTA0MCwxMyArMTAzOCwxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFp
c2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0
aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01U
ZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRl
X3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0
T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3Jp
cHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKQEAgLTEwNjMsMTMgKzEwNjAs
MTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRl
eHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0g
KiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgog
KiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlz
ZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAv
KioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlOgpAQCAtMTEwNywxMyArMTEwMywxMiBAQCB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRf
c2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9z
Y3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2Vz
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9N
VGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93
aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9y
YWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdF
cnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0
X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3Njcmlw
dF9zdGF0ZV93aXRoX3NwYWNlc19hdHRyaWJ1dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGMxNzYxNDM2ODEx
NjFhNDllNTAzOWMxNzc0YWIyMzVjZjlkMDQ0NDQuLjhiMTc2MmM4ODBiOGI1MjE4OTNhMGFmNTIy
NmY2NzQ4YjRhYmI1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICAgICB7ICJyZWFkT25s
eVRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0
dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzaG9ydEF0dHIiLCBEb250
RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialNob3J0QXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpTaG9ydEF0dHIsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRTaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVu
c2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRy
LCBOb0ludHJpbnNpYyB9LAotICAgIHsgIkF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHIpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0T2JqQXR0ciwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nQXR0ciIs
IERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0F0dHIs
IE5vSW50cmluc2ljIH0sCiAgICAgeyAibG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25n
TG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNp
YyB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0
ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJp
bmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialN0cmluZ0F0dHIsIE5vSW50cmluc2ljIH0s
CkBAIC0yNjQsOCArMjY0LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9i
alByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250
RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVNDUklQVCksIChpbnRwdHJfdCkwLCBOb0lu
dHJpbnNpYyB9LAogICAgIHsgInZvaWRNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAotICAgIHsg
Ik1ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGlu
dHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVs
ZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMs
IE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ01ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1
bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAor
ICAgIHsgImxvbmdNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCiAg
ICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpN
ZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJvYmpNZXRob2RXaXRo
QXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFy
Z3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJtZXRob2RXaXRoU2VxdWVu
Y2VBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LApAQCAtNDYxLDEyICs0NjEsMTIg
QEAgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmEKIH0KIAogCi1KU1ZhbHVlIGpzVGVzdE9iakF0dHIo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVl
IGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJv
cGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RP
YmoqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5hdHRyKCkpOworICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ0F0dHIoKSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApAQCAtOTg5LDEyICs5ODksMTIgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNo
b3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHUKIH0K
IAogCi12b2lkIHNldEpTVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpT
VGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBpbXBsLT5zZXRBdHRyKHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4odmFsdWUudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW1wbC0+c2V0TG9u
Z0F0dHIodmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKIApAQCAtMTE0Nyw5ICsxMTQ3LDcgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAg
VGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNldEF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKHZhbHVlLnRvSW50MzIoZXhlYyksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgZWMpOworICAgIGltcGwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLnRv
SW50MzIoZXhlYykpOwogfQogCiAKQEAgLTExNjksOSArMTE2Nyw3IEBAIHZvaWQgc2V0SlNUZXN0
T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBs
ID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24odXN0cmluZ1RvU3RyaW5nKHZhbHVlLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IHZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhl
YywgZWMpOworICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHVzdHJp
bmdUb1N0cmluZyh2YWx1ZS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpKTsKIH0KIAogCkBAIC0xMjE5LDkgKzEyMTUsNyBAQCB2b2lkIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiB0aGlzTwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9i
aiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0
aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMoZXhlYywgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTIzMCwxMiArMTIyNCwxMCBA
QCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAg
ICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBs
KCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFz
Y3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZh
bHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwg
dG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTI1NiwxMiArMTI0OCwxMCBAQCB2b2lkIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoRXhlY1N0YQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9i
aiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRDb250
ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBzY3JpcHRDb250ZXh0LCB0
b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAg
ICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCiAK
QEAgLTE0MzAsNyArMTQyMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9i
aiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25n
IGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQg
bG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJp
bmcmIHN0ckFyZyh1c3RyaW5nVG9TdHJpbmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywg
MSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBVU3RyaW5nKCkgOiBNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKSkpOwpAQCAtMTQzOSwxMSArMTQyOSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdz
KEV4ZWNTdAogICAgIFRlc3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKLSAgICBpbXBsLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyk7Cisg
ICAgaW1wbC0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4ZWNT
dGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhl
cml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAtMTQ1MiwxMSArMTQ0MiwxMSBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYykKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
ICZKU1Rlc3RPYmo6OnNfaW5mbyk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9
IGpzTnVtYmVyKGltcGwtPm1ldGhvZCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoaW1wbC0+bG9uZ01ldGhvZCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhB
cmdzKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhv
c3RUaGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpz
X2luZm8pKQpAQCAtMTQ2Niw3ICsxNDU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSoKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwot
ICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOwor
ICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNv
bnN0IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFVTdHJpbmcoKSA6IE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CkBAIC0xNDc2LDcgKzE0NjYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFy
Z3MoRXhlY1N0YXRlKgogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpTQzo6SlNWYWx1ZSBy
ZXN1bHQgPSBqc051bWJlcihpbXBsLT5tZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJn
KSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmxvbmdNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTUwMyw3ICsxNDkzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdz
KEV4ZWNTdGEKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdl
cihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKHVzdHJpbmdUb1N0cmluZyhNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFVT
dHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVm
aW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKSk7CkBAIC0xNTEzLDcgKzE1MDMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpT
Qzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBXVEY6OmdldFB0cihpbXBsLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJn
KSkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJn
LCBzdHJBcmcsIG9iakFyZykpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiB9CiAKQEAgLTE1NDQsMTEgKzE1MzQsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEUKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwot
ICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOwor
ICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAg
SlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIGltcGwtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEFyZykpOworICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBp
bXBsLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShsb25nQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMTIzLDEwICsyMTEzLDEwIEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDIoCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgfQogCi0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9J
bnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIEFyZyk7CisgICAg
aW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTIxNTcsMTAgKzIxNDcsMTAgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kNCgKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8
bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2QoQXJnKTsKKyAg
ICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKGxvbmdBcmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI0NjQsMTAgKzI0NTQsMTAgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQx
KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9i
aio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGEqICh0b2EoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGEqIHZhbHVlKHRvYShNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQxKCk7CisgICAgaW1wbC0+Y29udmVydDEo
dmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
QEAgLTI0ODEsMTAgKzI0NzEsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0
T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAg
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
RXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGIq
ICh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpOworICAgIGIqIHZhbHVlKHRvYihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNv
bnZlcnQyKCk7CisgICAgaW1wbC0+Y29udmVydDIodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI0OTgsMTAgKzI0ODgsMTAgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVz
dE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGQqICh0b2QoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGQqIHZhbHVlKHRvZChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAg
aWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQ0KCk7CisgICAgaW1wbC0+Y29udmVy
dDQodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKQEAgLTI1MTUsMTAgKzI1MDUsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IGUqICh0b2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOworICAgIGUqIHZhbHVlKHRvZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwt
PmNvbnZlcnQ1KCk7CisgICAgaW1wbC0+Y29udmVydDUodmFsdWUpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA3NjU0OWQ0NjE5ZThl
YmRhOWExYTc5OTA1NTM1MzI1Njg1YTk2MWRiLi5iMjhlNDk1OTU4MWI4Nzk3NGMyNzc1OTI5MWFi
NGE2NDgzNTJjNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0xNTQsOCArMTU0LDggQEAgcHJvdGVjdGVkOgogCiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Wb2lkTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoSlND
OjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKEpT
Qzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0yMjgsOCArMjI4
LDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUKIHZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpT
VmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKLUpT
Qzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBz
ZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oCmluZGV4IDM2OTY4MTFlNzVlMzJkMjA3N2U0NzhmMzQ4YjhjMmQzMGJmYzlhYzYuLmFj
NjY2M2I3NTZhNWJlYWNiYTUyMGU0ZjNmNjc3NTdmY2YyOWE5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAg
LTcxLDggKzcxLDggQEAgZW51bSB7CiAtICh2b2lkKXNldFNob3J0QXR0cjooc2hvcnQpbmV3U2hv
cnRBdHRyOwogLSAodW5zaWduZWQgc2hvcnQpdW5zaWduZWRTaG9ydEF0dHI7CiAtICh2b2lkKXNl
dFVuc2lnbmVkU2hvcnRBdHRyOih1bnNpZ25lZCBzaG9ydCluZXdVbnNpZ25lZFNob3J0QXR0cjsK
LS0gKGxvbmcgbG9uZylBdHRyOwotLSAodm9pZClzZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0cjsK
Ky0gKGludClsb25nQXR0cjsKKy0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdMb25nQXR0cjsK
IC0gKGxvbmcgbG9uZylsb25nTG9uZ0F0dHI7CiAtICh2b2lkKXNldExvbmdMb25nQXR0cjoobG9u
ZyBsb25nKW5ld0xvbmdMb25nQXR0cjsKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1bnNpZ25lZExv
bmdMb25nQXR0cjsKQEAgLTE2OSwxOCArMTY5LDE4IEBAIGVudW0gewogLSAoaW50KXJlcGxhY2Vh
YmxlQXR0cmlidXRlOwogLSAodm9pZClzZXRSZXBsYWNlYWJsZUF0dHJpYnV0ZTooaW50KW5ld1Jl
cGxhY2VhYmxlQXR0cmlidXRlOwogLSAodm9pZCl2b2lkTWV0aG9kOwotLSAodm9pZCl2b2lkTWV0
aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpB
cmc6KERPTVRlc3RPYmogKilvYmpBcmc7Ci0tIChsb25nIGxvbmcpTWV0aG9kOwotLSAobG9uZyBs
b25nKU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFy
Z3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnOworLSAoaW50KWxvbmdNZXRob2Q7CistIChpbnQpbG9uZ01ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2Q7Ci0tIChET01UZXN0T2Jq
ICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CistIChET01UZXN0T2JqICopb2JqTWV0
aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJn
OihET01UZXN0T2JqICopb2JqQXJnOwogLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3M6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAq
KW9iakFyZzsKIC0gKHZvaWQpc2VyaWFsaXplZFZhbHVlOihOU1N0cmluZyAqKXNlcmlhbGl6ZWRB
cmc7CiAtICh2b2lkKWlkYktleTooRE9NSURCS2V5ICopa2V5OwogLSAodm9pZClvcHRpb25zT2Jq
ZWN0OihET01EaWN0aW9uYXJ5ICopb28gb29vOihET01EaWN0aW9uYXJ5ICopb29vOwogLSAodm9p
ZCltZXRob2RXaXRoRXhjZXB0aW9uOwogLSAodm9pZCljdXN0b21NZXRob2Q7Ci0tICh2b2lkKWN1
c3RvbU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAodm9pZCljdXN0b21NZXRob2RXaXRo
QXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmc7CiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlw
ZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJP
T0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0
eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZToo
Qk9PTCl1c2VDYXB0dXJlOwogLSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpAQCAtMjE3LDEw
ICsyMTcsMTAgQEAgZW51bSB7CiAtICh2b2lkKW92ZXJsb2FkZWRNZXRob2QxOihOU1N0cmluZyAq
KXR5cGU7CiAjZW5kaWYKIC0gKERPTVNWR0RvY3VtZW50ICopZ2V0U1ZHRG9jdW1lbnQ7Ci0tICh2
b2lkKWNvbnZlcnQxOihET01hICopOwotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKTsKLS0gKHZv
aWQpY29udmVydDQ6KERPTWQgKik7Ci0tICh2b2lkKWNvbnZlcnQ1OihET01lICopOworLSAodm9p
ZCljb252ZXJ0MTooRE9NYSAqKXZhbHVlOworLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKXZhbHVl
OworLSAodm9pZCljb252ZXJ0NDooRE9NZCAqKXZhbHVlOworLSAodm9pZCljb252ZXJ0NTooRE9N
ZSAqKXZhbHVlOwogLSAoRE9NU1ZHUG9pbnQgKiltdXRhYmxlUG9pbnRGdW5jdGlvbjsKIC0gKERP
TVNWR1BvaW50ICopaW1tdXRhYmxlUG9pbnRGdW5jdGlvbjsKIC0gKHZvaWQpb3JhbmdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0KaW5kZXggNGJkMDQwMWNkZWE1NmVhYmI2OTZhOGExNTllNDUyYWE4NGY1YTM0Yy4u
NDE1OTU4NTQyNzk5ZjdkZWM2NTY4ZTkyOGIzYWQ0NGM5NWM4MGJhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
CkBAIC0xMzgsMTYgKzEzOCwxNiBAQAogICAgIElNUEwtPnNldFVuc2lnbmVkU2hvcnRBdHRyKG5l
d1Vuc2lnbmVkU2hvcnRBdHRyKTsKIH0KIAotLSAobG9uZyBsb25nKUF0dHIKKy0gKGludClsb25n
QXR0cgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4gSU1QTC0+YXR0cigpOworICAgIHJldHVybiBJTVBMLT5sb25nQXR0cigpOwogfQogCi0t
ICh2b2lkKXNldEF0dHI6KGxvbmcgbG9uZyluZXdBdHRyCistICh2b2lkKXNldExvbmdBdHRyOihp
bnQpbmV3TG9uZ0F0dHIKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgSU1QTC0+c2V0QXR0cihuZXdBdHRyKTsKKyAgICBJTVBMLT5zZXRMb25nQXR0cihu
ZXdMb25nQXR0cik7CiB9CiAKIC0gKGxvbmcgbG9uZylsb25nTG9uZ0F0dHIKQEAgLTM0Niw5ICsz
NDYsNyBAQAogLSAodm9pZClzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjooaW50KW5ld0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNl
dEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7
Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIC0gKGlu
dClhdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAtMzc3LDkgKzM3NSw3IEBACiAtICh2b2lkKXNl
dFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOihOU1N0cmluZyAqKW5ld1N0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNl
dFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBM
LT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbik7CiB9CiAKIC0gKE5TU3RyaW5nICopc3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24KQEAgLTQ0OCw5ICs0NDQsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAg
IElNUEwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMKQEAgLTQ2Nyw5ICs0NjEsNyBAQAogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNv
cmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAog
LSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGUKQEAgLTUwMCw5ICs0OTIsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlz
ZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RP
YmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZQpAQCAtNzIzLDIyICs3MTMsMjIgQEAKICAgICBJTVBMLT52b2lkTWV0aG9kKCk7CiB9
CiAKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNT
dHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistICh2b2lkKXZvaWRN
ZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpB
cmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBj
b3JlKG9iakFyZykpOworICAgIElNUEwtPnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJB
cmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKLS0gKGxvbmcgbG9uZylNZXRob2QKKy0gKGludClsb25n
TWV0aG9kCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IHJldHVybiBJTVBMLT5tZXRob2QoKTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ01ldGhvZCgpOwog
fQogCi0tIChsb25nIGxvbmcpTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihO
U1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKGludClsb25n
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5tZXRob2RXaXRoQXJncyhBcmcsIHN0ckFy
ZywgY29yZShvYmpBcmcpKTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKW9iak1l
dGhvZApAQCAtNzQ3LDEwICs3MzcsMTAgQEAKICAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElN
UEwtPm9iak1ldGhvZCgpKSk7CiB9CiAKLS0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJn
czoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZworLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9u
Z0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFy
ZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1
cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBj
b3JlKG9iakFyZykpKSk7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRo
b2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSkpKTsKIH0KIAogLSAoRE9N
VGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3M6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwpAQCAtNzk0LDEwICs3ODQsMTAgQEAK
ICAgICBJTVBMLT5jdXN0b21NZXRob2QoKTsKIH0KIAotLSAodm9pZCljdXN0b21NZXRob2RXaXRo
QXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9N
VGVzdE9iaiAqKW9iakFyZworLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdB
cmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+
Y3VzdG9tTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgSU1Q
TC0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwog
fQogCiAtICh2b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjoo
aWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVy
ZQpAQCAtOTg5LDI4ICs5NzksMjggQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0tICh2b2lk
KWNvbnZlcnQxOihET01hICopCistICh2b2lkKWNvbnZlcnQxOihET01hICopdmFsdWUKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVy
dDEoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0MShjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZv
aWQpY29udmVydDI6KERPTWIgKikKKy0gKHZvaWQpY29udmVydDI6KERPTWIgKil2YWx1ZQogewog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252
ZXJ0Mihjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQyKGNvcmUodmFsdWUpKTsKIH0KIAotLSAo
dm9pZCljb252ZXJ0NDooRE9NZCAqKQorLSAodm9pZCljb252ZXJ0NDooRE9NZCAqKXZhbHVlCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNv
bnZlcnQ0KGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVydDQoY29yZSh2YWx1ZSkpOwogfQogCi0t
ICh2b2lkKWNvbnZlcnQ1OihET01lICopCistICh2b2lkKWNvbnZlcnQ1OihET01lICopdmFsdWUK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+
Y29udmVydDUoY29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0NShjb3JlKHZhbHVlKSk7CiB9CiAK
IC0gKERPTVNWR1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBjNTNjY2ZkN2NjNDA2
YjQwNjEyMGNhN2YwNDllZjFiNGZjMDg1Njk3Li4wZWE4N2ZhMGFmMWM5Zjg1MjEyOTQwZDg2ZmRl
NTVjMTEwYzIwYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsCkBAIC01MSw3ICs1MSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAg
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAgICAgICBh
dHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIHRlc3RPYmpBdHRyOwogCi0gICAgICAg
IEpTLCBWOAorICAgICAgICAvLyBKUywgVjgKICAgICAgICAgLy8gV0tfdWNmaXJzdCwgV0tfbGNm
aXJzdCBleGNlcHRpb25hbCBjYXNlcy4KICAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAg
ICAgICAgICAgICBYTUxPYmpBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
ICAgICAgICAgIGNyZWF0ZTsKQEAgLTIyNCwxMCArMjI0LDEwIEBAIG1vZHVsZSB0ZXN0IHsKICAg
ICAgICAgW0NoZWNrU2VjdXJpdHlGb3JOb2RlXSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGNvbnZl
cnQxKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIGEpOwotICAgICAgICB2b2lk
IGNvbnZlcnQyKGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gYik7Ci0g
ICAgICAgIHZvaWQgY29udmVydDQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGQpOwotICAg
ICAgICB2b2lkIGNvbnZlcnQ1KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVuZGVm
aW5lZEFzPU51bGxTdHJpbmddIGUpOworICAgICAgICB2b2lkIGNvbnZlcnQxKGluIFtUcmVhdFJl
dHVybmVkTnVsbFN0cmluZ0FzPU51bGxdIGEgdmFsdWUpOworICAgICAgICB2b2lkIGNvbnZlcnQy
KGluIFtUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzPVVuZGVmaW5lZF0gYiB2YWx1ZSk7CisgICAg
ICAgIHZvaWQgY29udmVydDQoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIGQgdmFsdWUpOwor
ICAgICAgICB2b2lkIGNvbnZlcnQ1KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLCBUcmVhdFVu
ZGVmaW5lZEFzPU51bGxTdHJpbmddIGUgdmFsdWUpOwogCiAgICAgICAgIGF0dHJpYnV0ZSBTVkdQ
b2ludCBtdXRhYmxlUG9pbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdQb2lu
dCBpbW11dGFibGVQb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggMzdkNzM5MzkzNDRmYzdhMDA5YjcxNmU3
MjNjMjczYzE3N2Y0MmFkYy4uMmY3YTE5YzYwZjkyOGRhN2E2YWFjMGJkODk1MWZiMTg2N2UxMTU5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKQEAgLTE2MSwxOSArMTYxLDE5IEBAIHN0YXRpYyB2b2lkIHVuc2lnbmVk
U2hvcnRBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4CiAgICAgcmV0dXJuOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEF0dHJB
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nQXR0ckF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9nZXQiKTsKKyAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0T2JqLmxvbmdBdHRyLl9nZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVy
OjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihpbXAtPmF0dHIoKSkpOworICAgIHJldHVybiB2OElu
dGVnZXIoaW1wLT5sb25nQXR0cigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CiAKLXN0YXRpYyB2
b2lkIEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2
b2lkIGxvbmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0g
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5BdHRyLl9zZXQiKTsKKyAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLmxvbmdBdHRyLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIGxvbmcgbG9uZyB2ID0gdG9JbnQ2NCh2YWx1
ZSk7Ci0gICAgaW1wLT5zZXRBdHRyKFdURjo6Z2V0UHRyKHYpKTsKKyAgICBpbnQgdiA9IHRvSW50
MzIodmFsdWUpOworICAgIGltcC0+c2V0TG9uZ0F0dHIodik7CiAgICAgcmV0dXJuOwogfQogCkBA
IC00NDksMTAgKzQ0OSw3IEBAIHN0YXRpYyB2b2lkIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvCiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5hdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBpbnQgdiA9
IHRvSW50MzIodmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0g
ICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+
c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQogCkBAIC00OTEs
MTAgKzQ4OCw3IEBAIHN0YXRpYyB2b2lkIHN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFNUUklOR19U
T19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1
ZSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRTdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTU4NCwx
MyArNTc4LDEwIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai53aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMuX3NldCIpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgVGVzdE9i
aiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlwdFN0YXRlOjpjdXJy
ZW50KCk7CiAgICAgaWYgKCFzdGF0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGltcC0+c2V0V2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBXVEY6OmdldFB0cih2KSwgZWMpOwot
ICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5H
ZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KHN0YXRlLCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElzb2xhdGUoKSk7
CiAgICAgcmV0dXJuOwpAQCAtNjE1LDEzICs2MDYsMTAgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0lu
c3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIGlt
cC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29u
dGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAg
ICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdU
Rjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47CiB9CiAKQEAgLTY3OSwxNiArNjY3LDEzIEBAIHN0
YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQiKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwog
ICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9i
ajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRT
dGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwotICAg
IGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBp
ZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNv
bGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYp
KTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3Rh
dGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDgx
LDMwICsxMDY2LDMwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdp
dGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihh
cmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRv
SW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklO
R19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAg
ICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAg
ICBpbXAtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAt
PnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJu
IHY4VW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9k
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbG9uZ01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7
Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5NZXRob2QiKTsKKyAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLmxvbmdNZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZCgpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAt
PmxvbmdNZXRob2QoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLk1ldGhvZFdpdGhBcmdzIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25n
TWV0aG9kV2l0aEFyZ3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJl
dHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAg
IEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0
T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpO
ZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBv
YmpBcmcpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2RXaXRoQXJncyhs
b25nQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQpAQCAtMTEyMCwxMCArMTEwNSwxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NL
KGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJn
LCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFy
YW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVs
dElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4
VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVm
YXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpIDogMCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRoQXJncyhB
cmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0b1Y4
KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkdl
dElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0
aFNlcXVlbmNlQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExNDMs
OCArMTEyOCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJuaW5n
U2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50
NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OwotICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSwg
YXJncy5HZXRJc29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRv
SW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpOworICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9u
Z0FyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKQEAgLTE1NTgsOCArMTU0Myw4IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzCiAgICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcpOwogICAgICAgICBy
ZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBBcmcpOwor
ICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+b3Zlcmxv
YWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
fQogCkBAIC0xNTgwLDggKzE1NjUsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92
ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoQXJnKTsKKyAgICBFWENF
UFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NjYsOCAr
MTc1MSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZU1l
dGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdl
dElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwot
ICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxP
Q0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2Qx
KGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzc3LDggKzE3
NjIsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRo
b2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwg
MSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAg
ICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc4OCw4ICsxNzcz
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhv
ZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMShs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc5OSw4ICsxNzg0
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhv
ZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMihs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg0NSw4ICsxODMw
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAg
ICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7
CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBFWENFUFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQxKCk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6dG9OYXRp
dmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQxKHZh
bHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg1Niw4ICsxODQxLDgg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MkNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICBy
ZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAg
ICBFWENFUFRJT05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4Yjo6dG9OYXRpdmUodjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQyKCk7CisgICAg
RVhDRVBUSU9OX0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4Yjo6dG9OYXRpdmUo
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQyKHZhbHVl
KTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg2Nyw4ICsxODUyLDggQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1
cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBF
WENFUFRJT05fQkxPQ0soZCosICwgVjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ0KCk7CisgICAgRVhD
RVBUSU9OX0JMT0NLKGQqLCB2YWx1ZSwgVjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ0KHZhbHVlKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg3OCw4ICsxODYzLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENF
UFRJT05fQkxPQ0soZSosICwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ1KCk7CisgICAgRVhDRVBU
SU9OX0JMT0NLKGUqLCB2YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ1KHZhbHVlKTsKICAg
ICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTk0NCw4ICsxOTI5LDggQEAgc3RhdGlj
IGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBUZXN0T2JqQXR0cnNb
XSA9IHsKICAgICB7InNob3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJBdHRy
R2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6
dW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBBdHRy
aWJ1dGUgJ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7IkF0dHIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpB
dHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdsb25nQXR0
cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsibG9uZ0F0dHIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9u
Z0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2xvbmdM
b25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsibG9uZ0xvbmdB
dHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpW
OEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAv
LyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJycpCkBAIC0yMDU4LDcgKzIwNDMsNyBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1
cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFRlc3RPYmpBdHRyc1tdID0gewogCiBzdGF0aWMgY29u
c3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQ2FsbGJhY2sgVGVzdE9iakNhbGxiYWNrc1td
ID0gewogICAgIHsidm9pZE1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kQ2Fs
bGJhY2t9LAotICAgIHsiTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNr
fSwKKyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ01ldGhvZENhbGxi
YWNrfSwKICAgICB7Im9iak1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxs
YmFja30sCiAgICAgeyJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFs
OjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNrfSwKICAgICB7InNlcmlhbGl6ZWRWYWx1
ZSIsIFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFsdWVDYWxsYmFja30sCkBAIC0yMTk4
LDExICsyMTgzLDExIEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2
ODo6U2lnbmF0dXJlPiB2b2lkTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJl
OjpOZXcoZGVzYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJnYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJn
dik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInZvaWRNZXRob2RXaXRo
QXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjp2b2lk
TWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdz
U2lnbmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdNZXRob2RXaXRoQXJncycK
LSAgICBjb25zdCBpbnQgTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBNZXRob2RXaXRoQXJnc0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdj
XSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAg
djg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpT
aWduYXR1cmU6Ok5ldyhkZXNjLCBNZXRob2RXaXRoQXJnc0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJn
dik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woIk1ldGhvZFdpdGhBcmdz
IiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdp
dGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7
CisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9uZ01ldGhvZFdpdGhBcmdzJworICAgIGNvbnN0
IGludCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvblRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2W2xvbmdNZXRob2RXaXRoQXJnc0Fy
Z2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxvbmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9
IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0
aG9kV2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgi
bG9uZ01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4
SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBsb25n
TWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ29i
ak1ldGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBvYmpNZXRob2RXaXRoQXJnc0FyZ2MgPSAz
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164672</attachid>
            <date>2012-09-18 23:39:03 -0700</date>
            <delta_ts>2012-09-19 23:10:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120919153829.patch</filename>
            <type>text/plain</type>
            <size>176877</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2ZjgzNTQ4ZTMwYjYw
Yjg3NTY3M2UyNzA5MzVlOGJlN2I4OTg1OC4uNjIxNWQ1OTg4M2QzZDRlYTQ1MmU4ZGE4MDM5ZjRl
ODQ5NzIyZWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdHJvcyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOS0xOCAgS2VuaWNoaSBJ
c2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBEb24n
dCB0cmVhdCB0YWIgYXMgc3BhY2VzIGZvciB3b3JkLWVuZCBpbiBIYXJmQnV6elNoYXBlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNk
NmM2YTJiOTFmOTNiZGVhNWMwMmI3NDk2MWJmYjg5ZDQxLi5jNmFlODhjNzIxZDc0MGZhNzI2ZTA5
ZjYyNWUxODU2YmY0MzVlNjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETFBhcnNlci5wbQpAQCAtMjEsNDUxICsyMSwyMzIxIEBACiAKIHBhY2thZ2UgSURMUGFyc2Vy
OwogCit1c2UgQ2xhc3M6OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAK
IHVzZSBJUEM6Ok9wZW4yOwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAK
LXVzZSBjb25zdGFudCBNT0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgotCi11c2Ug
Y29uc3RhbnQgTU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25z
dGFudCBNT0RFX0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNv
bnN0YW50IE1PREVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCi0KLSMg
SGVscGVyIHZhcmlhYmxlcwotbXkgQHRlbXBvcmFyeUNvbnRlbnQ7Ci0KLW15ICRwYXJzZU1vZGU7
Ci1teSAkcHJlc2VydmVkUGFyc2VNb2RlOwotCi1teSAkYmVRdWlldDsgIyBTaG91bGQgbm90IGRp
c3BsYXkgYW55dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9sZCB0aGUg
cmVzdWx0aW5nICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBwYXJzZSBv
bmx5IGVub3VnaCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK3VzZSBjb25zdGFudCBTdHJpbmdU
b2tlbiA9PiAwOwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNlIGNvbnN0YW50
IEZsb2F0VG9rZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsKK3Vz
ZSBjb25zdGFudCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlUb2tlbiA9PiA1
OworCitzdHJ1Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyB0eXBlIG9mIHRva2Vu
CisgICAgdmFsdWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4KK30pOworCitzdWIgbmV3IHsKKyAg
ICBteSAkY2xhc3MgPSBzaGlmdDsKKworICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4tPm5ldygp
OworICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRlbXB0eVRva2VuLT52
YWx1ZSgiZW1wdHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBEb2N1bWVudENvbnRl
bnQgPT4gIiIsCisgICAgICAgIEVtcHR5VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIE5l
eHRUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgVG9rZW4gPT4gJGVtcHR5VG9rZW4sCisg
ICAgICAgIExpbmUgPT4gIiIsCisgICAgICAgIExpbmVOdW1iZXIgPT4gMQorICAgIH07CisgICAg
cmV0dXJuIGJsZXNzICRzZWxmLCAkY2xhc3M7Cit9CiAKLXN1YiBJbml0aWFsaXplR2xvYmFsRGF0
YQorc3ViIGFzc2VydFRva2VuVmFsdWUKIHsKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOwot
Ci0gICAgJHBhcnNlTW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgJHByZXNlcnZlZFBhcnNlTW9kZSA9
IE1PREVfVU5ERUY7Ci0KLSAgICAkZG9jdW1lbnQgPSAwOwotICAgICRwYXJlbnRzT25seSA9IDA7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAk
dmFsdWUgPSBzaGlmdDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRtc2cgPSAiTmV4
dCB0b2tlbiBzaG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgp
IC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAoJGxpbmUpKSB7Cisg
ICAgICAgICRtc2cgPSAkbXNnIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnIHVubGVzcyAk
dG9rZW4tPnZhbHVlKCkgZXEgJHZhbHVlOwogfQogCi0jIERlZmF1bHQgQ29uc3RydWN0b3IKLXN1
YiBuZXcKK3N1YiBhc3NlcnRUb2tlblR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0g
ICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKLQotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7Ci0K
LSAgICAkYmVRdWlldCA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRv
a2VuID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4n
cyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4g
IiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cit9
CiAKLSAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKLSAgICByZXR1cm4gJHJlZmVyZW5j
ZTsKK3N1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1z
ZyA9ICJVbmV4cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyA9ICRtc2cgLiAiIElE
TFBhcnNlci5wbToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnOwogfQogCi0jIFJldHVy
bnMgdGhlIHBhcnNlZCAnaWRsRG9jdW1lbnQnCiBzdWIgUGFyc2UKIHsKLSAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkZmlsZU5hbWUgPSBzaGlm
dDsKICAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OwogICAgIG15ICRwcmVwcm9jZXNzb3IgPSBzaGlm
dDsKLSAgICAkcGFyZW50c09ubHkgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfCAqKiogU3RhcnRp
bmcgdG8gcGFyc2UgJGZpbGVOYW1lLi4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkg
QGRvY3VtZW50Q29udGVudCA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMs
ICRwcmVwcm9jZXNzb3IpOworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOwogCi0gICAgbXkgJGRh
dGFBdmFpbGFibGUgPSAwOworICAgIG15IEBsaW5lcyA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxl
TmFtZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOworICAgICRzZWxmLT57TGluZX0gPSAkbGlu
ZXNbMF07CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID0gam9pbignICcsIEBsaW5lcyk7
CiAKLSAgICAjIFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3JlYWNoIChAZG9jdW1lbnRD
b250ZW50KSB7Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2JqZWN0LT5EZXRlcm1pbmVQ
YXJzZU1vZGUoJF8pOworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIGV2YWwgeworICAgICAg
ICBteSAkcmVzdWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChA
ZGVmaW5pdGlvbnMsIEB7JHJlc3VsdH0pOwogCi0gICAgICAgIGlmICgkbmV3UGFyc2VNb2RlIG5l
IE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAgIGlmICgkZGF0YUF2YWlsYWJsZSBlcSAwKSB7Ci0g
ICAgICAgICAgICAgICAgJGRhdGFBdmFpbGFibGUgPSAxOyAjIFN0YXJ0IG5vZGUgYnVpbGRpbmcu
Li4KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJG9iamVjdC0+UHJvY2Vz
c1NlY3Rpb24oKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpICE9IEVtcHR5VG9rZW4pIHsKKyAg
ICAgICAgICAgIGRpZSAiRXhwZWN0IEVPRiwgYnV0IGZvdW5kICIgLiAkbmV4dC0+dmFsdWUoKSAu
ICIgYXQgIiAuICRzZWxmLT57TGluZX07CiAgICAgICAgIH0KKyAgICB9OworICAgIGRpZSAkQCAu
ICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsKKworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVu
bGVzcyBAZGVmaW5pdGlvbnM7CisKKyAgICBteSAkZG9jdW1lbnQ7CisgICAgaWYgKCQjZGVmaW5p
dGlvbnMgPT0gMCAmJiByZWYoJGRlZmluaXRpb25zWzBdKSBlcSAiaWRsRG9jdW1lbnQiKSB7Cisg
ICAgICAgICRkb2N1bWVudCA9ICRkZWZpbml0aW9uc1swXTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1
bGUoIiIpOworICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQGRlZmluaXRpb25z
KTsKKyAgICB9CisgICAgICAgIAorICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBy
ZWYoJGRvY3VtZW50KSBlcSAiaWRsRG9jdW1lbnQiOworCisgICAgJGRvY3VtZW50LT5maWxlTmFt
ZSgkZmlsZU5hbWUpOworICAgIHJldHVybiAkZG9jdW1lbnQ7Cit9CisKK3N1YiBuZXh0VG9rZW4K
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+e05leHRUb2tlbn07
Cit9CisKK3N1YiBnZXRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNlbGYt
PntUb2tlbn0gPSAkc2VsZi0+e05leHRUb2tlbn07CisgICAgJHNlbGYtPntOZXh0VG9rZW59ID0g
JHNlbGYtPmdldFRva2VuSW50ZXJuYWwoKTsKKyAgICByZXR1cm4gJHNlbGYtPntUb2tlbn07Cit9
CisKK215ICR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuID0gJ15bXHRcblxyIF0qW1xuXHJdJzsKK215
ICRmbG9hdFRva2VuUGF0dGVybiA9ICdeKC0/KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTld
KykoW0VlXVsrLV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSknOworbXkgJGludGVn
ZXJUb2tlblBhdHRlcm4gPSAnXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8w
WzAtN10qKSc7CitteSAkc3RyaW5nVG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwiXSpcIiknOworbXkg
JGlkZW50aWZpZXJUb2tlblBhdHRlcm4gPSAnXihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7Citt
eSAkb3RoZXJUb2tlblBhdHRlcm4gPSAnXig6OnxcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0p
JzsKIAotICAgICAgICAjIFVwZGF0ZSBkZXRlY3RlZCBkYXRhIHN0cmVhbSBtb2RlLi4uCi0gICAg
ICAgIGlmICgkbmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAgICRwYXJz
ZU1vZGUgPSAkbmV3UGFyc2VNb2RlOworc3ViIGdldFRva2VuSW50ZXJuYWwKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworCisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHdo
aXRlc3BhY2VUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50
fSA9fiBzLygkd2hpdGVzcGFjZVRva2VuUGF0dGVybikvLzsKKyAgICAgICAgbXkgJHNraXBwZWQg
PSAkMTsKKyAgICAgICAgJHNlbGYtPntMaW5lTnVtYmVyfSsrIHdoaWxlICgkc2tpcHBlZCA9fiAv
XG4vZyk7CisgICAgICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gL14oW15cblxy
XSspLykgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJlcn0g
LiAiOiIgLiAkMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0g
PSAiVW5rbm93biI7CiAgICAgICAgIH0KKyAgICB9CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IHMvXihbXHRcblxyIF0rKS8vOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVu
dH0gZXEgIiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQog
Ci0gICAgICAgIHB1c2goQHRlbXBvcmFyeUNvbnRlbnQsICRfKTsKKyAgICBteSAkdG9rZW4gPSBU
b2tlbi0+bmV3KCk7CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0
VG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAg
ICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0g
PX4gcy8kZmxvYXRUb2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9
CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRl
cm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9r
ZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlu
dGVnZXJUb2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAg
aWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsK
KyAgICAgICAgJHRva2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1
ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tl
blBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAg
ICAgICR0b2tlbi0+dHlwZShJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVl
KCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJU
b2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRz
ZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAg
ICAkdG9rZW4tPnR5cGUoT3RoZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOwor
ICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKICAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9r
ZW5pemluZyBhdCAiIC4gJHNlbGYtPntMaW5lfTsKK30KIAotICAgICMgQ2hlY2sgaWYgdGhlcmUg
aXMgYW55dGhpbmcgcmVtYWluaW5nIHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5l
IE1PREVfVU5ERUYpIGFuZCAoJCN0ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9i
amVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKK215ICRuZXh0QXR0cmlidXRlT2xkXzEgPSAnXihhdHRy
aWJ1dGV8aW5oZXJpdHxyZWFkb25seSkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14o
aW50fGxvbmd8c2hvcnR8dW5zaWduZWQpJCc7CitteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICde
KGRvdWJsZXxmbG9hdHx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dFNldEdldFJhaXNlczJfMSA9
ICdeKDt8Z2V0cmFpc2VzfHNldHJhaXNlcykkJzsKK215ICRuZXh0QXJndW1lbnRMaXN0XzEgPSAn
XihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91Ymxl
fGZsb2F0fGlufGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1
bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dE5vbkFueVR5cGVfMSA9ICdeKGJvb2xl
YW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2N0ZXR8c2hvcnR8dW5yZXN0cmljdGVkfHVu
c2lnbmVkKSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMSA9ICdeKFwofEJ5dGVTdHJp
bmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxl
dGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2Jq
ZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRp
Y3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0T3B0
aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0XzEgPSAnXig7fD0pJCc7CitteSAkbmV4dEF0
dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xID0gJ14oc3RhdGljfHN0cmluZ2lmaWVyKSQn
OworbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMiA9ICdeKFwofEJ5dGVT
dHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91
YmxlfGZsb2F0fGdldHRlcnxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVl
bmNlfHNldHRlcnxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0
VW5yZXN0cmljdGVkRmxvYXRUeXBlXzEgPSAnXihkb3VibGV8ZmxvYXQpJCc7CitteSAkbmV4dEV4
dGVuZGVkQXR0cmlidXRlUmVzdDNfMSA9ICdeKCx8XF0pJCc7CitteSAkbmV4dEV4Y2VwdGlvbkZp
ZWxkXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8
ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3Ry
aWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dFR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9j
dGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0U3Bl
Y2lhbHNfMSA9ICdeKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikk
JzsKK215ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxl
eGNlcHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhjZXB0aW9u
TWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVh
bnxieXRlfGNvbnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8
c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRBdHRyaWJ1
dGVSZXN0XzEgPSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7CitteSAkbmV4dFNpbmdsZVR5cGVf
MSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9h
dHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2ln
bmVkKSQnOworbXkgJG5leHRHZXRfMSA9ICdeKDt8Z2V0cmFpc2VzfGdldHRlcnxzZXRyYWlzZXN8
c2V0dGVyKSQnOworbXkgJG5leHRBcmd1bWVudE5hbWVfMSA9ICdeKGF0dHJpYnV0ZXxjYWxsYmFj
a3xjb25zdHxjcmVhdG9yfGRlbGV0ZXJ8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxnZXR0ZXJ8
aW1wbGVtZW50c3xpbmhlcml0fGludGVyZmFjZXxsZWdhY3ljYWxsZXJ8cGFydGlhbHxzZXJpYWxp
emVyfHNldHRlcnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0ZWQpJCc7Citt
eSAkbmV4dENvbnN0VmFsdWVfMSA9ICdeKGZhbHNlfHRydWUpJCc7CitteSAkbmV4dENvbnN0VmFs
dWVfMiA9ICdeKC18SW5maW5pdHl8TmFOKSQnOworbXkgJG5leHREZWZpbml0aW9uXzEgPSAnXihj
YWxsYmFja3xpbnRlcmZhY2UpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8x
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVk
fHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMSA9ICdeKGlu
dHxsb25nfHNob3J0KSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNy
ZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNhbGxl
cnxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxz
aG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7Citt
eSAkbmV4dERlZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0eXxOYU58ZmFsc2V8bnVsbHx0cnVl
KSQnOworCitzdWIgcGFyc2VEZWZpbml0aW9ucworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb247CisgICAg
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAg
ICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbnNfMS8pIHsKKyAg
ICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbk9sZCgpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZGVmaW5lZCAoJGRlZmluaXRpb24pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywg
JGRlZmluaXRpb24pOworICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25z
OworfQogCi0gICAgcHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJl
UXVpZXQ7Ci0gCi0gICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworc3ViIHBhcnNl
RGVmaW5pdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
RGVmaW5pdGlvbl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tPcklu
dGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlh
bCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFy
eSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb24o
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW0oJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VNb2R1bGUKK3N1YiBw
YXJzZUNhbGxiYWNrT3JJbnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJp
bnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tSZXN0
T3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIG1v
ZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250
ZW50KTsKLSAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworc3Vi
IHBhcnNlSW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAg
bXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRpbnRl
cmZhY2VOYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAg
ICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAg
IHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7
Iik7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNl
TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRpbnRlcmZh
Y2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2Rl
LCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQogCi0gICAgbXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5lZCgkMSkgPyAkMSA6IGRp
ZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICRkYXRhTm9kZS0+
bW9kdWxlKCRtb2R1bGVOYW1lKTsKK3N1YiBwYXJzZVBhcnRpYWwKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHBy
aW50ICIgIHwtLS0tPiBNb2R1bGU7IE5BTUUgXCIkbW9kdWxlTmFtZVwiXG4gfC1cbiB8XG4iIHVu
bGVzcyAkYmVRdWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIpOworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlUGFydGlhbERlZmluaXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKIH0KIAotc3ViIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZVBhcnRp
YWxEZWZpbml0aW9uCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0OwotICAgIG15ICRhdHRycyA9
IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgaWYgKCEleyRhdHRyc30pIHsKLSAgICAgICAgcmV0dXJuICIi
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlh
bEludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
UGFydGlhbERpY3Rpb25hcnkoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
IAotICAgIG15IEB0ZW1wOwotICAgIHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1ZSkgPSBlYWNo
KCV7JGF0dHJzfSkpIHsKLSAgICAgICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1ZSIpOworc3Vi
IHBhcnNlUGFydGlhbEludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJm
YWNlIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCks
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IjsiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0
ciAuICJbIiAuIGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBhcnNlSW50ZXJmYWNlTWVt
YmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJlcnMg
PSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyOworCisgICAgICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRp
bnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlcnNfMS8pIHsK
KyAgICAgICAgICAgICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1i
ZXJPbGQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVz
aChAaW50ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKIH0KIAotc3ViIHBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVzCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKIHsKLSAgICBteSAkc3RyID0gc2hp
ZnQ7Ci0gICAgJHN0ciA9fiBzL1xbXHMqKC4qKVxzKlxdLyQxL2c7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNv
bnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcigk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgbXkgJWF0dHJzID0g
KCk7CitzdWIgcGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGlj
dGlvbmFyeSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tl
bigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsi
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAg
ICAgICAgIyBQYXJzZSBuYW1lCi0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykg
ewotICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4i
KTsKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KCk7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewor
ICAgICAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKICAgICAgICAgfQotICAgICAgICBteSAkbmFtZSA9
ICQxOwotICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwotCi0gICAgICAgIGlmICgk
c3RyID1+IC9eXHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqPS8vOwotICAgICAg
ICAgICAgaWYgKCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikgewotICAgICAgICAgICAgICAg
ICMgUGFyc2UgJz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgICAg
IG15ICRjb25zdHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyoo
W1x3XGRdKykvKSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25zdHJ1Y3Rvck5hbWUgPSAkMTsK
LSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5k
ZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAgICAgICAgICAjIFBhcnNl
ICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15c
cypcKC8vOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/Lykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVyZSA9ICQxOwotICAgICAgICAg
ICAgICAgICAgICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAg
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JOYW1lIiA9PiAkY29u
c3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJlfTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBh
dHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICRh
dHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNp
Z25hdHVyZSIgPT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87
Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZh
bGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIHZhbHVlICcs
Jz8KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXixdKiksPy8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAk
YXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICRz
dHIgPX4gcy9eXHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4i
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRz
dHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScg
JywnPwotICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgaWYgKCRz
dHIgPX4gL14oW14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0g
JDE7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwot
ICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTog
JyRzdHInXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxz
Kiw/LykgewotICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwotICAgICAgICAgICAgaWYgKCRu
YW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0g
IiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0g
PSAiVkFMVUVfSVNfTUlTU0lORyI7CisgICAgfQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNl
RGljdGlvbmFyeU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVBhcnRpYWxEaWN0aW9u
YXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFy
eSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9
Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGVmYXVsdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iKTsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZURlZmF1bHRWYWx1ZSgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3N1YiBw
YXJzZURlZmF1bHRWYWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tl
biB8fCAkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHREZWZhdWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0
VmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUV4Y2VwdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7Cisg
ICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAgICBt
eSAkZXhjZXB0aW9uTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJGV4Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsK
KyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOwor
ICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIpOworICAgICAgICBt
eSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOwor
ICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7Cisg
ICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgQG1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uTWVtYmVyc18xLykg
eworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgICAgICNteSAkbWVtYmVy
ID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgICAgICAgICAgbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICgkbWVtYmVyKSkg
eworICAgICAgICAgICAgICAgIHB1c2goQG1lbWJlcnMsICRtZW1iZXIpOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAg
ICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsK
K30KKworc3ViIHBhcnNlSW5oZXJpdGFuY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15IEBwYXJlbnQgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6Iik7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcHVzaChAcGFyZW50LCAkdG9rZW4tPnZhbHVlKCkp
OworICAgICAgICAjIE11bHRpcGxlIGluaGVyaXRhbmNlPworICAgICAgICBwdXNoKEBwYXJlbnQs
IEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBwYXJl
bnQ7Cit9CisKK3N1YiBwYXJzZUVudW0KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAieyIpOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJz
ZUVudW1WYWx1ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0
cmluZ1Rva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIHBhcnNlUGFyYW1ldGVycworc3ViIHBhcnNlRW51
bVZhbHVlcwogewotICAgIG15ICRuZXdEYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRtZXRob2RT
aWduYXR1cmUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rv
a2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgIH0KKyAgICByZXR1
cm47Cit9CiAKLSAgICAjIFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMgYnV0IG9ubHkgaWYgdGhl
IGNvbW1hCi0gICAgIyBpcyBub3Qgd2l0aGluIGF0dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2Vk
IGhlcmUKLSAgICAjIGFzIGJlaW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRp
bmcgJ1snLgotICAgICMgTm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9u
J3QgbmVzdC4KLSAgICBteSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRtZXRob2RT
aWduYXR1cmUpOwotICAgIGZvcmVhY2ggKEBwYXJhbXMpIHsKLSAgICAgICAgbXkgJGxpbmUgPSAk
XzsKK3N1YiBwYXJzZUNhbGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiPSIpOworICAgICAgICAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAg
ICAgICAkc2VsZi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KIAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFy
YW1ldGVyU2VsZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAg
ICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIp
OyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUg
PSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5l
XG4pIikpOwotICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6
ICIiOwotICAgICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZVR5cGVkZWYKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBteSAkaXNO
dWxsYWJsZSA9ICRwYXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNlSW1wbGVtZW50c1N0
YXRlbWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW1wbGVt
ZW50cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigp
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICAgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRw
YXJhbURhdGFOb2RlLT5kaXJlY3Rpb24oJHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPm5hbWUoJHBhcmFtTmFtZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBl
KCRwYXJhbVR5cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAg
ICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VD
b25zdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2Rl
ID0gbmV3IGRvbUNvbnN0YW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiY29uc3QiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRz
ZWxmLT5wYXJzZUNvbnN0VHlwZSgpKTsKKyAgICAgICAgbXkgJGNvbnN0TmFtZVRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGNvbnN0TmFt
ZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNv
bnN0TmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNl
bGYtPnBhcnNlQ29uc3RWYWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0Rh
dGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFO
b2RlLT5wYXJhbWV0ZXJzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2Rl
KTsKK3N1YiBwYXJzZUNvbnN0VmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRDb25zdFZhbHVlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFu
TGl0ZXJhbCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIp
OworICAgICAgICByZXR1cm4gIm51bGwiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBGbG9hdFRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMi8pIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0TGl0ZXJhbCgpOworICAgIH0KKyAgICAj
IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdU
b2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBw
cmludCAiICB8ICAgfD4gIFBhcmFtOyBUWVBFIFwiJHBhcmFtVHlwZVwiIE5BTUUgXCIkcGFyYW1O
YW1lXCIiIC4gCi0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAg
ICAgICAgICAgIiwgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVu
bGVzcyAkYmVRdWlldDsgICAgICAgICAgCitzdWIgcGFyc2VCb29sZWFuTGl0ZXJhbAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiKTsKKyAgICAgICAgcmV0dXJuICJ0
cnVlIjsKICAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIpOwor
ICAgICAgICByZXR1cm4gImZhbHNlIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VJbnRlcmZh
Y2UKK3N1YiBwYXJzZUZsb2F0TGl0ZXJhbAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAg
ICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkc2VjdGlvbk5hbWUgPSBzaGlmdDsKLQot
ICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotCi0gICAgIyBMb29r
IGZvciBlbmQtb2YtaW50ZXJmYWNlIG1hcmsKLSAgICAkZGF0YSA9fiAvfTsvZzsKLSAgICAkZGF0
YSA9IHN1YnN0cigkZGF0YSwgaW5kZXgoJGRhdGEsICRzZWN0aW9uTmFtZSksIHBvcygkZGF0YSkg
LSBsZW5ndGgoJGRhdGEpKTsKLQotICAgICRkYXRhID1+IHMvW1xuXHJdLyAvZzsKLQotICAgICMg
QmVnaW5uaW5nIG9mIHRoZSByZWdleHAgcGFyc2luZyBtYWdpYwotICAgIGlmICgkc2VjdGlvbk5h
bWUgZXEgImludGVyZmFjZSIgfHwgJHNlY3Rpb25OYW1lIGVxICJleGNlcHRpb24iKSB7Ci0gICAg
ICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIGludGVyZmFjZS4uLlxuIiB1bmxlc3MgJGJl
UXVpZXQ7Ci0KLSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAiIjsKLSAgICAgICAgbXkgJGlu
dGVyZmFjZURhdGEgPSAiIjsKLQotICAgICAgICAjIE1hdGNoIGlkZW50aWZpZXIgb2YgdGhlIGlu
dGVyZmFjZSwgYW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEgPX4gLyRJRExTdHJ1
Y3R1cmU6OmludGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNFeGNlcHRpb24gPSAo
ZGVmaW5lZCgkMSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJp
YnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVyZmFjZUV4dGVuZGVk
QXR0cmlidXRlcyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDMpID8gJDMg
OiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkg
JGludGVyZmFjZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAgICAgICAgJGludGVy
ZmFjZURhdGEgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJj
ZTpcbiRkYXRhXG4pIikpOwotCi0gICAgICAgICMgRmlsbCBpbiBrbm93biBwYXJ0cyBvZiB0aGUg
ZG9tQ2xhc3MgZGF0YXN0cnVjdHVyZSBub3cuLi4KLSAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2Vw
dGlvbigkaXNFeGNlcHRpb24pOwotICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5h
bWUpOwotICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZXMoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChkZWZpbmVk
ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ29uc3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAgICAgICAgICAgICRk
YXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgfSBlbHNpZiAoZGVm
aW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewotICAgICAg
ICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKLSAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVu
ZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2Rl
LCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifS0+eyJTaWduYXR1cmUi
fSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3Ii
fSA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9eyJDb25zdHJ1Y3Rv
ck5hbWUifTsKLSAgICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2Rl
KTsKLSAgICAgICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICItIik7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5p
dHkiKTsKKyAgICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIkluZmluaXR5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkluZmluaXR5Iik7CisgICAgICAgIHJldHVybiAiSW5maW5p
dHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIk5hTiIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJOYU4iKTsKKyAgICAg
ICAgcmV0dXJuICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRv
a2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQogCi0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBp
bnRlcmZhY2VQYXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZv
cmVhY2goQGludGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0g
ICAgICAgICAgICAkbGluZSA9fiBzL1xzKi8vZzsKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0
aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0
YU5vZGUtPnBhcmVudHM7Ci0gICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVy
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15
ICRxdWFsaWZpZXIgPSAkc2VsZi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJG5ld0Rh
dGFOb2RlID0gJHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCgkbmV3RGF0YU5vZGUpICYmICRxdWFs
aWZpZXIgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMo
MSk7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcmV0dXJuIGlmICRwYXJlbnRzT25s
eTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXJp
YWxpemVyIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRpbnRlcmZhY2VE
YXRhID1+IHMvW1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxp
dCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CiAKLSAgICAgICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAg
ICAgICAgIG5leHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgkbGluZSA9
fiAvXFdhdHRyaWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVj
dHVyZTo6aW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9Iik7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybigkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
IHx8ICRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
T3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgcmV0dXJu
OworfQogCi0gICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMSk7Ci0gICAg
ICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgi
UGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15
ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMykgPyAkMyA6ICIgIik7
IGNob3AoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyk7CitzdWIgcGFyc2VTZXJpYWxpemF0
aW9uUGF0dGVybgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
U2VyaWFsaXphdGlvblBhdHRlcm5NYXAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFs
aXphdGlvblBhdHRlcm5MaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRh
VHlwZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRl
ZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIp
KTsKLSAgCi0gICAgICAgICAgICAgICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5l
ZWRlZCBmb3IgcmVnZXhwIG1hdGNoaW5nCitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1h
cAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImlu
aGVyaXQiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICByZXR1cm47Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9
fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAg
IG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJz
ZVNlcmlhbGl6YXRpb25QYXR0ZXJuTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiZ2V0dGVyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxm
LT5wYXJzZUlkZW50aWZpZXJzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmV0dXJu
OworfQogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnNldHRlclJh
aXNlc1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyRXhjZXB0aW9uID0gKGRl
ZmluZWQoJDEpID8gJDEgOiAiIik7CitzdWIgcGFyc2VJZGVudGlmaWVycworeworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQGlkZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAg
ICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiLCIpOworICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdl
dFRva2VuKCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlkZW50cywgJHRva2VuLT52YWx1ZSgp
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIFxAaWRlbnRzOworfQogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFO
b2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
dHlwZSgkYXR0cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0
YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
KG5ldyBkb21TaWduYXR1cmUoKSk7CitzdWIgcGFyc2VRdWFsaWZpZXIKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5h
bWUoJGF0dHJpYnV0ZURhdGFOYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+dHlwZSgkYXR0cmlidXRlRGF0YVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZXMoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcykpOworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RhdGljIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0YXRp
YyIpOworICAgICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAic3RyaW5naWZpZXIiKTsKKyAgICAgICAgcmV0dXJuICJzdHJp
bmdpZmllciI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9
ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYs
ICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHw+ICBBdHRyaWJ1dGU7IFNUQVRJQz8g
XCIkaXNTdGF0aWNcIiBUWVBFIFwiJGF0dHJpYnV0ZVR5cGVcIiBEQVRBIE5BTUUgXCIkYXR0cmli
dXRlRGF0YU5hbWVcIiBEQVRBIFRZUEUgXCIkYXR0cmlidXRlRGF0YVR5cGVcIiBHRVQgRVhDRVBU
SU9OPyBcIiRnZXR0ZXJFeGNlcHRpb25cIiBTRVQgRVhDRVBUSU9OPyBcIiRzZXR0ZXJFeGNlcHRp
b25cIiIgLgotICAgICAgICAgICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAg
fCAgICAgICAgICAgICAgICAgIiwgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVRdWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVz
dF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJu
VHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2Rl
KSkgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUp
OworICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAot
ICAgICAgICAgICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAg
ICAgICAgJHNldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRu
ZXdEYXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRp
b24pOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9
IHNwbGl0KC8sLywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGlu
ZSAhfiAvXlxzKigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0
XHMrLykgewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZh
Y2VNZXRob2RTZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVc
bikiOworc3ViIHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBteSAk
bWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9w
KCRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRp
YyA9IGRlZmluZWQoJDIpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmlu
ZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsK
LSAgICAgICAgICAgICAgICBteSAkbWV0aG9kTmFtZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAg
bXkgJG1ldGhvZFNpZ25hdHVyZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVy
cm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykg
eworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VBdHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CiAKLSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVk
IGZvciByZWdleHAgbWF0Y2hpbmcKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKwor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9
IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkp
IHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJp
YnV0ZSIpOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiYXR0cmlidXRlIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2Vu
LT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJzZUdldCgpOworICAg
ICAgICBpZiAoZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFO
b2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNlcyJ9fSk7CisgICAg
ICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVm
LT57InNldHJhaXNlcyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAg
ICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAg
ICAgbXkgJG1ldGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBh
cnNlSW5oZXJpdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0Iikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVy
aXQiKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAg
ICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CitzdWIgcGFy
c2VSZWFkT25seQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyZWFkb25seSIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyZWFk
b25seSIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7
Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5
cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRl
cykpOworc3ViIHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAg
ICAgICAgcHJpbnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUg
XCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0aG9k
RXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRl
cygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxz
XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTcGVjaWFsT3BlcmF0aW9uKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRp
b25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJu
VHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0
ZXJhdG9yUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQg
KCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRy
ZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwot
ICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0
KC8sLywgJG1ldGhvZEV4Y2VwdGlvbik7CitzdWIgcGFyc2VTcGVjaWFsT3BlcmF0aW9uCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hp
ZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3Bl
Y2lhbCgpOworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICBteSAkcmV0
dXJuVHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2Rl
ID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+
c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
JGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRl
cnMoJG5ld0RhdGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZVNwZWNpYWxzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9
ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwg
JG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxp
bmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAg
IG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsg
Y2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25z
dFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpc
biRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgk
MykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAg
ICAgICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICB3aGlsZSAoMSkgeworICAg
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VT
cGVjaWFsKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBbXTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRh
Tm9kZSA9IG5ldyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
bmFtZSgkY29uc3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGNv
bnN0VHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29uc3RWYWx1
ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFy
c2VTcGVjaWFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIi
KTsKKyAgICAgICAgcmV0dXJuICJnZXR0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInNldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJzZXR0ZXIiKTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY3JlYXRvciIpOworICAgICAgICBy
ZXR1cm4gImNyZWF0b3IiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0
ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZGVsZXRlciIpOworICAgICAgICByZXR1cm4gImRlbGV0ZXIiOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsZWdhY3ljYWxsZXIiKTsKKyAgICAgICAg
cmV0dXJuICJsZWdhY3ljYWxsZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBt
eSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmNvbnN0YW50czsKLSAgICAgICAgICAgICAgICBwdXNo
KEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9y
UmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFu
dDsgVFlQRSBcIiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0
VmFsdWVcIlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIml0ZXJhdG9yIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSXRlcmF0b3JSZXN0
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfC0tLS0+IEludGVyZmFjZTsgTkFNRSBc
IiRpbnRlcmZhY2VOYW1lXCIiIC4KLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMo
IlxuICB8ICAgICAgICAgICAgICAgICAiLCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykg
LiAiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUl0ZXJhdG9yUmVzdAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJpdGVyYXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpdGVyYXRvciIpOworICAgICAgICAkc2VsZi0+cGFy
c2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OyIpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIK
LXN1YiBEZXRlcm1pbmVQYXJzZU1vZGUKK3N1YiBwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZh
Y2VPck9iamVjdAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsgIAotICAgIG15ICRsaW5lID0g
c2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+
IC9tb2R1bGUvKSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAo
JF8gPX4gL2ludGVyZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAg
ICB9IGVsc2lmICgkXyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhD
RVBUSU9OOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMS8p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2Uo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAib2JqZWN0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIm9iamVjdCIpOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRt
b2RlOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYt
PmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgfQorICAgIHJldHVybjsKIH0KIAot
IyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBQcm9jZXNzU2VjdGlvbgorc3ViIHBhcnNlT3BlcmF0aW9u
UmVzdAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUg
ZXEgTU9ERV9NT0RVTEUpIHsKLSAgICAgICAgZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUh
IEZhdGFsIGVycm9yIVxuIikgaWYgKCRkb2N1bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50
ID0gbmV3IGlkbERvY3VtZW50KCk7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1
bWVudCk7Ci0gICAgfSBlbHNpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFy
c2VNb2RlIGVxIE1PREVfRVhDRVBUSU9OKSB7Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNs
YXNzKCk7Ci0gICAgICAgIG15ICRzZWN0aW9uTmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRF
UkZBQ0UgPyAiaW50ZXJmYWNlIiA6ICJleGNlcHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJz
ZUludGVyZmFjZSgkbm9kZSwgJHNlY3Rpb25OYW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8g
bW9kdWxlIHNwZWNpZmllZCEgRmF0YWwgRXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwot
ICAgICAgICBteSAkYXJyYXlSZWYgPSAkZG9jdW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2go
QCRhcnJheVJlZiwgJG5vZGUpOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVu
Y3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVy
ZSgpKTsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIo
KTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJG5hbWUpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAkbmFtZSk7
CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRzZWxmLT5wYXJz
ZUFyZ3VtZW50TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNF
eGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgQHRl
bXBvcmFyeUNvbnRlbnQgPSAiIjsKK3N1YiBwYXJzZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgp
OworICAgIH0KKyAgICByZXR1cm4gIiI7CiB9CiAKLTE7CitzdWIgcGFyc2VBcmd1bWVudExpc3QK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudExpc3Rf
MS8pIHsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsK
KyAgICAgICAgcHVzaChAYXJndW1lbnRzLCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7Cisg
ICAgfQorICAgIHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3
aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBh
cmd1bWVudHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7
Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnRMaXN0XzEv
KSB7CisgICAgICAgIG15ICRpbiA9ICRzZWxmLT5wYXJzZUluKCk7CisgICAgICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxv
d0VtcHR5KCk7CisgICAgICAgIG15ICRhcmd1bWVudCA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsT3JS
ZXF1aXJlZEFyZ3VtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXJndW1l
bnQtPmRpcmVjdGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVu
dDsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OworCisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Cisg
ICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib3B0aW9uYWwiKTsKKyAgICAgICAgbXkgJHR5cGUgPSAk
c2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lk
ZXIgbGFzdCAiPyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXiguKilcPyQvKSB7CisgICAgICAg
ICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAg
ICAgICMgUmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2Jq
ZWN0W10iLgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9k
ZS0+dHlwZSgkdHlwZSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJz
ZUFyZ3VtZW50TmFtZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAg
ICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVs
ZF8xLykgeworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAg
IyBkb21EYXRhTm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0
eXBlID1+IC9eKC4qKVw/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxh
YmxlKDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlz
TnVsbGFibGUoMCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlz
dHMsIGUuZy4gIm9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMv
XD8vL2c7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlRWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYt
PnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnROYW1lXzEvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VBcmd1bWVudE5hbWVLZXl3b3JkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLi4uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIi4uLiIpOworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkZpZWxkKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkZpZWxk
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRv
bUF0dHJpYnV0ZSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJp
YnV0ZSIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJl
KCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VU
eXBlKCkpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIpOworICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIlsiKTsKKyAgICAgICAgbXkgJGF0dHJzID0ge307CisgICAgICAgIG15ICRhdHRyID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUoKTsKKyAgICAgICAgZm9yIG15ICRrZXkgKGtleXMg
JXskYXR0cn0pIHsKKyAgICAgICAgICAgICRhdHRycy0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsK
KyAgICAgICAgfQorICAgICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
cygpOworICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAg
JGF0dHJzLT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIpOworICAgICAgICByZXR1
cm4gJGF0dHJzOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBteSAkYXR0ciA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICAgICAgZm9yIG15ICRr
ZXkgKGtleXMgJXskYXR0cn0pIHsKKyAgICAgICAgICAgICAgICAkYXR0cnMtPnska2V5fSA9ICRh
dHRyLT57JGtleX07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkYXR0cnM7Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHRva2VuLT52
YWx1ZSgpKTsKKyAgICB9CisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTcGVjIGRvZXNu
JyBhbGxvdyAiW10iLiBCdXQgV2ViS2l0IHJlcXVpcmVzLgorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAnXScpIHsKKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFs
dWUoKSk7CisgICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGVSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0
OworICAgIG15ICRhdHRycyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiKTsKKyAgICAgICAgJGF0dHJzLT57
JG5hbWV9ID0gJHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIpOworICAgICAgICByZXR1cm4gJGF0
dHJzOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIpOworICAgICAgICAk
YXR0cnMtPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7Cisg
ICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1
Y3RvciIpIHsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgJGF0dHJzLT57JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAgICBy
ZXR1cm4gJGF0dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkg
JHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZVJlc3QzKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiKTsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAi
JiIgLiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
fCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ8Iik7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
cmV0dXJuICRuYW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAk
YXR0ci0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0
dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xLykg
eworICAgICAgICBteSBAbmFtZXMgPSAoKTsKKyAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsK
KyAgICAgICAgcHVzaChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOwor
ICAgICAgICByZXR1cm4gam9pbignICcsIEBuYW1lcyk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VJZGVudGlm
aWVyTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisK
KyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAg
ICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCkpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
XEBuYW1lczsKK30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lS2V5d29yZAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1dGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJj
YWxsYmFjayIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiY3JlYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
ZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
aW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRU
b2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlh
bGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1
bnJlc3RyaWN0ZWQiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAg
ICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dFR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VTaW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJhbnkiKTsKKyAgICAgICAgcmV0dXJuICJhbnkiIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRT
aW5nbGVUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVW5pb25UeXBlCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiKCIpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJv
ciIpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CisKK3N1YiBwYXJzZVVuaW9uTWVtYmVyVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiYW55IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImFueSIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgICRzZWxmLT5wYXJzZVR5
cGVTdWZmaXgoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlw
ZV8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIik7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9u
TWVtYmVyVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7Cisg
ICAgfQorICAgIHJldHVybjsKK30KKworc3ViIHBhcnNlTm9uQW55VHlwZQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJCeXRlU3RyaW5nIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkJ5dGVTdHJpbmci
KTsKKyAgICAgICAgcmV0dXJuICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9NU3RyaW5n
Iik7CisgICAgICAgIHJldHVybiAiRE9NU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwi
KTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIpOworICAgICAgICByZXR1
cm4gInNlcXVlbmNlPCIgLiAkdHlwZSAuICI+IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0Iik7CisgICAgICAgIHJl
dHVybiAib2JqZWN0IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJEYXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkRhdGUiKTsKKyAgICAgICAgcmV0dXJuICJEYXRlIiAu
ICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1
ZmZpeCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlwZQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15
ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1
ZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVByaW1p
dGl2ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVU
eXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZEludGVnZXJUeXBl
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBl
XzIvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJvb2xlYW4iKTsK
KyAgICAgICAgcmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJieXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImJ5dGUiKTsKKyAgICAgICAgcmV0dXJuICJieXRlIjsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJvY3RldCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvY3RldCIpOworICAgICAgICByZXR1cm4gIm9jdGV0
IjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIpOwor
ICAgICAgICByZXR1cm4gInVucmVzdHJpY3RlZCIgLiAkc2VsZi0+cGFyc2VGbG9hdFR5cGUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVucmVzdHJpY3RlZEZsb2F0
VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlRmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImZsb2F0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImZsb2F0Iik7CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkb3VibGUiKTsKKyAgICAgICAgcmV0dXJu
ICJkb3VibGUiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5zaWduZWQiKTsKKyAg
ICAgICAgcmV0dXJuICJ1bnNpZ25lZCAiIC4gJHNlbGYtPnBhcnNlSW50ZWdlclR5cGUoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlSW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAic2hvcnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAic2hvcnQiKTsKKyAgICAgICAgcmV0dXJuICJzaG9ydCI7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludCIpOworICAgICAgICByZXR1cm4gImludCI7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIik7CisgICAgICAg
IGlmICgkc2VsZi0+cGFyc2VPcHRpb25hbExvbmcoKSkgeworICAgICAgICAgICAgcmV0dXJuICJs
b25nIGxvbmciOworICAgICAgICB9CisgICAgICAgIHJldHVybiAibG9uZyI7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlT3B0aW9uYWxMb25nCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImxvbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAibG9uZyIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7
Cit9CisKK3N1YiBwYXJzZVR5cGVTdWZmaXgKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJbIik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiXSIpOworICAgICAgICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/IikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iKTsKKyAgICAgICAgcmV0
dXJuICI/IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSgpOworICAg
IH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhB
cnJheQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIik7CisgICAgICAgIHJl
dHVybiAiW10iIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICByZXR1cm4g
IiI7Cit9CisKK3N1YiBwYXJzZU51bGwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
PyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI/Iik7CisgICAgICAgIHJldHVybiAiPyI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKwor
c3ViIHBhcnNlUmV0dXJuVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ2b2lk
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
InZvaWQiKTsKKyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2Vw
dGlvbkZpZWxkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImluaGVyaXRzIikgeworICAgICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkc2VsZi0+cGFy
c2VJbmhlcml0c0dldHRlcigpOworICAgICAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMTsKKyAg
ICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFp
c2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0R2V0XzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMoKTsKKyAgICB9CisgICAgcmV0dXJuOwor
fQorCitzdWIgcGFyc2VJbmhlcml0c0dldHRlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJpbmhlcml0cyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJpbmhlcml0cyIpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlU2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkYXR0ciA9IHt9OworICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAwOworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJzZXR0ZXIiKSB7CisgICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNl
U2V0UmFpc2VzKCk7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNl
R2V0UmFpc2VzMigpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9
IFtdOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNl
cygpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRTZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VTZXRHZXRSYWlzZXMyKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2VzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIiwiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJnZXR0ZXIiKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlv
bkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlzZXMK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZVNldEdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRTZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAg
ICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAwOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMi
fSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlczMoKTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2Vz
In0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VHZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImdldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJnZXRyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFy
c2VTZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHJhaXNlcyIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJz
ZXRyYWlzZXMiKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsK
KyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15IEBleGNlcHRpb25z
ID0gKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiKCIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
IHB1c2goQGV4Y2VwdGlvbnMsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1c2goQGV4Y2Vw
dGlvbnMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiKTsKKyAgICAgICAgcmV0dXJuIFxA
ZXhjZXB0aW9uczsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VSYWlzZXMKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIpOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1
YiBwYXJzZURlZmluaXRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHREZWZpbml0aW9uXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09y
SW50ZXJmYWNlT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlh
bCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWwoe30pOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VEaWN0aW9uYXJ5T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9u
T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW1PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRl
Zih7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibW9kdWxlIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
SW1wbGVtZW50c1N0YXRlbWVudCh7fSk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlTW9kdWxl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgbXkg
JGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIik7CisgICAgICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0Vt
cHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAg
ICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0
aW9ucyA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHskZG9jdW1l
bnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0
aW9uYWxTZW1pY29sb24oKTsKKyAgICAgICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNhbGxiYWNrIik7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50
ZXJmYWNlT2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlT2xkCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRh
dGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIik7CisgICAgICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5
KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRh
dGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNl
cHRpb24oMCk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5w
YXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJ7Iik7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNl
bGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iik7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgk
ZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJp
YnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0
dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJP
bGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDb25zdCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VN
ZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25h
cnlPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9u
YXJ5Iik7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1w
dHkoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iik7Cisg
ICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJPbGQKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7
CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk9sZAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9
IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAg
ICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+
bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEp
OworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhl
cml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAieyIpOworICAgICAgICBteSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJz
ZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgIyRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9Iik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIpOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVt
YmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlRW51bU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJlbnVtIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImVudW0iKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
QWxsb3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRU
b2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVl
TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIn0iKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI7Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRy
aWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6
ZXIoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
T3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZpZXIgPSAkc2Vs
Zi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNl
QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0T2xkKCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0
YU5vZGUpICYmICRxdWFsaWZpZXIgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRkYXRhTm9k
ZS0+aXNTdGF0aWMoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT2xkKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3Ioe30pOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUF0dHJpYnV0ZVJlc3RPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICI7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBh
cnNlUmV0dXJuVHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVy
YXRpb25SZXN0KHt9KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAg
ICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUF0
dHJpYnV0ZU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0
ZU9sZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBh
cnNlQXR0cmlidXRlUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4
dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0
dHJpYnV0ZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAg
ICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7Cisg
ICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJhdHRyaWJ1dGUiKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRz
ZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAg
ICBteSAkZ2V0UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRn
ZXRSZWYpIHsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlv
bnN9LCBAeyRnZXRSZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3
RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsK
KyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiKTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VJbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbiIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbiIpOwor
ICAgICAgICByZXR1cm4gImluIjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFy
c2VPcHRpb25hbFNlbWljb2xvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
KTsKKyAgICB9Cit9CisKK3N1YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKyAgICBteSAkbWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVtIChA
eyRtZW1iZXJzfSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikg
eworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAg
ICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRv
bUNvbnN0YW50IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwg
JGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRp
dGVtKSBlcSAiZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQor
fQorCitzdWIgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBp
ZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAg
ICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAk
ZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5l
ZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsi
TmFtZWRDb25zdHJ1Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICgl
YXR0cmlidXRlcyk7CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5
c1swXTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJp
YnV0ZXN7JGNvbnN0cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dC0+eyJOYW1lZENvbnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0
YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisxOworCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmNwcAppbmRleCAwY2Y2NzY1OTljNjNiZjEyNWMxZDQ5YmNhYTBjODMzYzg1
MzE4MTNjLi41MzE4MWQ0YTkwNTIzZjI1NGM4MjVlNTY5YzdhZmQwODg4NjhiOGUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2Vi
RE9NVGVzdE9iai5jcHAKQEAgLTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6
c2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIp
CiAgICAgaW1wbCgpLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7
CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01U
ZXN0T2JqOjpsb25nQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJl
dHVybiAwOwogCi0gICAgcmV0dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCkt
PmxvbmdBdHRyKCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcg
bmV3QXR0cikKK3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRy
KQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNl
dEF0dHIobmV3QXR0cik7CisgICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9
CiAKIGxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1
LDkgKzQyNSw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oaW50IG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBp
bXBsKCktPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uLCBlYyk7Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRp
b25Db2RlPihlYykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9N
VGVzdE9iajo6c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3Ry
aW5nJiBuZXdTdHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsK
LSAgICB3ZWJET01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVj
KSk7CisgICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0
T2JqOjpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NzcsMjggKzY3
MywyOCBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9p
ZE1ldGhvZCgpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhs
b25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKQordm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50
IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2Jq
JiBvYmpBcmcpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlt
cGwoKS0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7
CisgICAgaW1wbCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNv
cmUob2JqQXJnKSk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50
IFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBp
bXBsKCktPmxvbmdNZXRob2QoKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhv
ZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25z
dCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdp
dGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2Vi
RE9NVGVzdE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dl
YkNvcmUob2JqQXJnKSk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdl
YkRPTVRlc3RPYmo6Om9iak1ldGhvZCgpCkBAIC03MDksMTIgKzcwNSwxMiBAQCBXZWJET01UZXN0
T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6
Z2V0UHRyKGltcGwoKS0+b2JqTWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01U
ZXN0T2JqOjpvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJp
bmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBX
ZWJET01UZXN0T2JqOjpvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAo
IWltcGwoKSkKICAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0
b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJn
LCB0b1dlYkNvcmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIo
aW1wbCgpLT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpB
cmcpKSkpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdl
YkRPTVRlc3RPYmomIG9iakFyZykKQEAgLTkwMiwzNiArODk4LDM2IEBAIHZvaWQgV2ViRE9NVGVz
dE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQogCiAjZW5k
aWYKIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiApCit2b2lk
IFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewogICAgIGlm
ICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2Vi
Q29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12
b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQgV2ViRE9N
VGVzdE9iajo6Y29udmVydDIoY29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBs
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKCkp
OworICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2Vi
RE9NVGVzdE9iajo6Y29udmVydDQoY29uc3QgV2ViRE9NZCYgKQordm9pZCBXZWJET01UZXN0T2Jq
Ojpjb252ZXJ0NChjb25zdCBXZWJET01kJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUoKSk7CisgICAg
aW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0
T2JqOjpjb252ZXJ0NShjb25zdCBXZWJET01lJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQ1KGNvbnN0IFdlYkRPTWUmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQ1KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCkt
PmNvbnZlcnQ1KHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCiBXZWJET01TVkdQb2ludCBXZWJET01U
ZXN0T2JqOjptdXRhYmxlUG9pbnRGdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCmluZGV4IGQ1NWZm
Nzg2NTUxZWJkM2M3NGFkMWE5Njg4MzJkMjAyOWJjYWM1MjcuLjVkOWE5YWMwMDI4MWRjOTA4OTMw
MWQ2ZTdhNWI1Mjc4ZjRkYWFkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC03Nyw4ICs3Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFNob3J0QXR0cihzaG9ydCk7CiAgICAgdW5zaWduZWQgc2hv
cnQgdW5zaWduZWRTaG9ydEF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFVuc2lnbmVkU2hvcnRB
dHRyKHVuc2lnbmVkIHNob3J0KTsKLSAgICBsb25nIGxvbmcgQXR0cigpIGNvbnN0OwotICAgIHZv
aWQgc2V0QXR0cihsb25nIGxvbmcpOworICAgIGludCBsb25nQXR0cigpIGNvbnN0OworICAgIHZv
aWQgc2V0TG9uZ0F0dHIoaW50KTsKICAgICBsb25nIGxvbmcgbG9uZ0xvbmdBdHRyKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRMb25nTG9uZ0F0dHIobG9uZyBsb25nKTsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgdW5zaWduZWRMb25nTG9uZ0F0dHIoKSBjb25zdDsKQEAgLTE0NywxMSArMTQ3LDExIEBA
IHB1YmxpYzoKICAgICBpbnQgcmVwbGFjZWFibGVBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHZv
aWQgdm9pZE1ldGhvZCgpOwotICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBB
cmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpB
cmcpOwotICAgIGxvbmcgbG9uZyBNZXRob2QoKTsKLSAgICBsb25nIGxvbmcgTWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZyk7CisgICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdB
cmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpB
cmcpOworICAgIGludCBsb25nTWV0aG9kKCk7CisgICAgaW50IGxvbmdNZXRob2RXaXRoQXJncyhp
bnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RP
YmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2QoKTsKLSAgICBXZWJET01U
ZXN0T2JqIG9iak1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmlu
ZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIFdlYkRPTVRlc3RP
Ymogb2JqTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3Ry
QXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RPYmogbWV0
aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhjb25zdCBXZWJET01TdHJpbmcmIHN0ckFy
ZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICB2b2lkIHNlcmlhbGl6ZWRWYWx1
ZShjb25zdCBXZWJET01TdHJpbmcmIHNlcmlhbGl6ZWRBcmcpOwogICAgIHZvaWQgaWRiS2V5KGNv
bnN0IFdlYkRPTUlEQktleSYga2V5KTsKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdl
YkRPTVN0cmluZyYgdHlwZSk7CiAjZW5kaWYKLSAgICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdlYkRP
TWEmICk7Ci0gICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJET01iJiApOwotICAgIHZvaWQgY29u
dmVydDQoY29uc3QgV2ViRE9NZCYgKTsKLSAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUm
ICk7CisgICAgdm9pZCBjb252ZXJ0MShjb25zdCBXZWJET01hJiB2YWx1ZSk7CisgICAgdm9pZCBj
b252ZXJ0Mihjb25zdCBXZWJET01iJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChjb25zdCBX
ZWJET01kJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2YWx1ZSk7
CiAgICAgV2ViRE9NU1ZHUG9pbnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBXZWJET01T
VkdQb2ludCBpbW11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggMTIwNGRmYjUwZGJkM2RjOWE0MjNj
YTFkNWFhYjU3MzE4MzVlYjkzOC4uMmQwM2RhZTlhOGRiZmE3MDVhMWU0ZGM1OGI2NTYzOTIxMDhi
Nzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCBlbnVtIHsKICAgICBQUk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAgIFBST1Bf
U0hPUlRfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJPUF9BVFRS
LAorICAgIFBST1BfTE9OR19BVFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAgICAgUFJP
UF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApAQCAtMTc5
LDYgKzE3OSwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0
eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVTZWxmLT5z
ZXRVbnNpZ25lZFNob3J0QXR0cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAgY29yZVNl
bGYtPnNldExvbmdBdHRyKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVh
azsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7CiAgICAg
ICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRfdWludDY0
KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKQEAgLTIyOCw4ICsyMzIsNyBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BlcnR5SWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfQVRUUl9X
SVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192
YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjogewpA
QCAtMjM4LDggKzI0MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3By
b3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046
IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVT
ZWxmLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6ZnJvbVVU
RjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNl
dFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3Zh
bHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNl
IFBST1BfU1RSSU5HX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjksOCArMzMx
LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZh
bHVlLCBjb3JlU2VsZi0+dW5zaWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KLSAgICBjYXNlIFBST1BfQVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2NCh2YWx1
ZSwgY29yZVNlbGYtPmF0dHIoKSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAgICAg
ICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAgLTU5Mywx
MiArNTk1LDEyIEBAIEdfTUFYVUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19pbnQ2NCgiYXR0ciIsIC8qIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBzaG9ydCBk
ZXNjcmlwdGlvbiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIsIC8qIGxv
bmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01J
TklOVDY0LCAvKiBtaW4gKi8KLUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyogbmFtZSAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidGVzdF9vYmpfbG9uZy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
YWQtd3JpdGUgIGdsb25nIFRlc3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8g
d2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICov
CitHX01BWExPTkcsIC8qIG1heCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0
Q2xhc3MsCkBAIC05MzEsNyArOTMzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhv
ZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05NDQsMjEgKzk0NiwyMSBAQCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
aW50NjQgQXJnLCBjbwogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNvcmUob2Jq
QXJnKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwogICAgIH0K
LSAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZl
cnRlZE9iakFyZyk7CisgICAgaXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZl
cnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rl
c3Rfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21f
dGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xvbmcgcmVz
dWx0ID0gaXRlbS0+bG9uZ01ldGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWdpbnQ2
NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoq
IG9iakFyZykKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJn
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3Ry
QXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtOTcxLDcgKzk3Myw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAgIGNvbnZl
cnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxf
aWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVzdWx0ID0g
aXRlbS0+TWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFy
Zyk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCkBAIC05ODcsNyArOTg5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRfZG9t
X3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdp
bnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykK
K3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVz
dE9iaiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTEwMDAsNyArMTAwMiw3
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdl
YktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0
ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVj
dFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVy
dGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9i
aj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAgV2ViS2l0RE9N
VGVzdE9iaiogcmVzdWx0ID0gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEzNDQsNjMgKzEzNDYsNjMgQEAgd2Via2l0X2RvbV90ZXN0
X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2No
YXIqIHR5cGUKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZl
cnQxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZCA9IDA7
Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAg
ICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFs
dWUpOworICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUp
IHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAg
ICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29u
dmVydDEoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0MShjb252ZXJ0ZWRWYWx1ZSk7CiB9
CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NYiogKQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9m
YWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAg
ICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgp
IHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJu
X2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBX
ZWJDb3JlOjpiKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAg
IGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5f
aWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZl
cnRlZCk7CisgICAgaXRlbS0+Y29udmVydDIoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktp
dERPTWQqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NZCogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6
VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWls
KCk7Ci0gICAgV2ViQ29yZTo6ZCogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAg
IGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNv
bnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZCog
Y29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRW
YWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29u
dmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWQpOworICAg
IGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90
ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01lKiApCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktp
dERPTWUqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdl
YkNvcmU6OmUqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQg
PSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRlZFZh
bHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJL
aXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVl
KTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDUoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252
ZXJ0NShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVNWR1BvaW50KgpAQCAtMTUyMSwy
MyArMTUyMywyMyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9ydF9hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGd1c2hvcnQgdmFsdQogICAgIGl0ZW0tPnNldFVuc2ln
bmVkU2hvcnRBdHRyKHZhbHVlKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29i
al9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
Ci0gICAgZ2ludDY0IHJlc3VsdCA9IGl0ZW0tPmF0dHIoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBp
dGVtLT5sb25nQXR0cigpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVl
KQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGdsb25nIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRlbS0+c2V0QXR0cih2YWx1ZSk7Cisg
ICAgaXRlbS0+c2V0TG9uZ0F0dHIodmFsdWUpOwogfQogCiBnaW50NjQKQEAgLTE4NjUsMTcgKzE4
NjcsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRp
b24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KIH0KIAogdm9pZAotd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xv
bmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSwgZWMpOwotICAgIGlm
IChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNj
KGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0
cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAg
ICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSk7CiB9CiAKIGdsb25nCkBA
IC0xOTE0LDE5ICsxOTExLDE0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiB9CiAKIHZvaWQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlv
bihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVy
cm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhj
ZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwogICAgIFdURjo6U3RyaW5nIGNvbnZl
cnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBXZWJDb3JlOjpF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRf
ZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBl
Y2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIGdjaGFyKgpAQCAtMjAx
Nyw3ICsyMDA5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfc3RhdGVf
YXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJy
b3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVf
cmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQog
ewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwpAQCAtMjAyOCwxMiArMjAyMCw3IEBAIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAg
ICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRE
T01UZXN0T2JqKgpAQCAtMjA1Myw3ICsyMDQwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00K
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJu
X2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwpAQCAtMjA2NCwxMiArMjA1MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2Ny
aXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiAgICAgICAg
IGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5f
aWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3Nl
dF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiks
IGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAog
V2ViS2l0RE9NVGVzdE9iaioKQEAgLTIxMTUsNyArMjA5Nyw3IEBAIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0
cmlidXRlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4
ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3Ip
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMTI2LDEyICsy
MTA4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUKICAgICAgICAgY29udmVydGVkVmFsdWUg
PSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRl
ZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
aXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRf
ZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBl
Y2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZh
bHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
aAppbmRleCAzOTVmYTc3YTY5MTQ0ZDIwODZkZWI1NDMyYWM2MDliMmU0Y2NkOTY2Li45ZDkwNWFk
MmIxOTgxMjk5ZDllZjViYTM0MGRhNzUyMjI2NGIyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5oCkBAIC01OCw3ICs1OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRo
b2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpf
dm9pZF9tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAq
IEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNn
Y2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTY2LDMwICs2Niwz
MCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpOwogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRf
bWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25z
dCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0X2RvbV90
ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xv
bmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJn
KTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZDoKKyAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfbG9uZ19tZXRob2Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoK
ICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0
X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwog
CiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJnczoKKyAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktp
dERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAg
KiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoK
ICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0
X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcs
IGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CitXRUJLSVRf
QVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJncyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBX
ZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpf
b2JqX21ldGhvZDoKQEAgLTEwNCw3ICsxMDQsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9t
ZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagot
ICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEg
I2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtMTEyLDcgKzEx
Miw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBz
ZWxmKTsKICAqCiAqKi8KIFdFQktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21f
dGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2lu
dDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsK
K3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVz
dE9iaiogb2JqQXJnKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0
X3JlcXVpcmVzX2FsbF9hcmdzX2FuZF90aHJvd3M6CkBAIC00MDAsNDYgKzQwMCw0NiBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBjb25zdCBnY2hhciogdHlwZQogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQx
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWEKKyAq
IEB2YWx1ZTogQSAjV2ViS2l0RE9NYQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRf
QVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NYSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICog
QDogQSAjV2ViS2l0RE9NYgorICogQHZhbHVlOiBBICNXZWJLaXRET01iCiAgKgogICogUmV0dXJu
czoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiApOword2Via2l0X2RvbV90ZXN0
X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1ZSk7
CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NDoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRET01kCisgKiBAdmFsdWU6IEEgI1dlYktp
dERPTWQKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQq
ICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IFdlYktpdERPTWQqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZl
cnQ1OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWUK
KyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NZSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfbXV0YWJsZV9wb2ludF9mdW5jdGlvbjoKQEAgLTU1OCwyNSArNTU4LDI1
IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hv
cnRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHVlKTsKIAogLyoqCi0g
KiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfbG9uZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1
cm5zOgogICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8q
KgotICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAdmFs
dWU6IEEgI2dpbnQ2NAorICogQHZhbHVlOiBBICNnbG9uZwogICoKICAqIFJldHVybnM6CiAgKgog
KiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgog
ICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19sb25nX2F0dHI6CkBAIC05MDgsMTMgKzkw
OCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlv
bihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogICogd2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagogICogQHZhbHVlOiBBICNnbG9uZwotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
YXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcg
dmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsK
IAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2Vw
dGlvbjoKQEAgLTk1MywxMyArOTUyLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmlu
Z19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnY2hhcgotICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0
aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJf
ZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJf
ZXhjZXB0aW9uOgpAQCAtMTA0MCwxMyArMTAzOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNl
bAogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRl
X3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dl
YktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0
cmlidXRlX3JhaXNlczoKQEAgLTEwNjMsMTMgKzEwNjAsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET00KICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9j
b250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagog
ICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJp
YnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0
cmlidXRlOgpAQCAtMTEwNywxMyArMTEwMywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93
aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQog
ICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRf
YW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vy
cm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQ
SSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29u
dGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9z
Y3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNlc19hdHRy
aWJ1dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCmluZGV4IGY0OGE5YzgzMzcwZjUzNGNmNTA4YWEzY2ZlY2FlMjU5NzY2
N2VjNjcuLjQ5YTJmYzdkMGYxZTg3OWQ4OGY5OTk1Mzk3Yzk5NWVhZjMwM2NiODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
YmpUYWJsZVZhbHVlc1tdID0KICAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRy
aW5zaWMgfSwKICAgICB7ICJzaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0QXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidW5z
aWduZWRTaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0
cl90KXNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAotICAgIHsg
IkF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0ciwg
Tm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIp
LCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAi
bG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0
SlNUZXN0T2JqTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInVuc2lnbmVkTG9u
Z0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9ialN0cmluZ0F0dHIsIE5vSW50cmluc2ljIH0sCkBAIC0yNjYsOCArMjY2LDggQEAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10g
PQogICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09O
U1RfSkFWQVNDUklQVCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInZvaWRN
ZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAo
aW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBE
b250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyksIChp
bnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIk1ldGhvZCIsIERvbnREZWxldGUgfCBK
U0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0s
Ci0gICAgeyAiTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCisgICAgeyAi
bG9uZ01ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhv
ZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdNZXRob2RXaXRoQXJn
cyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdz
KSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kIiwgRG9udERl
bGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9J
bnRyaW5zaWMgfSwKICAgICB7ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6
OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRy
aW5zaWMgfSwKICAgICB7ICJtZXRob2RXaXRoU2VxdWVuY2VBcmciLCBEb250RGVsZXRlIHwgSlND
OjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkxLCBO
b0ludHJpbnNpYyB9LApAQCAtNDYzLDEyICs0NjMsMTIgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5
TmEKIH0KIAogCi1KU1ZhbHVlIGpzVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkp
OwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcihpbXBsLT5hdHRyKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1w
bC0+bG9uZ0F0dHIoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTAwMSwxMiArMTAw
MSwxMiBAQCB2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2Jq
QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7
CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOwotICAgIGltcGwtPnNldEF0dHIoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2YWx1ZS50
b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbXBsLT5zZXRMb25nQXR0cih2YWx1ZS50b0ludDMyKGV4
ZWMpKTsKIH0KIAogCkBAIC0xMTU5LDkgKzExNTksNyBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3Qs
CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
Q2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGlj
X2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQz
MihleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+
c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKIApA
QCAtMTE4MSw5ICsxMTc5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBVTlVTRURf
UEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9i
aio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBp
bXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS5pc0VtcHR5KCkgPyBT
dHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgZWMpOwotICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24odmFsdWUuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpOwogfQogCiAKQEAgLTEyMzEsOSArMTIyNyw3IEBAIHZvaWQgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHRoaXNPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzKGV4ZWMsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjQyLDEyICsxMjM2LDEwIEBA
IHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNj
cmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFs
dWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0
b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjY4LDEyICsxMjYwLDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhFeGVjU3RhCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRv
VGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApA
QCAtMTQ1MSw3ICsxNDQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBUZXN0T2Jq
KiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcg
bG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBs
b25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmlu
ZyYgc3RyQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVm
aW5lZCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVj
LCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBA
IC0xNDYwLDExICsxNDUwLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9i
aiogb2JqQXJnKHRvVGVzdE9iaihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAyLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPnZvaWRN
ZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXBsLT52b2lkTWV0aG9k
V2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQorRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRo
b2QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNf
aW5mbykpCkBAIC0xNDczLDExICsxNDYzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZv
KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bWV0
aG9kKCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nTWV0
aG9kKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDg3LDcg
KzE0NzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKgogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMy
KGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmco
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0Vt
cHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1
bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE0OTcsNyAr
MTQ4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
Ci0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZFdpdGhBcmdz
KEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoaW1wbC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xNTI0LDcgKzE1MTQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNf
Y2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMp
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkg
PyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE1MzQsNyArMTUyNCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAg
SlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpB
cmcpKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdB
cmcsIHN0ckFyZywgb2JqQXJnKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIApAQCAtMTU2NSwxMSArMTU1NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRQog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7
CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgaW1wbC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSk7CisgICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IGltcGwtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdBcmcpKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIxNDQsMTAgKzIxMzQsMTAgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kMigKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICB9CiAKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9u
Zz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50
b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsKKyAg
ICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjE3OCwxMCArMjE2OCwxMCBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KAogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2Fz
dDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2Fz
dDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChBcmcpOwor
ICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjQ4NSwxMCArMjQ3NSwxMCBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDEoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0
T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgp
IDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgYSogKHRvYShNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgYSogdmFsdWUodG9hKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDEoKTsKKyAgICBpbXBsLT5jb252ZXJ0
MSh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IApAQCAtMjUwMiwxMCArMjQ5MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogICAgIFRl
c3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
ICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAg
YiogKHRvYihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSk7CisgICAgYiogdmFsdWUodG9iKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+
Y29udmVydDIoKTsKKyAgICBpbXBsLT5jb252ZXJ0Mih2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUxOSwxMCArMjUwOSwxMCBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
dmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgZCogKHRvZChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgZCogdmFsdWUodG9kKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAg
ICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDQoKTsKKyAgICBpbXBsLT5jb252
ZXJ0NCh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIApAQCAtMjUzNiwxMCArMjUyNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVjKQogICAg
IFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0g
ICAgZSogKHRvZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSk7CisgICAgZSogdmFsdWUodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1w
bC0+Y29udmVydDUoKTsKKyAgICBpbXBsLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDEyMzI3MjQwNTJh
ZGYyMGViOGE2OTA2YTAyMTE5NTM1M2QxYTExY2YuLmY4MTBkODAwMTYwNGI4NmE0MjlmYTg4YjU1
NGZiYmU1OTAxOGU3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0ZWQ6CiAK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZvaWRNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhK
U0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkV4ZWNTdGF0ZSop
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2Qo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTIyOCw4ICsy
MjgsOCBAQCBKU0M6OkpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZQogdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6
SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNo
b3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwot
SlNDOjpKU1ZhbHVlIGpzVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9i
akxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lk
IHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01U
ZXN0T2JqLmgKaW5kZXggNmE5MDk5MTFjYzhiYjBhYzAzMWM3MDEyOWE0MTkxNjJkNjVlZWNhZS4u
OTU2MzM1OTFlN2ZiMzcwYjhkZGI2MGFhNzY0NTEyN2RkZDdjYjExYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApA
QCAtNzAsNyArNzAsNyBAQCBlbnVtIHsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01U
ZXN0T2JqICpyZWFkT25seVRlc3RPYmpBdHRyOwogQHByb3BlcnR5IHNob3J0IHNob3J0QXR0cjsK
IEBwcm9wZXJ0eSB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKLUBwcm9wZXJ0eSBs
b25nIGxvbmcgQXR0cjsKK0Bwcm9wZXJ0eSBpbnQgbG9uZ0F0dHI7CiBAcHJvcGVydHkgbG9uZyBs
b25nIGxvbmdMb25nQXR0cjsKIEBwcm9wZXJ0eSB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRM
b25nTG9uZ0F0dHI7CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHI7CkBAIC0x
MTcsMTggKzExNywxOCBAQCBlbnVtIHsKIEBwcm9wZXJ0eSBpbnQgcmVwbGFjZWFibGVBdHRyaWJ1
dGU7CiAKIC0gKHZvaWQpdm9pZE1ldGhvZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihs
b25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnOwotLSAobG9uZyBsb25nKU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRo
QXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9N
VGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0Fy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
Ky0gKGludClsb25nTWV0aG9kOworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdB
cmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7
CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdp
dGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihE
T01UZXN0T2JqICopb2JqQXJnOworLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihp
bnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAq
KW9iakFyZzsKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhy
b3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2
b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClp
ZGJLZXk6KERPTUlEQktleSAqKWtleTsKIC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9NRGljdGlv
bmFyeSAqKW9vIG9vbzooRE9NRGljdGlvbmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4
Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRob2RXaXRo
QXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9N
VGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25n
QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
OwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlk
IDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7
CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjoo
aWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVy
ZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKQEAgLTE2NSwxMCArMTY1LDEwIEBAIGVu
dW0gewogLSAodm9pZClvdmVybG9hZGVkTWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogI2VuZGlm
CiAtIChET01TVkdEb2N1bWVudCAqKWdldFNWR0RvY3VtZW50OwotLSAodm9pZCljb252ZXJ0MToo
RE9NYSAqKTsKLS0gKHZvaWQpY29udmVydDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZlcnQ0OihE
T01kICopOwotLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKTsKKy0gKHZvaWQpY29udmVydDE6KERP
TWEgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDI6KERPTWIgKil2YWx1ZTsKKy0gKHZvaWQpY29u
dmVydDQ6KERPTWQgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1ZTsKIC0g
KERPTVNWR1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb247CiAtIChET01TVkdQb2ludCAqKWlt
bXV0YWJsZVBvaW50RnVuY3Rpb247CiAtICh2b2lkKW9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4
IDhiMmJjZjAwYjFmOTY0MTNjOTBjOTA5MDBkNTBmODhjOGVhZDZkNjIuLjNkZDBlN2FmMGNhNjc5
YzgxYTc2ZmZjNjFkNDBhM2NhNmE5NTc2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMTQwLDE2ICsx
NDAsMTYgQEAKICAgICBJTVBMLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0
QXR0cik7CiB9CiAKLS0gKGxvbmcgbG9uZylBdHRyCistIChpbnQpbG9uZ0F0dHIKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmF0
dHIoKTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ0F0dHIoKTsKIH0KIAotLSAodm9pZClzZXRBdHRy
Oihsb25nIGxvbmcpbmV3QXR0cgorLSAodm9pZClzZXRMb25nQXR0cjooaW50KW5ld0xvbmdBdHRy
CiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwt
PnNldEF0dHIobmV3QXR0cik7CisgICAgSU1QTC0+c2V0TG9uZ0F0dHIobmV3TG9uZ0F0dHIpOwog
fQogCiAtIChsb25nIGxvbmcpbG9uZ0xvbmdBdHRyCkBAIC0zNDgsOSArMzQ4LDcgQEAKIC0gKHZv
aWQpc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6
OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChpbnQpYXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24KQEAgLTM3OSw5ICszNzcsNyBAQAogLSAodm9pZClzZXRTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbjooTlNTdHJpbmcgKiluZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwot
ICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0U3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwog
fQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC00NTAs
OSArNDQ2LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAg
ICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBl
Yyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzCkBAIC00NjksOSArNDYzLDcgQEAKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMp
LCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmog
Kil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlCkBAIC01
MDIsOSArNDk0LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVj
KTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUKQEAgLTcz
OSwyMiArNzI5LDIyIEBACiAgICAgSU1QTC0+dm9pZE1ldGhvZCgpOwogfQogCi0tICh2b2lkKXZv
aWRNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJn
IG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6
KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIElNUEwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsK
KyAgICBJTVBMLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFy
ZykpOwogfQogCi0tIChsb25nIGxvbmcpTWV0aG9kCistIChpbnQpbG9uZ01ldGhvZAogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+
bWV0aG9kKCk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2QoKTsKIH0KIAotLSAobG9uZyBs
b25nKU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJB
cmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistIChpbnQpbG9uZ01ldGhvZFdpdGhBcmdz
OihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9i
aiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICByZXR1cm4gSU1QTC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJn
KSk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcs
IGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2QKQEAgLTc2Mywx
MCArNzUzLDEwIEBACiAgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2Qo
KSkpOwogfQogCi0tIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylB
cmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcK
Ky0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihO
U1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6Omdl
dFB0cihJTVBMLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKSkp
OworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9u
Z0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKiltZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmcKQEAgLTgxMCwxMCArODAwLDEwIEBACiAgICAgSU1QTC0+Y3Vz
dG9tTWV0aG9kKCk7CiB9CiAKLS0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9u
ZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmcKKy0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNT
dHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmN1c3RvbU1ldGhvZFdp
dGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAgIElNUEwtPmN1c3RvbU1ldGhv
ZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAogLSAodm9pZClh
ZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExp
c3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUKQEAgLTEwMDUsMjgg
Kzk5NSwyOCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVydDE6KERP
TWEgKikKKy0gKHZvaWQpY29udmVydDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3JlKCkpOwor
ICAgIElNUEwtPmNvbnZlcnQxKGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0Mjoo
RE9NYiAqKQorLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNvcmUoKSk7
CisgICAgSU1QTC0+Y29udmVydDIoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQ0
OihET01kICopCistICh2b2lkKWNvbnZlcnQ0OihET01kICopdmFsdWUKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDQoY29yZSgp
KTsKKyAgICBJTVBMLT5jb252ZXJ0NChjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVy
dDU6KERPTWUgKikKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NShjb3Jl
KCkpOworICAgIElNUEwtPmNvbnZlcnQ1KGNvcmUodmFsdWUpKTsKIH0KIAogLSAoRE9NU1ZHUG9p
bnQgKiltdXRhYmxlUG9pbnRGdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGYyZDFmZTgxMGQxYmFlZDE3NDU2YzdiMTQw
MWE5Nzg2NzFiZDNmYzMuLmY3YjhiZTMyN2MwODU4Nzk2OWM2NTdlYjQ4NGFkYjk4MDliNmE5YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKQEAgLTUxLDcgKzUxLDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICAgICAgICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbVjhN
ZWFzdXJlQXM9VGVzdEZlYXR1cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKLSAgICAgICAgSlMs
IFY4CisgICAgICAgIC8vIEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19sY2ZpcnN0
IGV4Y2VwdGlvbmFsIGNhc2VzLgogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAg
ICAgICAgIFhNTE9iakF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAg
ICAgICAgY3JlYXRlOwpAQCAtMjI2LDEwICsyMjYsMTAgQEAgbW9kdWxlIHRlc3QgewogICAgICAg
ICBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgY29udmVydDEo
aW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gYSk7Ci0gICAgICAgIHZvaWQgY29u
dmVydDIoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiKTsKLSAgICAg
ICAgdm9pZCBjb252ZXJ0NChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCk7Ci0gICAgICAg
IHZvaWQgY29udmVydDUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVk
QXM9TnVsbFN0cmluZ10gZSk7CisgICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gYSB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVydDIoaW4g
W1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiIHZhbHVlKTsKKyAgICAgICAg
dm9pZCBjb252ZXJ0NChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCB2YWx1ZSk7CisgICAg
ICAgIHZvaWQgY29udmVydDUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZp
bmVkQXM9TnVsbFN0cmluZ10gZSB2YWx1ZSk7CiAKICAgICAgICAgYXR0cmlidXRlIFNWR1BvaW50
IG11dGFibGVQb2ludDsKICAgICAgICAgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1BvaW50IGlt
bXV0YWJsZVBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA1MDI0MjhhNzEwMGM1ZjcxNjYzY2Y1YzY5MTUx
NjlkOTcyMjE1NTM1Li44MzkwZjEwNTgxNzIzYjFkYmNjMGZiMDU1N2QwYTAwYmQ1MjMwYTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcApAQCAtMTYxLDE5ICsxNjEsMTkgQEAgc3RhdGljIHZvaWQgdW5zaWduZWRTaG9y
dEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djgK
ICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gQXR0ckF0dHJH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdBdHRyQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
IHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLkF0dHIuX2dldCIpOworICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmoubG9uZ0F0dHIuX2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5l
dyhzdGF0aWNfY2FzdDxkb3VibGU+KGltcC0+YXR0cigpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdl
cihpbXAtPmxvbmdBdHRyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHZvaWQg
QXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3RhdGljIHZvaWQg
bG9uZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLkF0dHIuX3NldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoubG9uZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgbG9uZyBsb25nIHYgPSB0b0ludDY0KHZhbHVlKTsK
LSAgICBpbXAtPnNldEF0dHIoV1RGOjpnZXRQdHIodikpOworICAgIGludCB2ID0gdG9JbnQzMih2
YWx1ZSk7CisgICAgaW1wLT5zZXRMb25nQXR0cih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ1
MSwxMCArNDUxLDcgQEAgc3RhdGljIHZvaWQgYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG8KICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIGludCB2ID0gdG9J
bnQzMih2YWx1ZSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAg
ICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ5MywxMCAr
NDkwLDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
Ymouc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVlKTsK
LSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRE
T01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNTgyLDEzICs1
NzYsMTAgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
T2JqLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2
ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQo
KTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRXaXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAg
aWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElz
b2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3Rh
dGUsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAg
ICByZXR1cm47CkBAIC02MTEsMTEgKzYwMiw4IEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5j
ZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2Vz
KHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVj
KSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAg
aW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRD
b250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAgcmV0dXJuOwogfQogCkBAIC02NjcsMTQgKzY1
NSwxMSBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2OAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
Ymoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkg
PyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUp
KSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRl
ID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1
cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdU
Rjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBzY3Jp
cHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElzb2xhdGUo
KSk7CiAgICAgcmV0dXJuOwpAQCAtMTA2OCwzMCArMTA1MywzMCBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9O
X0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBs
b25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpB
cmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MiwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBz
dHJBcmcsIG9iakFyZyk7CisgICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3Ry
QXJnLCBvYmpBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdNZXRob2RDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouTWV0
aG9kIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kIik7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICByZXR1
cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2QoKSkpOwor
ICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5sb25nTWV0aG9kKCksIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBNZXRob2RXaXRoQXJnc0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5NZXRob2RXaXRoQXJncyIpOworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ01ldGhvZFdpdGhBcmdzIik7CiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcs
IHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJn
LCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsK
ICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsK
LSAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSkpOworICAgIHJldHVybiB2OEludGVnZXIo
aW1wLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkdl
dElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9k
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExMDgsMTAgKzEwOTMsMTAg
QEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNr
KGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhD
RVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9C
TE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB0b1Y4
KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuSG9sZGVy
KCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICByZXR1cm4gdG9WOChpbXAtPm9iak1ldGhvZFdp
dGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJ
c29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhT
ZXF1ZW5jZUFyZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xMTMxLDgg
KzExMTYsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFJldHVybmluZ1Nl
cXVlbmNlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgp
IDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5H
ZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJn
cy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
LSAgICByZXR1cm4gdjhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEFyZyksIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0lu
dDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKKyAgICByZXR1cm4gdjhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdB
cmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCkBAIC0xNTM4LDggKzE1MjMsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncwogICAgICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92ZXJsb2Fk
ZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTU2MCw4ICsxNTQ1LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVy
bG9hZGVkTWV0aG9kNENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAgRVhDRVBU
SU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9k
KGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzQ2LDggKzE3
MzEsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRo
b2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwg
MSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJ
c29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5I
b2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAg
ICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMShs
b25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc1Nyw4ICsxNzQy
LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50aW1lTWV0aG9k
MkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEp
CiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9s
ZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAg
aW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhp
bnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDIobG9u
Z0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NjgsOCArMTc1Myw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRNZXRob2Qx
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGlt
cC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEobG9u
Z0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NzksOCArMTc2NCw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRNZXRob2Qy
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGlt
cC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIobG9u
Z0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MjUsOCArMTgxMCw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDFDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKGEqLCAsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MSgpOworICAg
IEVYQ0VQVElPTl9CTE9DSyhhKiwgdmFsdWUsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0MSh2YWx1
ZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MzYsOCArMTgyMSw4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDJDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
RVhDRVBUSU9OX0JMT0NLKGIqLCAsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MigpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhiKiwgdmFsdWUsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0Mih2YWx1ZSk7
CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4NDcsOCArMTgzMiw4IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDRDYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGQqLCAsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NCgpOworICAgIEVYQ0VQ
VElPTl9CTE9DSyhkKiwgdmFsdWUsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NCh2YWx1ZSk7CiAg
ICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4NTgsOCArMTg0Myw4IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGUqLCAsIFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NSgpOworICAgIEVYQ0VQVElP
Tl9CTE9DSyhlKiwgdmFsdWUsIFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4OjpIYW5k
bGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAg
cmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE5MjQsOCArMTkwOSw4IEBAIHN0YXRpYyBj
b25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2JqQXR0cnNb
XSA9IHsKICAgICB7InNob3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJBdHRy
R2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6
dW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBBdHRy
aWJ1dGUgJ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7IkF0dHIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpB
dHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdsb25nQXR0
cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsibG9uZ0F0dHIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9u
Z0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2xvbmdM
b25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsibG9uZ0xvbmdB
dHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpW
OEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAv
LyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJycpCkBAIC0yMDQwLDcgKzIwMjUsNyBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1
cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdE9iakF0dHJzW10gPSB7CiAKIHN0YXRpYyBj
b25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRDYWxsYmFjayBWOFRlc3RPYmpDYWxsYmFj
a3NbXSA9IHsKICAgICB7InZvaWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZENhbGxiYWNrfSwKLSAgICB7Ik1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpNZXRob2RDYWxs
YmFja30sCisgICAgeyJsb25nTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RD
YWxsYmFja30sCiAgICAgeyJvYmpNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b2JqTWV0aG9k
Q2FsbGJhY2t9LAogICAgIHsibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFja30sCiAgICAgeyJzZXJpYWxpemVk
VmFsdWUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2VyaWFsaXplZFZhbHVlQ2FsbGJhY2t9LApAQCAt
MjE4MCwxMSArMjE2NSwxMSBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaQogICAgIHY4OjpIYW5k
bGU8djg6OlNpZ25hdHVyZT4gdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlID0gdjg6OlNpZ25h
dHVyZTo6TmV3KGRlc2MsIHZvaWRNZXRob2RXaXRoQXJnc0FyZ2MsIHZvaWRNZXRob2RXaXRoQXJn
c0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJ2b2lkTWV0aG9k
V2l0aEFyZ3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5hbDo6
dm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHZvaWRNZXRob2RXaXRo
QXJnc1NpZ25hdHVyZSkpOwogCi0gICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnTWV0aG9kV2l0aEFy
Z3MnCi0gICAgY29uc3QgaW50IE1ldGhvZFdpdGhBcmdzQXJnYyA9IDM7Ci0gICAgdjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gTWV0aG9kV2l0aEFyZ3NBcmd2W01ldGhvZFdpdGhBcmdz
QXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpIYW5kbGU8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoKSB9Owot
ICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2
ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgTWV0aG9kV2l0aEFyZ3NBcmdjLCBNZXRob2RXaXRoQXJn
c0FyZ3YpOwotICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJNZXRob2RXaXRo
QXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpNZXRo
b2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBNZXRob2RXaXRoQXJnc1NpZ25hdHVy
ZSkpOworICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ2xvbmdNZXRob2RXaXRoQXJncycKKyAgICBj
b25zdCBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzQXJnYyA9IDM7CisgICAgdjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQXJndltsb25nTWV0aG9kV2l0aEFy
Z3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07
CisgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1
cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgbG9uZ01ldGhvZFdpdGhBcmdzQXJnYywgbG9u
Z01ldGhvZFdpdGhBcmdzQXJndik7CisgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1i
b2woImxvbmdNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RP
YmpWOEludGVybmFsOjpsb25nTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwg
bG9uZ01ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2lnbmF0dXJl
ICdvYmpNZXRob2RXaXRoQXJncycKICAgICBjb25zdCBpbnQgb2JqTWV0aG9kV2l0aEFyZ3NBcmdj
ID0gMzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164814</attachid>
            <date>2012-09-19 18:15:13 -0700</date>
            <delta_ts>2012-09-19 19:28:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120920101438.patch</filename>
            <type>text/plain</type>
            <size>178422</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2ZjgzNTQ4ZTMwYjYw
Yjg3NTY3M2UyNzA5MzVlOGJlN2I4OTg1OC4uNDEwZjVlNjY2NDRkMGE3NzU5YzVhYzAxYzNiM2M4
MzA4ZGMxMWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdG9ycyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOS0xOCAgS2VuaWNoaSBJ
c2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBEb24n
dCB0cmVhdCB0YWIgYXMgc3BhY2VzIGZvciB3b3JkLWVuZCBpbiBIYXJmQnV6elNoYXBlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNk
NmM2YTJiOTFmOTNiZGVhNWMwMmI3NDk2MWJmYjg5ZDQxLi42MzRiN2RmMDgwMmQwNWVmOWI5NTRk
YzcwNWI0MTMwNzEzMGFhOWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETFBhcnNlci5wbQpAQCAtMjEsNDUxICsyMSwyMzA2IEBACiAKIHBhY2thZ2UgSURMUGFyc2Vy
OwogCit1c2UgQ2xhc3M6OlN0cnVjdDsKKwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAK
IHVzZSBJUEM6Ok9wZW4yOwogdXNlIElETFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAK
LXVzZSBjb25zdGFudCBNT0RFX1VOREVGICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgotCi11c2Ug
Y29uc3RhbnQgTU9ERV9NT0RVTEUgID0+IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25z
dGFudCBNT0RFX0lOVEVSRkFDRSAgPT4gMTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNv
bnN0YW50IE1PREVfRVhDRVBUSU9OICA9PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCit1c2Ug
Y29uc3RhbnQgU3RyaW5nVG9rZW4gPT4gMDsKK3VzZSBjb25zdGFudCBJbnRlZ2VyVG9rZW4gPT4g
MTsKK3VzZSBjb25zdGFudCBGbG9hdFRva2VuID0+IDI7Cit1c2UgY29uc3RhbnQgSWRlbnRpZmll
clRva2VuID0+IDM7Cit1c2UgY29uc3RhbnQgT3RoZXJUb2tlbiA9PiA0OwordXNlIGNvbnN0YW50
IEVtcHR5VG9rZW4gPT4gNTsKKworc3RydWN0KCBUb2tlbiA9PiB7CisgICAgdHlwZSA9PiAnJCcs
ICMgdHlwZSBvZiB0b2tlbgorICAgIHZhbHVlID0+ICckJyAjIHZhbHVlIG9mIHRva2VuCit9KTsK
Kworc3ViIG5ldyB7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7CisKKyAgICBteSAkZW1wdHlUb2tl
biA9IFRva2VuLT5uZXcoKTsKKyAgICAkZW1wdHlUb2tlbi0+dHlwZShFbXB0eVRva2VuKTsKKyAg
ICAkZW1wdHlUb2tlbi0+dmFsdWUoImVtcHR5Iik7CisKKyAgICBteSAkc2VsZiA9IHsKKyAgICAg
ICAgRG9jdW1lbnRDb250ZW50ID0+ICIiLAorICAgICAgICBFbXB0eVRva2VuID0+ICRlbXB0eVRv
a2VuLAorICAgICAgICBOZXh0VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAgIFRva2VuID0+
ICRlbXB0eVRva2VuLAorICAgICAgICBMaW5lID0+ICIiLAorICAgICAgICBMaW5lTnVtYmVyID0+
IDEKKyAgICB9OworICAgIHJldHVybiBibGVzcyAkc2VsZiwgJGNsYXNzOworfQogCi0jIEhlbHBl
ciB2YXJpYWJsZXMKLW15IEB0ZW1wb3JhcnlDb250ZW50Oworc3ViIGFzc2VydFRva2VuVmFsdWUK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15
ICR2YWx1ZSA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1zZyA9ICJO
ZXh0IHRva2VuIHNob3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVl
KCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsK
KyAgICAgICAgJG1zZyAuPSAiIElETFBhcnNlci5wbToiIC4gJGxpbmU7CisgICAgfQorICAgIGRp
ZSAkbXNnIHVubGVzcyAkdG9rZW4tPnZhbHVlKCkgZXEgJHZhbHVlOworfQogCi1teSAkcGFyc2VN
b2RlOwotbXkgJHByZXNlcnZlZFBhcnNlTW9kZTsKK3N1YiBhc3NlcnRUb2tlblR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisgICAgZGllICJOZXh0IHRva2VuJ3MgdHlwZSBzaG91bGQgYmUgIiAuICR0eXBl
IC4gIiwgYnV0ICIgLiAkdG9rZW4tPnR5cGUoKSAuICIgYXQgIiAuICRzZWxmLT57TGluZX0gdW5s
ZXNzICR0b2tlbi0+dHlwZSgpIGVxICR0eXBlOworfQogCi1teSAkYmVRdWlldDsgIyBTaG91bGQg
bm90IGRpc3BsYXkgYW55dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9s
ZCB0aGUgcmVzdWx0aW5nICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBw
YXJzZSBvbmx5IGVub3VnaCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK3N1YiBhc3NlcnRVbmV4
cGVjdGVkVG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNo
aWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1zZyA9ICJVbmV4cGVjdGVkIHRv
a2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9OworICAgIGlmIChkZWZpbmVk
ICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyAuPSAiIElETFBhcnNlci5wbToiIC4gJGxpbmU7Cisg
ICAgfQorICAgIGRpZSAkbXNnOworfQogCi1zdWIgSW5pdGlhbGl6ZUdsb2JhbERhdGEKK3N1YiBQ
YXJzZQogewotICAgIEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0Owor
ICAgIG15ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKKworICAgIG15IEBkZWZpbml0aW9ucyA9ICgp
OworCisgICAgbXkgQGxpbmVzID0gYXBwbHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5l
cywgJHByZXByb2Nlc3Nvcik7CisgICAgJHNlbGYtPntMaW5lfSA9ICRsaW5lc1swXTsKKyAgICAk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPSBqb2luKCcgJywgQGxpbmVzKTsKKworICAgICRzZWxm
LT5nZXRUb2tlbigpOworICAgIGV2YWwgeworICAgICAgICBteSAkcmVzdWx0ID0gJHNlbGYtPnBh
cnNlRGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChAZGVmaW5pdGlvbnMsIEB7JHJlc3VsdH0p
OworCisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCRuZXh0LCBFbXB0eVRva2VuKTsKKyAgICB9OworICAgIGRpZSAk
QCAuICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsKKworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQi
IHVubGVzcyBAZGVmaW5pdGlvbnM7CisKKyAgICBteSAkZG9jdW1lbnQ7CisgICAgaWYgKCQjZGVm
aW5pdGlvbnMgPT0gMCAmJiByZWYoJGRlZmluaXRpb25zWzBdKSBlcSAiaWRsRG9jdW1lbnQiKSB7
CisgICAgICAgICRkb2N1bWVudCA9ICRkZWZpbml0aW9uc1swXTsKKyAgICB9IGVsc2UgeworICAg
ICAgICAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKKyAgICAgICAgJGRvY3VtZW50LT5t
b2R1bGUoIiIpOworICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQGRlZmluaXRp
b25zKTsKKyAgICB9CiAKLSAgICAkcGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKLSAgICAkcHJlc2Vy
dmVkUGFyc2VNb2RlID0gTU9ERV9VTkRFRjsKKyAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxl
TmFtZSk7CisgICAgcmV0dXJuICRkb2N1bWVudDsKK30KIAotICAgICRkb2N1bWVudCA9IDA7Ci0g
ICAgJHBhcmVudHNPbmx5ID0gMDsKK3N1YiBuZXh0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIHJldHVybiAkc2VsZi0+e05leHRUb2tlbn07CiB9CiAKLSMgRGVmYXVsdCBDb25z
dHJ1Y3Rvcgotc3ViIG5ldworc3ViIGdldFRva2VuCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0
OwotICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAk
c2VsZi0+e1Rva2VufSA9ICRzZWxmLT57TmV4dFRva2VufTsKKyAgICAkc2VsZi0+e05leHRUb2tl
bn0gPSAkc2VsZi0+Z2V0VG9rZW5JbnRlcm5hbCgpOworICAgIHJldHVybiAkc2VsZi0+e1Rva2Vu
fTsKK30KIAotICAgIEluaXRpYWxpemVHbG9iYWxEYXRhKCk7CitteSAkd2hpdGVzcGFjZVRva2Vu
UGF0dGVybiA9ICdeW1x0XG5cciBdKltcblxyXSc7CitteSAkZmxvYXRUb2tlblBhdHRlcm4gPSAn
XigtPygoWzAtOV0rXC5bMC05XSp8WzAtOV0qXC5bMC05XSspKFtFZV1bKy1dP1swLTldKyk/fFsw
LTldK1tFZV1bKy1dP1swLTldKykpJzsKK215ICRpbnRlZ2VyVG9rZW5QYXR0ZXJuID0gJ14oLT9b
MS05XVswLTldKnwtPzBbWHhdWzAtOUEtRmEtZl0rfC0/MFswLTddKiknOworbXkgJHN0cmluZ1Rv
a2VuUGF0dGVybiA9ICdeKFwiW15cIl0qXCIpJzsKK215ICRpZGVudGlmaWVyVG9rZW5QYXR0ZXJu
ID0gJ14oW0EtWl9hLXpdWzAtOUEtWl9hLXpdKiknOworbXkgJG90aGVyVG9rZW5QYXR0ZXJuID0g
J14oOjp8XC5cLlwufFteXHRcblxyIDAtOUEtWl9hLXpdKSc7CiAKLSAgICAkYmVRdWlldCA9IHNo
aWZ0Oworc3ViIGdldFRva2VuSW50ZXJuYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisg
ICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJHdoaXRlc3BhY2VUb2tlblBhdHRl
cm4vKSB7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLygkd2hpdGVzcGFj
ZVRva2VuUGF0dGVybikvLzsKKyAgICAgICAgbXkgJHNraXBwZWQgPSAkMTsKKyAgICAgICAgJHNl
bGYtPntMaW5lTnVtYmVyfSsrIHdoaWxlICgkc2tpcHBlZCA9fiAvXG4vZyk7CisgICAgICAgIGlm
ICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gL14oW15cblxyXSspLykgeworICAgICAgICAg
ICAgJHNlbGYtPntMaW5lfSA9ICRzZWxmLT57TGluZU51bWJlcn0gLiAiOiIgLiAkMTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0gPSAiVW5rbm93biI7CisgICAg
ICAgIH0KKyAgICB9CisgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvXihbXHRcblxy
IF0rKS8vOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gZXEgIiIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT57RW1wdHlUb2tlbn07CisgICAgfQogCi0gICAgYmxlc3MoJHJlZmVy
ZW5jZSwgJG9iamVjdCk7Ci0gICAgcmV0dXJuICRyZWZlcmVuY2U7CisgICAgbXkgJHRva2VuID0g
VG9rZW4tPm5ldygpOworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRmbG9h
dFRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKEZsb2F0VG9rZW4pOworICAg
ICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9
ID1+IHMvJGZsb2F0VG9rZW5QYXR0ZXJuLy87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAg
fQorICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRpbnRlZ2VyVG9rZW5QYXR0
ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoSW50ZWdlclRva2VuKTsKKyAgICAgICAgJHRv
a2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRp
bnRlZ2VyVG9rZW5QYXR0ZXJuLy87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAg
IGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRzdHJpbmdUb2tlblBhdHRlcm4vKSB7
CisgICAgICAgICR0b2tlbi0+dHlwZShTdHJpbmdUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFs
dWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kc3RyaW5nVG9r
ZW5QYXR0ZXJuLy87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2Vs
Zi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRpZGVudGlmaWVyVG9rZW5QYXR0ZXJuLykgeworICAg
ICAgICAkdG9rZW4tPnR5cGUoSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1
ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRpZGVudGlmaWVy
VG9rZW5QYXR0ZXJuLy87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRvdGhlclRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHRva2VuLT50eXBlKE90aGVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsK
KyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJG90aGVyVG9rZW5QYXR0ZXJu
Ly87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGRpZSAiRmFpbGVkIGluIHRv
a2VuaXppbmcgYXQgIiAuICRzZWxmLT57TGluZX07CiB9CiAKLSMgUmV0dXJucyB0aGUgcGFyc2Vk
ICdpZGxEb2N1bWVudCcKLXN1YiBQYXJzZQorbXkgJG5leHRBdHRyaWJ1dGVPbGRfMSA9ICdeKGF0
dHJpYnV0ZXxpbmhlcml0fHJlYWRvbmx5KSQnOworbXkgJG5leHRQcmltaXRpdmVUeXBlXzEgPSAn
XihpbnR8bG9uZ3xzaG9ydHx1bnNpZ25lZCkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8yID0g
J14oZG91YmxlfGZsb2F0fHVucmVzdHJpY3RlZCkkJzsKK215ICRuZXh0U2V0R2V0UmFpc2VzMl8x
ID0gJ14oO3xnZXRyYWlzZXN8c2V0cmFpc2VzKSQnOworbXkgJG5leHRBcmd1bWVudExpc3RfMSA9
ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3Vi
bGV8ZmxvYXR8aW58aW50fGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0
fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9v
bGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvY3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8
dW5zaWduZWQpJCc7CitteSAkbmV4dEludGVyZmFjZU1lbWJlck9sZF8xID0gJ14oXCh8Qnl0ZVN0
cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRl
bGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xv
YmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3Rh
dGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRP
cHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMSA9ICdeKDt8PSkkJzsKK215ICRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEgPSAnXihzdGF0aWN8c3RyaW5naWZpZXIp
JCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8yID0gJ14oXCh8Qnl0
ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGNyZWF0b3J8ZGVsZXRlcnxk
b3VibGV8ZmxvYXR8Z2V0dGVyfGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2Vx
dWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5l
eHRVbnJlc3RyaWN0ZWRGbG9hdFR5cGVfMSA9ICdeKGRvdWJsZXxmbG9hdCkkJzsKK215ICRuZXh0
RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xID0gJ14oLHxcXSkkJzsKK215ICRuZXh0RXhjZXB0aW9u
RmllbGRfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0
ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVz
dHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0VHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01T
dHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8
b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRT
cGVjaWFsc18xID0gJ14oY3JlYXRvcnxkZWxldGVyfGdldHRlcnxsZWdhY3ljYWxsZXJ8c2V0dGVy
KSQnOworbXkgJG5leHREZWZpbml0aW9uc18xID0gJ14oY2FsbGJhY2t8ZGljdGlvbmFyeXxlbnVt
fGV4Y2VwdGlvbnxpbnRlcmZhY2V8cGFydGlhbHx0eXBlZGVmKSQnOworbXkgJG5leHRFeGNlcHRp
b25NZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29s
ZWFufGJ5dGV8Y29uc3R8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25h
bHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEF0dHJp
YnV0ZVJlc3RfMSA9ICdeKGF0dHJpYnV0ZXxyZWFkb25seSkkJzsKK215ICRuZXh0U2luZ2xlVHlw
ZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZs
b2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dEdldF8xID0gJ14oO3xnZXRyYWlzZXN8Z2V0dGVyfHNldHJhaXNl
c3xzZXR0ZXIpJCc7CitteSAkbmV4dEFyZ3VtZW50TmFtZV8xID0gJ14oYXR0cmlidXRlfGNhbGxi
YWNrfGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkaWN0aW9uYXJ5fGVudW18ZXhjZXB0aW9ufGdldHRl
cnxpbXBsZW1lbnRzfGluaGVyaXR8aW50ZXJmYWNlfGxlZ2FjeWNhbGxlcnxwYXJ0aWFsfHNlcmlh
bGl6ZXJ8c2V0dGVyfHN0YXRpY3xzdHJpbmdpZmllcnx0eXBlZGVmfHVucmVzdHJpY3RlZCkkJzsK
K215ICRuZXh0Q29uc3RWYWx1ZV8xID0gJ14oZmFsc2V8dHJ1ZSkkJzsKK215ICRuZXh0Q29uc3RW
YWx1ZV8yID0gJ14oLXxJbmZpbml0eXxOYU4pJCc7CitteSAkbmV4dERlZmluaXRpb25fMSA9ICde
KGNhbGxiYWNrfGludGVyZmFjZSkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0
XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91
YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0
ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xID0gJ14o
aW50fGxvbmd8c2hvcnQpJCc7CitteSAkbmV4dEludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8
Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2Fs
bGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVy
fHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsK
K215ICRuZXh0RGVmYXVsdFZhbHVlXzEgPSAnXigtfEluZmluaXR5fE5hTnxmYWxzZXxudWxsfHRy
dWUpJCc7CisKK3N1YiBwYXJzZURlZmluaXRpb25zCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0
OwotICAgIG15ICRmaWxlTmFtZSA9IHNoaWZ0OwotICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7Ci0g
ICAgbXkgJHByZXByb2Nlc3NvciA9IHNoaWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0Owor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3
aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAg
ICAgbXkgJGRlZmluaXRpb247CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsK
KyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBh
cnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0RGVmaW5pdGlvbnNfMS8pIHsKKyAgICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBh
cnNlRGVmaW5pdGlvbk9sZCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZCAoJGRlZmluaXRpb24pKSB7CisgICAgICAg
ICAgICBwdXNoKEBkZWZpbml0aW9ucywgJGRlZmluaXRpb24pOworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiBcQGRlZmluaXRpb25zOworfQogCi0gICAgcHJpbnQgIiB8ICoqKiBTdGFydGlu
ZyB0byBwYXJzZSAkZmlsZU5hbWUuLi5cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKLSAgICBteSBA
ZG9jdW1lbnRDb250ZW50ID0gYXBwbHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywg
JHByZXByb2Nlc3Nvcik7CitzdWIgcGFyc2VEZWZpbml0aW9uCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICBteSAk
ZGF0YUF2YWlsYWJsZSA9IDA7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dERlZmluaXRpb25fMS8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWwoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnkoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VFbnVtKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VUeXBlZGVmKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgICMgU2ltcGxlIElETCBQYXJzZXIgKHRtKQotICAgIGZvcmVhY2ggKEBkb2N1
bWVudENvbnRlbnQpIHsKLSAgICAgICAgbXkgJG5ld1BhcnNlTW9kZSA9ICRvYmplY3QtPkRldGVy
bWluZVBhcnNlTW9kZSgkXyk7CitzdWIgcGFyc2VDYWxsYmFja09ySW50ZXJmYWNlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CiAKLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAg
ICAgaWYgKCRkYXRhQXZhaWxhYmxlIGVxIDApIHsKLSAgICAgICAgICAgICAgICAkZGF0YUF2YWls
YWJsZSA9IDE7ICMgU3RhcnQgbm9kZSBidWlsZGluZy4uLgotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOwotICAgICAgICAgICAg
fQotICAgICAgICB9CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjYWxsYmFjayIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFj
ZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRh
dGEgc3RyZWFtIG1vZGUuLi4KLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRF
RikgewotICAgICAgICAgICAgJHBhcnNlTW9kZSA9ICRuZXdQYXJzZU1vZGU7Ci0gICAgICAgIH0K
K3N1YiBwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgcHVz
aChAdGVtcG9yYXJ5Q29udGVudCwgJF8pOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQogCi0gICAgIyBDaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyByZW1haW5p
bmcgdG8gcGFyc2UuLi4KLSAgICBpZiAoKCRwYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgYW5kICgk
I3RlbXBvcmFyeUNvbnRlbnQgPiAwKSkgewotICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlv
bigpOworc3ViIHBhcnNlSW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsK
KyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIiwgX19MSU5FX18p
OworICAgICAgICBteSAkaW50ZXJmYWNlTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGludGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCRpbnRlcmZhY2VOYW1lVG9rZW4t
PnZhbHVlKCkpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+
cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1l
bWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5F
X18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTWVtYmVy
cyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CiAgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KIAotICAgIHByaW50ICIgfCAqKiogRmluaXNoZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1
aWV0OwotIAotICAgICRkb2N1bWVudC0+ZmlsZU5hbWUoJGZpbGVOYW1lKTsKK3N1YiBwYXJzZVBh
cnRpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKIAotICAgIHJldHVybiAkZG9jdW1lbnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInBh
cnRpYWwiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGVm
aW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFy
c2VNb2R1bGUKK3N1YiBwYXJzZVBhcnRpYWxEZWZpbml0aW9uCiB7Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZh
Y2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsSW50ZXJmYWNlKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRp
Y3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGljdGlvbmFy
eSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VQYXJ0
aWFsSW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJ
TkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCks
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW50ZXJm
YWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CiAKLSAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJzZSBtb2R1bGUuLi5cbiIg
dW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVycworeworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQGludGVyZmFjZU1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxl
ICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBt
eSAkaW50ZXJmYWNlTWVtYmVyOworCisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIp
IHsKKyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRpbnRlcmZhY2VNZW1iZXIgPSAk
c2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIH0gZWxzaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlcnNfMS8pIHsKKyAgICAgICAgICAgICRpbnRl
cmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmlu
ZWQgJGludGVyZmFjZU1lbWJlcikgeworICAgICAgICAgICAgcHVzaChAaW50ZXJmYWNlTWVtYmVy
cywgJGludGVyZmFjZU1lbWJlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAaW50
ZXJmYWNlTWVtYmVyczsKK30KIAotICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNv
bnRlbnQpOwotICAgICRkYXRhID1+IC8kSURMU3RydWN0dXJlOjptb2R1bGVTZWxlY3Rvci87Citz
dWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIG15ICRtb2R1bGVOYW1lID0g
KGRlZmluZWQoJDEpID8gJDEgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxu
KSIpKTsKLSAgICAkZGF0YU5vZGUtPm1vZHVsZSgkbW9kdWxlTmFtZSk7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwg
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0SW50ZXJmYWNlTWVtYmVyT2xkXzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHByaW50ICIgIHwtLS0tPiBN
b2R1bGU7IE5BTUUgXCIkbW9kdWxlTmFtZVwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsK
K3N1YiBwYXJzZURpY3Rpb25hcnkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9u
YXJ5IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5n
ZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0
YW5jZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0K
IAotc3ViIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJz
CiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0OwotICAgIG15ICRhdHRycyA9IHNoaWZ0OworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikg
eworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFy
eU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhj
ZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1i
ZXJPbGQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICB9Cit9CiAKLSAgICBpZiAoISV7JGF0dHJzfSkgewotICAgICAgICByZXR1cm4gIiI7Citz
dWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAg
JHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxm
LT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VEZWZh
dWx0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBt
eSBAdGVtcDsKLSAgICB3aGlsZSAoKG15ICRuYW1lLCBteSAkdmFsdWUpID0gZWFjaCgleyRhdHRy
c30pKSB7Ci0gICAgICAgIHB1c2goQHRlbXAsICIkbmFtZT0kdmFsdWUiKTsKK3N1YiBwYXJzZVBh
cnRpYWxEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25h
cnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZGljdGlvbmFyeSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAuICJb
IiAuIGpvaW4oIiwgIiwgQHRlbXApIC4gIl0iOworc3ViIHBhcnNlRGVmYXVsdAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VEZWZhdWx0VmFsdWUoKTsKKyAgICB9CiB9CiAKLXN1YiBwYXJzZUV4dGVuZGVk
QXR0cmlidXRlcworc3ViIHBhcnNlRGVmYXVsdFZhbHVlCiB7Ci0gICAgbXkgJHN0ciA9IHNoaWZ0
OwotICAgICRzdHIgPX4gcy9cW1xzKiguKilccypcXS8kMS9nOworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gRmxvYXRUb2tlbiB8fCAkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZhdWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUNvbnN0VmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1
ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBteSAlYXR0cnMgPSAoKTsKK3N1YiBwYXJzZUV4Y2Vw
dGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9k
ZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlvbiIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2Vw
dGlvbk5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRleGNlcHRpb25OYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRkYXRhTm9kZS0+bmFtZSgkZXhjZXB0aW9uTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAg
JGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigxKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFy
ZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAg
IG15ICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBf
X0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwg
JGV4Y2VwdGlvbk1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgk
ZGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFO
b2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICB3aGlsZSAoJHN0ciAhfiAvXlxzKiQvKSB7Ci0gICAg
ICAgICMgUGFyc2UgbmFtZQotICAgICAgICBpZiAoJHN0ciAhfiAvXlxzKihbXHdcZF0rKS8pIHsK
LSAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7
Ci0gICAgICAgIH0KLSAgICAgICAgbXkgJG5hbWUgPSAkMTsKLSAgICAgICAgJHN0ciA9fiBzL15c
cyooW1x3XGRdKykvLzsKLQotICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKj0vKSB7Ci0gICAgICAg
ICAgICAkc3RyID1+IHMvXlxzKj0vLzsKLSAgICAgICAgICAgIGlmICgkbmFtZSBlcSAiTmFtZWRD
b25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAjIFBhcnNlICc9JyBuYW1lICcoJyBhcmd1
bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JOYW1lOwotICAg
ICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAg
ICAgICAgICAkY29uc3RydWN0b3JOYW1lID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICRzdHIg
PX4gcy9eXHMqKFtcd1xkXSspLy87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccypcKC8p
IHsKLSAgICAgICAgICAgICAgICAgICAgIyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0g
ICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCRzdHIgPX4gL14oW14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRzaWduYXR1cmUgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICRzaWduYXR1cmUg
PX4gcy9eKC4qPylccyokLyQxLzsKLSAgICAgICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIg
PT4gJHNpZ25hdHVyZX07Ci0gICAgICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXild
KilcKSw/Ly87Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxz
Kiw/LykgewotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rv
ck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+ICIifTsKLSAgICAgICAg
ICAgICAgICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICck
c3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAjIFBhcnNlICc9JyB2YWx1ZSAnLCc/Ci0gICAgICAgICAgICAgICAgaWYgKCRz
dHIgPX4gL15ccyooW14sXSopLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFt
ZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxz
KiQvJDEvOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKihbXixdKiksPy8vOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxp
ZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAg
ICAgICAjIFBhcnNlICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICRzdHIgPX4g
cy9eXHMqXCgvLzsKLSAgICAgICAgICAgIGlmICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0g
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICRhdHRy
c3skbmFtZX0gPX4gcy9eKC4qPylccyokLyQxLzsKLSAgICAgICAgICAgICAgICAkc3RyID1+IHMv
XihbXildKilcKSw/Ly87Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRp
ZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICMgUGFy
c2UgJycgfCAnLCcKLSAgICAgICAgICAgIGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7Ci0g
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICIiOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworc3Vi
IHBhcnNlRXhjZXB0aW9uTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
QG1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uTWVtYmVyc18xLykgewor
ICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgICAgICNteSAkbWVtYmVyID0g
JHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
ICAgICAgICAgbXkgJG1lbWJlciA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICgkbWVtYmVyKSkgewor
ICAgICAgICAgICAgICAgIHB1c2goQG1lbWJlcnMsICRtZW1iZXIpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgJHN0ciA9fiBzL15ccyosPy8vOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAgICAg
ICAgICAgIGxhc3Q7CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30K
Kworc3ViIHBhcnNlSW5oZXJpdGFuY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
IEBwYXJlbnQgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6IiwgX19MSU5FX18pOworICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
dG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHB1c2goQHBhcmVudCwgJHRva2VuLT52
YWx1ZSgpKTsKKyAgICAgICAgIyBNdWx0aXBsZSBpbmhlcml0YW5jZT8KKyAgICAgICAgcHVzaChA
cGFyZW50LCBAeyRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCl9KTsKKyAgICB9CisgICAgcmV0dXJu
IFxAcGFyZW50OworfQorCitzdWIgcGFyc2VFbnVtCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZW51
bSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFy
c2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KIAotICAgIHJldHVybiBcJWF0dHJzOworc3ViIHBhcnNlRW51bVZhbHVl
TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4p
OworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVzKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOwogfQogCi1zdWIgcGFyc2VQYXJhbWV0ZXJzCitzdWIgcGFyc2VFbnVtVmFsdWVzCiB7
Ci0gICAgbXkgJG5ld0RhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9
IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rv
a2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgIH0KK30KIAotICAg
ICMgU3BsaXQgYXJndW1lbnRzIGF0IGNvbW1hcyBidXQgb25seSBpZiB0aGUgY29tbWEKLSAgICAj
IGlzIG5vdCB3aXRoaW4gYXR0cmlidXRlIGJyYWNrZXRzLCBleHByZXNzZWQgaGVyZQotICAgICMg
YXMgYmVpbmcgZm9sbG93ZWQgYnkgYSAnXScgd2l0aG91dCBhIHByZWNlZGluZyAnWycuCi0gICAg
IyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVzIHRoYXQgYXR0cmlidXRlcyBkb24ndCBuZXN0LgotICAg
IG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/IVteW10qXF0pLywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0g
ICAgZm9yZWFjaCAoQHBhcmFtcykgewotICAgICAgICBteSAkbGluZSA9ICRfOworc3ViIHBhcnNl
Q2FsbGJhY2tSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsIF9fTElORV9f
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlQXJndW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5F
X18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAkbGluZSA9fiAv
JElETFN0cnVjdHVyZTo6aW50ZXJmYWNlUGFyYW1ldGVyU2VsZWN0b3IvOwotICAgICAgICBteSAk
cGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAgICAgICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVz
ID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRl
cyk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFy
c2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICBteSAkcGFyYW1UeXBl
U3VmZml4ID0gZGVmaW5lZCgkNCkgPyAkNCA6ICIiOwotICAgICAgICBteSAkcGFyYW1OYW1lID0g
KGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxu
KSIpKTsKK3N1YiBwYXJzZVR5cGVkZWYKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVm
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3Qo
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIG15ICRpc051bGxhYmxlID0g
JHBhcmFtVHlwZVN1ZmZpeCBlcSAiPyI7CitzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
c2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIiwgX19M
SU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigp
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQogCi0gICAgICAgIG15ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOwot
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZGlyZWN0aW9uKCRwYXJhbURpcmVjdGlvbik7Ci0gICAg
ICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRwYXJhbU5hbWUpOwotICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+dHlwZSgkcGFyYW1UeXBlKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkcGFyYW1FeHRlbmRlZEF0dHJpYnV0
ZXMpKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoJGlzTnVsbGFibGUpOwor
c3ViIHBhcnNlQ29uc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNvbnN0IiwgX19MSU5FX18pOworICAgICAgICAk
bmV3RGF0YU5vZGUtPnR5cGUoJHNlbGYtPnBhcnNlQ29uc3RUeXBlKCkpOworICAgICAgICBteSAk
Y29uc3ROYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkY29uc3ROYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+bmFtZSgkY29uc3ROYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJHNlbGYtPnBhcnNlQ29uc3RWYWx1ZSgpKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19M
SU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQogCi0gICAgICAgIG15ICRhcnJheVJlZiA9ICRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyczsK
LSAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkcGFyYW1EYXRhTm9kZSk7CitzdWIgcGFyc2VDb25z
dFZhbHVlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Q29uc3RWYWx1ZV8x
LykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQm9vbGVhbkxpdGVyYWwoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJudWxsIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm51bGwiLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAibnVsbCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Q29uc3RWYWx1ZV8yLykgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRMaXRlcmFsKCk7CisgICAgfQorICAgICMgYmFja3dh
cmQgY29tcGF0aWJpbGl0eQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIHByaW50ICIg
IHwgICB8PiAgUGFyYW07IFRZUEUgXCIkcGFyYW1UeXBlXCIgTkFNRSBcIiRwYXJhbU5hbWVcIiIg
LiAKLSAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAg
ICAiLCAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRi
ZVF1aWV0OyAgICAgICAgICAKK3N1YiBwYXJzZUJvb2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgInRydWUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidHJ1ZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICJ0cnVlIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJmYWxzZSI7CiAgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3Vi
IFBhcnNlSW50ZXJmYWNlCitzdWIgcGFyc2VGbG9hdExpdGVyYWwKIHsKLSAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJHNlY3Rpb25OYW1l
ID0gc2hpZnQ7Ci0KLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsK
LQotICAgICMgTG9vayBmb3IgZW5kLW9mLWludGVyZmFjZSBtYXJrCi0gICAgJGRhdGEgPX4gL307
L2c7Ci0gICAgJGRhdGEgPSBzdWJzdHIoJGRhdGEsIGluZGV4KCRkYXRhLCAkc2VjdGlvbk5hbWUp
LCBwb3MoJGRhdGEpIC0gbGVuZ3RoKCRkYXRhKSk7Ci0KLSAgICAkZGF0YSA9fiBzL1tcblxyXS8g
L2c7Ci0KLSAgICAjIEJlZ2lubmluZyBvZiB0aGUgcmVnZXhwIHBhcnNpbmcgbWFnaWMKLSAgICBp
ZiAoJHNlY3Rpb25OYW1lIGVxICJpbnRlcmZhY2UiIHx8ICRzZWN0aW9uTmFtZSBlcSAiZXhjZXB0
aW9uIikgewotICAgICAgICBwcmludCAiIHwtIFRyeWluZyB0byBwYXJzZSBpbnRlcmZhY2UuLi5c
biIgdW5sZXNzICRiZVF1aWV0OwotCi0gICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gIiI7Ci0g
ICAgICAgIG15ICRpbnRlcmZhY2VEYXRhID0gIiI7Ci0KLSAgICAgICAgIyBNYXRjaCBpZGVudGlm
aWVyIG9mIHRoZSBpbnRlcmZhY2UsIGFuZCBlbmNsb3NlZCBkYXRhLi4uCi0gICAgICAgICRkYXRh
ID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VTZWxlY3Rvci87Ci0KLSAgICAgICAgbXkgJGlz
RXhjZXB0aW9uID0gKGRlZmluZWQoJDEpID8gKCQxIGVxICdleGNlcHRpb24nKSA6IGRpZSgiUGFy
c2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNl
RXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRpbnRl
cmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAkaW50ZXJmYWNlTmFtZSA9IChkZWZp
bmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7
Ci0gICAgICAgIG15ICRpbnRlcmZhY2VCYXNlID0gKGRlZmluZWQoJDQpID8gJDQgOiAiIik7Ci0g
ICAgICAgICRpbnRlcmZhY2VEYXRhID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcg
ZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLQotICAgICAgICAjIEZpbGwgaW4ga25vd24g
cGFydHMgb2YgdGhlIGRvbUNsYXNzIGRhdGFzdHJ1Y3R1cmUgbm93Li4uCi0gICAgICAgICRkYXRh
Tm9kZS0+aXNFeGNlcHRpb24oJGlzRXhjZXB0aW9uKTsKLSAgICAgICAgJGRhdGFOb2RlLT5uYW1l
KCRpbnRlcmZhY2VOYW1lKTsKLSAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVzKCRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAg
ICBpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKLSAg
ICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOwotICAgICAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUs
ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSk7Ci0gICAgICAgICAgICAkZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0g
ICAgICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7Ci0gICAgICAg
IH0gZWxzaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9y
In0pIHsKLSAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwot
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsK
LSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJOYW1lZENvbnN0cnVj
dG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJz
KCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0t
PnsiU2lnbmF0dXJlIn0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1l
ZENvbnN0cnVjdG9yIn0gPSAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3Ii
fXsiQ29uc3RydWN0b3JOYW1lIn07Ci0gICAgICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9y
KCRuZXdEYXRhTm9kZSk7Ci0gICAgICAgIH0KLSAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIi0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiLSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJJbmZpbml0eSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICIt
SW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkluZmluaXR5Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIklu
ZmluaXR5IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIkluZmluaXR5IjsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJOYU4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiTmFOIiwgX19MSU5FX18pOworICAgICAgICBy
ZXR1cm4gIk5hTiI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAgICAgIyBJbmhlcml0YW5jZSBkZXRlY3Rpb24KLSAgICAgICAgbXkgQGludGVy
ZmFjZVBhcmVudHMgPSBzcGxpdCgvLC8sICRpbnRlcmZhY2VCYXNlKTsKLSAgICAgICAgZm9yZWFj
aChAaW50ZXJmYWNlUGFyZW50cykgewotICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKLSAgICAg
ICAgICAgICRsaW5lID1+IHMvXHMqLy9nOworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25P
ckl0ZXJhdG9yCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9k
ZS0+cGFyZW50czsKLSAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJGxpbmUpOworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMS8pIHsKKyAgICAgICAgbXkgJHF1
YWxpZmllciA9ICRzZWxmLT5wYXJzZVF1YWxpZmllcigpOworICAgICAgICBteSAkbmV3RGF0YU5v
ZGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkKCRuZXdEYXRhTm9kZSkgJiYgJHF1YWxpZmll
ciBlcSAic3RhdGljIikgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsK
ICAgICAgICAgfQorICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VBdHRyaWJ1dGUoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2VyaWFsaXplcgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0g
ICAgICAgIHJldHVybiBpZiAkcGFyZW50c09ubHk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNlcmlhbGl6
ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVz
dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRpbnRl
cmZhY2VEYXRhID1+IHMvW1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMg
PSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
c2hpZnQ7CiAKLSAgICAgICAgZm9yZWFjaCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsK
LSAgICAgICAgICAgIG5leHQgaWYgJGxpbmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgk
bGluZSA9fiAvXFdhdHRyaWJ1dGVcVy8pIHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElE
TFN0cnVjdHVyZTo6aW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19M
SU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm4o
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorfQogCi0gICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMSk7Ci0g
ICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRp
ZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMykgPyAkMyA6ICIg
Iik7IGNob3AoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyk7CitzdWIgcGFyc2VTZXJpYWxp
emF0aW9uUGF0dGVybgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ7IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAg
ICRzZWxmLT5wYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTWFwKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm5MaXN0KCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YVR5cGUgPSAoZGVmaW5l
ZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwot
ICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhTmFtZSA9IChkZWZpbmVkKCQ1KSA/ICQ1
IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gIAotICAgICAg
ICAgICAgICAgICgnJyA9fiAvXi8pOyAjIFJlc2V0IHZhcmlhYmxlcyBuZWVkZWQgZm9yIHJlZ2V4
cCBtYXRjaGluZworc3ViIHBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm5NYXAKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJp
dCIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAg
ICB9Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVy
UmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAo
ZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTGlz
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5F
X18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5n
ZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlm
aWVycygpOworICAgIH0KK30KIAotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0
dXJlOjpzZXR0ZXJSYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJHNldHRlckV4
Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3ViIHBhcnNlSWRlbnRpZmllcnMK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBpZGVudHMgPSAoKTsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAgICAgcHVzaChA
aWRlbnRzLCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
bGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBpZGVudHM7Cit9CiAKLSAgICAg
ICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRhdHRyaWJ1dGVUeXBlKTsKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKK3N1YiBwYXJzZVF1
YWxpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5hbWUpOwotICAgICAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRyaWJ1dGVEYXRhVHlwZSk7
Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVz
KSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAic3RhdGljIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInN0
YXRpYyI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3Ry
aW5naWZpZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAic3RyaW5naWZpZXIiOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0
dHJpYnV0ZXM7Ci0gICAgICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUp
Oworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAg
ICAgICAgICBwcmludCAiICB8ICB8PiAgQXR0cmlidXRlOyBTVEFUSUM/IFwiJGlzU3RhdGljXCIg
VFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIgREFUQSBOQU1FIFwiJGF0dHJpYnV0ZURhdGFOYW1lXCIg
REFUQSBUWVBFIFwiJGF0dHJpYnV0ZURhdGFUeXBlXCIgR0VUIEVYQ0VQVElPTj8gXCIkZ2V0dGVy
RXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElPTj8gXCIkc2V0dGVyRXhjZXB0aW9uXCIiIC4KLSAgICAg
ICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAg
ICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxu
IiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJl
c3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBl
KCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7
CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAg
ICAgICAgICAgICAgJGdldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAg
ICAkc2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0Rh
dGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJGdldHRlckV4Y2VwdGlvbik7
Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9ID0gc3Bs
aXQoLywvLCAkc2V0dGVyRXhjZXB0aW9uKTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRsaW5lICF+
IC9eXHMqKCRJRExTdHJ1Y3R1cmU6OmV4dGVuZGVkQXR0cmlidXRlU3ludGF4ICk/Y29uc3Rccysv
KSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1l
dGhvZFNlbGVjdG9yLyBvciBkaWUgIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7
CitzdWIgcGFyc2VBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRtZXRo
b2RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJG1l
dGhvZEV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0g
ZGVmaW5lZCgkMik7Ci0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZFR5cGUgPSAoZGVmaW5lZCgk
MykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAg
ICAgICAgICAgICAgIG15ICRtZXRob2ROYW1lID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAk
bWV0aG9kU2lnbmF0dXJlID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3Ih
XG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7Cisg
ICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUF0dHJpYnV0ZVJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAot
ICAgICAgICAgICAgICAgICgnJyA9fiAvXi8pOyAjIFJlc2V0IHZhcmlhYmxlcyBuZWVkZWQgZm9y
IHJlZ2V4cCBtYXRjaGluZworc3ViIHBhcnNlQXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3
IGRvbUF0dHJpYnV0ZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgewor
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRl
Iik7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJhdHRyaWJ1dGUiLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUo
JHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJzZUdldCgp
OworICAgICAgICBpZiAoZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNoKEB7JG5l
d0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNlcyJ9fSk7
CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHsk
Z2V0UmVmLT57InNldHJhaXNlcyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAK
LSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6cmFpc2VzU2VsZWN0b3Iv
OwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAk
MSA6ICIiKTsKK3N1YiBwYXJzZUluaGVyaXQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiaW5oZXJpdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJpbmhlcml0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBu
ZXcgZG9tRnVuY3Rpb24oKTsKK3N1YiBwYXJzZVJlYWRPbmx5Cit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInJlYWRvbmx5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJlYWRvbmx5IiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5cGUpOwotICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlT3BlcmF0
aW9uT3JJdGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgfC0g
IE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUg
XCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElPTj8gXCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAg
ICAgICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAg
ICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1
bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VTcGVjaWFsT3BlcmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEvKSB7CisgICAgICAg
IG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAgICAgICBteSAk
ZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdCgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAg
ICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAg
ICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5l
d0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1ldGhvZEV4Y2VwdGlv
bik7CitzdWIgcGFyc2VTcGVjaWFsT3BlcmF0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3Bl
Y2lhbHNfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbCgpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VTcGVjaWFscygpOworICAgICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJz
ZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlT3BlcmF0
aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRk
YXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1
cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkbWV0
aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJzZVNwZWNpYWxzCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25z
OwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6
OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRjb25zdEV4dGVuZGVkQXR0
cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0
dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFR5cGUgPSAoZGVmaW5lZCgkMikg
PyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAg
ICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2lu
ZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25z
dFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6
XG4kbGluZVxuKSIpKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNp
YWxzXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBb
XTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFu
dCgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29uc3ROYW1lKTsKLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJGNvbnN0VHlwZSk7Ci0gICAgICAgICAg
ICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZSgkY29uc3RWYWx1ZSk7Ci0gICAgICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMo
JGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VTcGVjaWFsCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybiAiZ2V0dGVyIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0
ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAic2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInNldHRlciI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3JlYXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjcmVhdG9yIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gImNyZWF0b3IiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImRlbGV0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiZGVsZXRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJkZWxldGVy
IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJsZWdhY3ljYWxsZXIiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibGVnYWN5
Y2FsbGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImxlZ2FjeWNhbGxlciI7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KIAotICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+Y29u
c3RhbnRzOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsK
K3N1YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAg
ICAgICBwcmludCAiICB8ICAgfD4gIENvbnN0YW50OyBUWVBFIFwiJGNvbnN0VHlwZVwiIE5BTUUg
XCIkY29uc3ROYW1lXCIgVkFMVUUgXCIkY29uc3RWYWx1ZVwiXG4iIHVubGVzcyAkYmVRdWlldDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaXRlcmF0b3IiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VJdGVyYXRvclJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvblJl
c3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmlu
dCAiICB8LS0tLT4gSW50ZXJmYWNlOyBOQU1FIFwiJGludGVyZmFjZU5hbWVcIiIgLgotICAgICAg
ICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1
aWV0Oworc3ViIHBhcnNlSXRlcmF0b3JSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJhdG9yIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIml0
ZXJhdG9yIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VPcHRpb25hbEl0ZXJhdG9y
SW50ZXJmYWNlT3JPYmplY3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLSMgSW50ZXJuYWwgaGVscGVyCi1zdWIgRGV0
ZXJtaW5lUGFyc2VNb2RlCitzdWIgcGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmpl
Y3QKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0Owor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgbXkgJG1vZGUgPSBNT0RFX1VOREVGOwotICAgIGlmICgkXyA9fiAvbW9kdWxl
LykgewotICAgICAgICAkbW9kZSA9IE1PREVfTU9EVUxFOwotICAgIH0gZWxzaWYgKCRfID1+IC9p
bnRlcmZhY2UvKSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9JTlRFUkZBQ0U7Ci0gICAgfSBlbHNp
ZiAoJF8gPX4gL2V4Y2VwdGlvbi8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0VYQ0VQVElPTjsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0T3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0XzEvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVj
dCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJvYmplY3QiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICByZXR1cm4g
JG1vZGU7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgfQogfQogCi0j
IEludGVybmFsIGhlbHBlcgotc3ViIFByb2Nlc3NTZWN0aW9uCitzdWIgcGFyc2VPcGVyYXRpb25S
ZXN0CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAKLSAgICBpZiAoJHBhcnNlTW9kZSBl
cSBNT0RFX01PRFVMRSkgewotICAgICAgICBkaWUgKCJUd28gbW9kdWxlcyBpbiBvbmUgZmlsZSEg
RmF0YWwgZXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IG5lIDApOwotICAgICAgICAkZG9jdW1lbnQg
PSBuZXcgaWRsRG9jdW1lbnQoKTsKLSAgICAgICAgJG9iamVjdC0+UGFyc2VNb2R1bGUoJGRvY3Vt
ZW50KTsKLSAgICB9IGVsc2lmICgkcGFyc2VNb2RlIGVxIE1PREVfSU5URVJGQUNFIHx8ICRwYXJz
ZU1vZGUgZXEgTU9ERV9FWENFUFRJT04pIHsKLSAgICAgICAgbXkgJG5vZGUgPSBuZXcgZG9tQ2xh
c3MoKTsKLSAgICAgICAgbXkgJHNlY3Rpb25OYW1lID0gJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVS
RkFDRSA/ICJpbnRlcmZhY2UiIDogImV4Y2VwdGlvbiI7Ci0gICAgICAgICRvYmplY3QtPlBhcnNl
SW50ZXJmYWNlKCRub2RlLCAkc2VjdGlvbk5hbWUpOwotICAgIAotICAgICAgICBkaWUgKCJObyBt
b2R1bGUgc3BlY2lmaWVkISBGYXRhbCBFcnJvciFcbiIpIGlmICgkZG9jdW1lbnQgZXEgMCk7Ci0g
ICAgICAgIG15ICRhcnJheVJlZiA9ICRkb2N1bWVudC0+Y2xhc3NlczsKLSAgICAgICAgcHVzaChA
JGFycmF5UmVmLCAkbm9kZSk7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5j
dGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJl
KCkpOworICAgICAgICBteSAkbmFtZSA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsSWRlbnRpZmllcigp
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbmFtZSk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsICRuYW1lLCBf
X0xJTkVfXyk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRz
ZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKKyAgICAgICAgcHVzaChAeyRu
ZXdEYXRhTm9kZS0+cmFpc2VzRXhjZXB0aW9uc30sIEB7JHNlbGYtPnBhcnNlUmFpc2VzKCl9KTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iiwg
X19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFO
b2RlOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOworc3ViIHBh
cnNlT3B0aW9uYWxJZGVudGlmaWVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiAiIjsKIH0K
IAotMTsKK3N1YiBwYXJzZUFyZ3VtZW50TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGFyZ3VtZW50cyA9ICgpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEFyZ3VtZW50TGlzdF8xLykgeworICAgICAgICBwdXNoKEBhcmd1bWVu
dHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEB7
JHNlbGYtPnBhcnNlQXJndW1lbnRzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRz
OworfQorCitzdWIgcGFyc2VBcmd1bWVudHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwi
KSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5w
YXJzZUFyZ3VtZW50KCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1YiBwYXJzZUFy
Z3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwg
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnRMaXN0XzEvKSB7CisgICAgICAgIG15ICRp
biA9ICRzZWxmLT5wYXJzZUluKCk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAg
IG15ICRhcmd1bWVudCA9ICRzZWxmLT5wYXJzZU9wdGlvbmFsT3JSZXF1aXJlZEFyZ3VtZW50KCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkYXJndW1lbnQtPmRpcmVjdGlvbigkc2Vs
Zi0+cGFyc2VJbigpKTsKKyAgICAgICAgcmV0dXJuICRhcmd1bWVudDsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkg
JHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7CisgICAgJHBhcmFtRGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3B0
aW9uYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAib3B0aW9uYWwiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3Qg
Ij8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL1w/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURh
dGFOb2RlLT5pc051bGxhYmxlKDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBh
cmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUg
YWxsICI/IiBpZiBleGlzdHMsIGUuZy4gIm9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAg
ICAgICR0eXBlID1+IHMvXD8vL2c7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBl
KTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1l
KCkpOworICAgICAgICAkc2VsZi0+cGFyc2VEZWZhdWx0KCk7CisgICAgICAgIHJldHVybiAkcGFy
YW1EYXRhTm9kZTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAg
ICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2Rl
IGNhbiBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL1w/JC8p
IHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDEpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMCk7CisgICAg
ICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlzdHMsIGUuZy4gIm9iamVjdD9b
XT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMvXD8vL2c7CisgICAgICAgICRw
YXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRWxsaXBzaXMo
KTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1l
KCkpOworICAgICAgICByZXR1cm4gJHBhcmFtRGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlQXJndW1lbnROYW1lCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXJndW1lbnROYW1lXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBcmd1bWVudE5h
bWVLZXl3b3JkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlRWxsaXBzaXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiLi4uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIi4uLiIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAg
IHJldHVybiAwOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25NZW1iZXIKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25GaWVsZCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25GaWVsZAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2Vw
dGlvbkZpZWxkXzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1
dGUoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsK
KyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eQoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3Vi
IHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiWyIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHt9OworICAgICAgICBteSAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7
CisgICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9Cisg
ICAgICAgICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAg
IGZvciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0LT57JGtleX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Q7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0ge307CisKKyAgICB3aGlsZSAoMSkgeworICAg
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICIsIiwgX19MSU5FX18pOworICAgICAgICAgICAgbXkgJGF0dHIgPSAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTIoKTsKKyAgICAgICAgICAgIGZvciBteSAka2V5
IChrZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dC0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3Q7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkg
JHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHRva2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgIyBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5LiBTcGVjIGRvZXNuJyBhbGxvdyAiW10iLiBCdXQgV2ViS2l0IHJl
cXVpcmVzLgorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAnXScpIHsKKyAgICAgICAgcmV0dXJu
IHt9OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlMgoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiB7
fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgIG15ICRhdHRycyA9IHt9OworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICIoIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIigiLCBfX0xJTkVfXyk7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRzZWxmLT5w
YXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkYXR0cnM7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAg
ICAkYXR0cnMtPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7
CisgICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25z
dHJ1Y3RvciIpIHsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsK
KyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAg
ICByZXR1cm4gJGF0dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiLCBfX0xJTkVf
Xyk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0
dXJuICRuYW1lIC4gIiYiIC4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAifCIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAifCIgLiAkdG9rZW4tPnZhbHVl
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgbXkg
JGF0dHIgPSB7fTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICIoIiwgX19MSU5FX18pOworICAgICAgICAkYXR0ci0+eyRuYW1lfSA9ICRzZWxmLT5w
YXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEV4dGVuZGVkQXR0cmlidXRlUmVzdDNfMS8pIHsKKyAgICAgICAgbXkg
QG5hbWVzID0gKCk7CisgICAgICAgIHB1c2goQG5hbWVzLCAkbmFtZSk7CisgICAgICAgIHB1c2go
QG5hbWVzLCBAeyRzZWxmLT5wYXJzZUlkZW50aWZpZXJMaXN0KCl9KTsKKyAgICAgICAgcmV0dXJu
IGpvaW4oJyAnLCBAbmFtZXMpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlSWRlbnRpZmllckxpc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBuYW1lcyA9ICgpOworCisgICAgd2hpbGUgKDEp
IHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAgICAgcHVzaChAbmFt
ZXMsICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAbmFtZXM7Cit9CisK
K3N1YiBwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiYXR0cmlidXRlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZh
bHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRU
b2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNyZWF0
b3IiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkZWxldGVyIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0
VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0
ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbXBsZW1lbnRzIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW5oZXJpdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRv
a2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RhdGlj
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZh
bHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikg
eworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
VHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRUeXBlXzEv
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTaW5nbGVUeXBlKCk7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlU2luZ2xlVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJhbnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiYW55IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImFueSIgLiAkc2VsZi0+cGFy
c2VUeXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmds
ZVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VVbmlvblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIoIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJl
clR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJvciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBl
KCk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55Iiwg
X19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBl
XzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuaW9uTWVtYmVyVHlwZXMKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAib3IiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib3IiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5w
YXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5
cGVzKCk7CisgICAgfQorfQorCitzdWIgcGFyc2VOb25BbnlUeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0Tm9uQW55VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkJ5dGVTdHJpbmciKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVT
dWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9N
U3RyaW5nIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIkRPTVN0cmluZyIgLiAkc2VsZi0+
cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2Vx
dWVuY2UiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAic2VxdWVuY2UiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPCIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJHR5cGUg
PSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzZXF1ZW5j
ZTwiIC4gJHR5cGUgLiAiPiIgLiAkc2VsZi0+cGFyc2VOdWxsKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9iamVjdCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICJvYmplY3QiIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIkRhdGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRGF0ZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICJEYXRlIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxm
LT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlwZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRv
a2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZVByaW1pdGl2ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQ
cmltaXRpdmVUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZElu
dGVnZXJUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmlt
aXRpdmVUeXBlXzIvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3RyaWN0ZWRG
bG9hdFR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJv
b2xlYW4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYnl0ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJieXRlIiwgX19MSU5FX18pOworICAgICAgICBy
ZXR1cm4gImJ5dGUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9jdGV0Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9j
dGV0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIm9jdGV0IjsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIsIF9fTElORV9fKTsKKyAgICAgICAg
cmV0dXJuICJ1bnJlc3RyaWN0ZWQiIC4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRVbnJlc3RyaWN0ZWRGbG9hdFR5cGVfMS8p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUZsb2F0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJm
bG9hdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJmbG9hdCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJmbG9hdCI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZG91YmxlIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRvdWJsZSIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuICJkb3VibGUiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVk
SW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5z
aWduZWQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAidW5zaWduZWQgIiAuICRzZWxmLT5w
YXJzZUludGVnZXJUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRVbnNpZ25lZEludGVnZXJUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJ
bnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVnZXJUeXBlCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNob3J0IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNob3J0IiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gInNob3J0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJp
bnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiaW50IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImludCI7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIiwgX19MSU5FX18pOworICAgICAgICBpZiAo
JHNlbGYtPnBhcnNlT3B0aW9uYWxMb25nKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAibG9uZyBs
b25nIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gImxvbmciOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZU9wdGlvbmFsTG9uZworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJs
b25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImxvbmciLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1
cm4gMDsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJbXSIg
LiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiPyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI/IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIj8iIC4gJHNlbGYtPnBhcnNl
VHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIHJldHVybiAiIjsKK30K
Kworc3ViIHBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgcmV0dXJuICIi
OworfQorCitzdWIgcGFyc2VOdWxsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj8i
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
PyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICI/IjsKKyAgICB9CisgICAgcmV0dXJuICIi
OworfQorCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInZvaWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAidm9pZCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICBteSAkYXR0ciA9IHt9Owor
ICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0c0dldHRlcigpOworICAgICAgICAkYXR0ci0+eyJp
bmhlcml0cyJ9ID0gMTsKKyAgICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKKyAgICAg
ICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAg
ICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
R2V0XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMoKTsKKyAg
ICB9Cit9CisKK3N1YiBwYXJzZUluaGVyaXRzR2V0dGVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXRzIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVNldEdldFJhaXNlcwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAkYXR0ci0+
eyJpbmhlcml0cyJ9ID0gMDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJz
ZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlcygpOworICAgICAgICAkYXR0ci0+eyJn
ZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlczIoKTsKKyAgICAgICAgcmV0dXJuICRh
dHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAg
ICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsiZ2V0cmFpc2Vz
In0gPSAkc2VsZi0+cGFyc2VHZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2V0R2V0UmFpc2VzMl8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2V0R2V0UmFpc2VzMigpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUdldFJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJz
ZUdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJ
TkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitz
dWIgcGFyc2VTZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVy
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
InNldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2V0R2V0
UmFpc2VzMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdldFJhaXNl
czJfMS8pIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJGF0dHItPnsiaW5oZXJp
dHMifSA9IDA7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0
UmFpc2VzMygpOworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNl
dFJhaXNlczMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUdldFJhaXNlczMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0cmFpc2Vz
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImdldHJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2Vw
dGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlz
ZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHJhaXNlcyIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXRyYWlzZXMi
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7
CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTGlzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSBAZXhjZXB0aW9u
cyA9ICgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIigiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgcHVzaChAZXhjZXB0aW9ucywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAg
cHVzaChAZXhjZXB0aW9ucywgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVycygpfSk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuIFxAZXhjZXB0aW9uczsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsK
KyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VEZWZpbml0aW9uT2xkCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbl8xLykgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tPckludGVyZmFjZU9sZCgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VQYXJ0aWFsKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJk
aWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeU9sZCgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk9sZCgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFbnVt
T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoe30pOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU1v
ZHVsZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoe30pOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU1vZHVsZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJtb2R1bGUiKSB7CisgICAgICAgIG15ICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVu
dCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Im1vZHVsZSIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRkb2N1
bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0aW9ucyA9
ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHskZG9jdW1lbnQtPmNs
YXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJz
ZU9wdGlvbmFsU2VtaWNvbG9uKCk7CisgICAgICAgIHJldHVybiAkZG9jdW1lbnQ7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZU9sZAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjYWxsYmFjayIsIF9fTElORV9fKTsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKHt9KTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRl
cmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgewor
ICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7
CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7Cisg
ICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMCk7CisgICAgICAgIHB1c2goQHskZGF0YU5v
ZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOwor
ICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0
YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0
ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJu
ICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VDb25zdCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1i
ZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0
aW9uT3JJdGVyYXRvck9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlP
bGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RB
bGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXRhbmNl
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
eyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9Iiwg
X19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmll
bGRfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRzZWxmLT5wYXJzZURlZmF1bHQoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNs
YXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZXhjZXB0aW9uIiwgX19MSU5FX18pOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAg
ICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+
bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEp
OworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhl
cml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk1lbWJlcnMgPSAk
c2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgICAgICMkc2VsZi0+cGFyc2VFeGNl
cHRpb25NZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJl
ckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRW51bU9sZAor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVudW0iLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yT2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VTZXJpYWxpemVyKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8k
bmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xLykgeworICAgICAgICBteSAkcXVh
bGlmaWVyID0gJHNlbGYtPnBhcnNlUXVhbGlmaWVyKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9
ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZCgpOworICAgICAgICBpZiAo
ZGVmaW5lZCAoJGRhdGFOb2RlKSAmJiAkcXVhbGlmaWVyIGVxICJzdGF0aWMiKSB7CisgICAgICAg
ICAgICAkZGF0YU5vZGUtPmlzU3RhdGljKDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAk
ZGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1
dGVPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9sZCgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKHt9KTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RPbGQKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkg
JHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRh
Tm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3Qoe30pOworICAgICAgICBpZiAoZGVmaW5l
ZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUo
JHJldHVyblR5cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUlu
aGVyaXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3RPbGQoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0T2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgeworICAgICAgICBteSAk
bmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7CisgICAgICAgIGlmICgkc2VsZi0+cGFy
c2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5
IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIsIF9fTElORV9fKTsKKyAgICAg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmli
dXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3
IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUo
JHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgbXkgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUo
JHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0UmVmID0gJHNlbGYtPnBh
cnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAgICAgIHB1
c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsiZ2V0cmFp
c2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlv
bnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAgfQorICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW4K
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW4iKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW4iLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAiaW4iOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZU9w
dGlvbmFsU2VtaWNvbG9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9f
TElORV9fKTsKKyAgICB9Cit9CisKK3N1YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkbWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRp
dGVtIChAeyRtZW1iZXJzfSkgeworICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmli
dXRlIikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVt
KTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkg
ZXEgImRvbUNvbnN0YW50IikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3Rh
bnRzfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
cmVmKCRpdGVtKSBlcSAiZG9tRnVuY3Rpb24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5mdW5jdGlvbnN9LCAkaXRlbSk7CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9Cisg
ICAgfQorfQorCitzdWIgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisK
KyAgICBpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0p
IHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAg
ICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAo
ZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewor
ICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBr
ZXlzICglYXR0cmlidXRlcyk7CisgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmli
dXRlS2V5c1swXTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7
JGF0dHJpYnV0ZXN7JGNvbnN0cnVjdG9yTmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAg
ICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisx
OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmNwcAppbmRleCAwY2Y2NzY1OTljNjNiZjEyNWMxZDQ5YmNhYTBj
ODMzYzg1MzE4MTNjLi41MzE4MWQ0YTkwNTIzZjI1NGM4MjVlNTY5YzdhZmQwODg4NjhiOGUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9D
UFAvV2ViRE9NVGVzdE9iai5jcHAKQEAgLTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVz
dE9iajo6c2V0VW5zaWduZWRTaG9ydEF0dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9y
dEF0dHIpCiAgICAgaW1wbCgpLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0
QXR0cik7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBX
ZWJET01UZXN0T2JqOjpsb25nQXR0cigpIGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBp
bXBsKCktPmxvbmdBdHRyKCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25n
IGxvbmcgbmV3QXR0cikKK3ZvaWQgV2ViRE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xv
bmdBdHRyKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBs
KCktPnNldEF0dHIobmV3QXR0cik7CisgICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0
cik7CiB9CiAKIGxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApA
QCAtNDI1LDkgKzQyNSw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oaW50IG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpbXBsKCktPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uLCBlYyk7Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01F
eGNlcHRpb25Db2RlPihlYykpOworICAgIGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6
YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQg
V2ViRE9NVGVzdE9iajo6c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2Vi
RE9NU3RyaW5nJiBuZXdTdHJpCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24s
IGVjKTsKLSAgICB3ZWJET01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNv
ZGU+KGVjKSk7CisgICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihu
ZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJE
T01UZXN0T2JqOjpzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02Nzcs
MjggKzY3MywyOCBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwo
KS0+dm9pZE1ldGhvZCgpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRo
QXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2Vi
RE9NVGVzdE9iaiYgb2JqQXJnKQordm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFy
Z3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGltcGwoKS0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2Jq
QXJnKSk7CisgICAgaW1wbCgpLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0
b1dlYkNvcmUob2JqQXJnKSk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2Qo
KQoraW50IFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJl
dHVybiBpbXBsKCktPmxvbmdNZXRob2QoKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6
Ok1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJn
LCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01l
dGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29u
c3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICBy
ZXR1cm4gMDsKIAotICAgIHJldHVybiBpbXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJn
LCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhB
cmdzKGxvbmdBcmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0
T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZCgpCkBAIC03MDksMTIgKzcwNSwxMiBAQCBXZWJE
T01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0
KFdURjo6Z2V0UHRyKGltcGwoKS0+b2JqTWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBX
ZWJET01UZXN0T2JqOjpvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJE
T01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVz
dE9iaiBXZWJET01UZXN0T2JqOjpvYmpNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3Qg
V2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAg
ICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJl
dHVybiB0b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywg
c3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpn
ZXRQdHIoaW1wbCgpLT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29y
ZShvYmpBcmcpKSkpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRo
YXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNv
bnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKQEAgLTkwMiwzNiArODk4LDM2IEBAIHZvaWQgV2Vi
RE9NVGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQog
CiAjZW5kaWYKIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiAp
Cit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewog
ICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQx
KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwog
fQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQg
V2ViRE9NVGVzdE9iajo6Y29udmVydDIoY29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYg
KCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJD
b3JlKCkpOworICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZv
aWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDQoY29uc3QgV2ViRE9NZCYgKQordm9pZCBXZWJET01U
ZXN0T2JqOjpjb252ZXJ0NChjb25zdCBXZWJET01kJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUoKSk7
CisgICAgaW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJE
T01UZXN0T2JqOjpjb252ZXJ0NShjb25zdCBXZWJET01lJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6
OmNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQ1KHRvV2ViQ29yZSgpKTsKKyAgICBp
bXBsKCktPmNvbnZlcnQ1KHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCiBXZWJET01TVkdQb2ludCBX
ZWJET01UZXN0T2JqOjptdXRhYmxlUG9pbnRGdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCmluZGV4
IGQ1NWZmNzg2NTUxZWJkM2M3NGFkMWE5Njg4MzJkMjAyOWJjYWM1MjcuLjVkOWE5YWMwMDI4MWRj
OTA4OTMwMWQ2ZTdhNWI1Mjc4ZjRkYWFkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC03Nyw4ICs3
Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3J0QXR0cihzaG9ydCk7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgdW5zaWduZWRTaG9ydEF0dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFVuc2lnbmVk
U2hvcnRBdHRyKHVuc2lnbmVkIHNob3J0KTsKLSAgICBsb25nIGxvbmcgQXR0cigpIGNvbnN0Owot
ICAgIHZvaWQgc2V0QXR0cihsb25nIGxvbmcpOworICAgIGludCBsb25nQXR0cigpIGNvbnN0Owor
ICAgIHZvaWQgc2V0TG9uZ0F0dHIoaW50KTsKICAgICBsb25nIGxvbmcgbG9uZ0xvbmdBdHRyKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRMb25nTG9uZ0F0dHIobG9uZyBsb25nKTsKICAgICB1bnNpZ25l
ZCBsb25nIGxvbmcgdW5zaWduZWRMb25nTG9uZ0F0dHIoKSBjb25zdDsKQEAgLTE0NywxMSArMTQ3
LDExIEBAIHB1YmxpYzoKICAgICBpbnQgcmVwbGFjZWFibGVBdHRyaWJ1dGUoKSBjb25zdDsKIAog
ICAgIHZvaWQgdm9pZE1ldGhvZCgpOwotICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcg
bG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2Jq
JiBvYmpBcmcpOwotICAgIGxvbmcgbG9uZyBNZXRob2QoKTsKLSAgICBsb25nIGxvbmcgTWV0aG9k
V2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0
IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MoaW50
IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2Jq
JiBvYmpBcmcpOworICAgIGludCBsb25nTWV0aG9kKCk7CisgICAgaW50IGxvbmdNZXRob2RXaXRo
QXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBvYmpNZXRob2QoKTsKLSAgICBX
ZWJET01UZXN0T2JqIG9iak1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRP
TVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIFdlYkRP
TVRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmlu
ZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RP
YmogbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhjb25zdCBXZWJET01TdHJpbmcm
IHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICB2b2lkIHNlcmlhbGl6
ZWRWYWx1ZShjb25zdCBXZWJET01TdHJpbmcmIHNlcmlhbGl6ZWRBcmcpOwogICAgIHZvaWQgaWRi
S2V5KGNvbnN0IFdlYkRPTUlEQktleSYga2V5KTsKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGNv
bnN0IFdlYkRPTVN0cmluZyYgdHlwZSk7CiAjZW5kaWYKLSAgICB2b2lkIGNvbnZlcnQxKGNvbnN0
IFdlYkRPTWEmICk7Ci0gICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJET01iJiApOwotICAgIHZv
aWQgY29udmVydDQoY29uc3QgV2ViRE9NZCYgKTsKLSAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdl
YkRPTWUmICk7CisgICAgdm9pZCBjb252ZXJ0MShjb25zdCBXZWJET01hJiB2YWx1ZSk7CisgICAg
dm9pZCBjb252ZXJ0Mihjb25zdCBXZWJET01iJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChj
b25zdCBXZWJET01kJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2
YWx1ZSk7CiAgICAgV2ViRE9NU1ZHUG9pbnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBX
ZWJET01TVkdQb2ludCBpbW11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggMTIwNGRmYjUwZGJkM2Rj
OWE0MjNjYTFkNWFhYjU3MzE4MzVlYjkzOC4uMmQwM2RhZTlhOGRiZmE3MDVhMWU0ZGM1OGI2NTYz
OTIxMDhiNzg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNiw3
ICsxMDYsNyBAQCBlbnVtIHsKICAgICBQUk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAg
IFBST1BfU0hPUlRfQVRUUiwKICAgICBQUk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJP
UF9BVFRSLAorICAgIFBST1BfTE9OR19BVFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAg
ICAgUFJPUF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApA
QCAtMTc5LDYgKzE3OSwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVT
ZWxmLT5zZXRVbnNpZ25lZFNob3J0QXR0cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAg
Y29yZVNlbGYtPnNldExvbmdBdHRyKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7
CiAgICAgICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRf
dWludDY0KHZhbHVlKSkpOwogICAgICAgICBicmVhazsKQEAgLTIyOCw4ICsyMzIsNyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1Bf
QVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElP
TjogewpAQCAtMjM4LDggKzI0MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENF
UFRJT046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6
ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNl
bGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRG
OChnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjks
OCArMzMxLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91
aW50KHZhbHVlLCBjb3JlU2VsZi0+dW5zaWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICBjYXNlIFBST1BfQVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2
NCh2YWx1ZSwgY29yZVNlbGYtPmF0dHIoKSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogewor
ICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAg
LTU5MywxMiArNTk1LDEyIEBAIEdfTUFYVUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICov
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfQVRUUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFy
YW1fc3BlY19pbnQ2NCgiYXR0ciIsIC8qIG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBz
aG9ydCBkZXNjcmlwdGlvbiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIs
IC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX01JTklOVDY0LCAvKiBtaW4gKi8KLUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyog
bmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9vYmpfbG9uZy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291
bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyog
bWluICovCitHX01BWExPTkcsIC8qIG1heCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
b2JqZWN0Q2xhc3MsCkBAIC05MzEsNyArOTMzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lk
X21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50
NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05NDQsMjEgKzk0NiwyMSBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjbwogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNv
cmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwog
ICAgIH0KLSAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcs
IGNvbnZlcnRlZE9iakFyZyk7CisgICAgaXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtp
dF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xv
bmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRl
c3RPYmoqIG9iakFyZykKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dp
dGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hh
ciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpAQCAtOTcxLDcgKzk3Myw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAg
IGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVz
dWx0ID0gaXRlbS0+TWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRl
ZE9iakFyZyk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxv
bmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCkBAIC05ODcsNyArOTg5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9i
akFyZykKK3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0
RE9NVGVzdE9iaiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDAp
OwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTEwMDAsNyAr
MTAwMiw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9iakFy
ZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChj
b252ZXJ0ZWRPYmpBcmcsIDApOwogICAgIH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4g
Z29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFyZywg
Y29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhB
cmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAgV2Vi
S2l0RE9NVGVzdE9iaiogcmVzdWx0ID0gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEzNDQsNjMgKzEzNDYsNjMgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29u
c3QgZ2NoYXIqIHR5cGUKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKQogewog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRl
ZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsK
LSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwodmFsdWUpOworICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAo
dmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwor
ICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRl
bS0+Y29udmVydDEoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0MShjb252ZXJ0ZWRWYWx1
ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NYiogKQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1ZSkKIHsKICAgICBnX3JldHVy
bl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWQgPSAwOwotICAg
IGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdf
cmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsK
KyAgICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7Cisg
ICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQy
KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDIoY29udmVydGVkVmFsdWUpOwogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IFdlYktpdERPTWQqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NZCogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2Vi
Q29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6ZCogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0g
ICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9m
YWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29y
ZTo6ZCogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252
ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2Zh
aWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWQp
OworICAgIGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01l
KiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IFdlYktpdERPTWUqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RP
YmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwot
ICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252
ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0
ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmUqIGNvbnZl
cnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUg
PSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRl
ZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDUoY29udmVydGVkKTsKKyAgICBpdGVt
LT5jb252ZXJ0NShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVNWR1BvaW50KgpAQCAt
MTUyMSwyMyArMTUyMywyMyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9y
dF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGd1c2hvcnQgdmFsdQogICAgIGl0ZW0tPnNl
dFVuc2lnbmVkU2hvcnRBdHRyKHZhbHVlKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90
ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgZ2ludDY0IHJlc3VsdCA9IGl0ZW0tPmF0dHIoKTsKKyAgICBnbG9uZyByZXN1
bHQgPSBpdGVtLT5sb25nQXR0cigpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQKLXdl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0
IHZhbHVlKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdsb25nIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRl
c3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRlbS0+c2V0QXR0cih2YWx1
ZSk7CisgICAgaXRlbS0+c2V0TG9uZ0F0dHIodmFsdWUpOwogfQogCiBnaW50NjQKQEAgLTE4NjUs
MTcgKzE4NjcsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9l
eGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSwgZWMpOwot
ICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24g
ZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19m
cm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAg
IH0KKyAgICBpdGVtLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSk7CiB9CiAKIGds
b25nCkBAIC0xOTE0LDE5ICsxOTExLDE0IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmlu
Z19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiB9CiAK
IHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4
Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJv
cioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkK
IHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwogICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwogICAgIFdURjo6U3RyaW5n
IGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRTdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIGdjaGFyKgpA
QCAtMjAxNyw3ICsyMDA5LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwKIH0KIAogdm9pZAot
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNl
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9y
KiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRy
aWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZh
bHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjAyOCwxMiArMjAyMCw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9N
VGVzdE9iaiogc2VsCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVl
KTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewot
ICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAg
ICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VC
S0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBX
ZWJLaXRET01UZXN0T2JqKgpAQCAtMjA1Myw3ICsyMDQwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET00KIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwpAQCAtMjA2NCwxMiArMjA1MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dp
dGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiAg
ICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAg
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAg
ICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRf
RE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsK
IH0KIAogV2ViS2l0RE9NVGVzdE9iaioKQEAgLTIxMTUsNyArMjA5Nyw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2Ny
aXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29u
dGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChz
ZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMTI2
LDEyICsyMTA4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUKICAgICAgICAgY29udmVydGVk
VmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNv
bnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZl
cnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaAppbmRleCAzOTVmYTc3YTY5MTQ0ZDIwODZkZWI1NDMyYWM2MDliMmU0Y2NkOTY2Li45
ZDkwNWFkMmIxOTgxMjk5ZDllZjViYTM0MGRhNzUyMjI2NGIyN2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5oCkBAIC01OCw3ICs1OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9p
ZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVz
dF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJn
OiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTY2LDMw
ICs2NiwzMCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpOwogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0
X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiog
b2JqQXJnKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZDoKKyAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9i
agogICoKICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2Rv
bV90ZXN0X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGds
b25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpOwogCiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJnczoKKyAq
IHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2ds
b25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9i
agogICoKICAqIFJldHVybnM6CiAgKgogKiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2Rv
bV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2
NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CitX
RUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJn
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3Ry
QXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVz
dF9vYmpfb2JqX21ldGhvZDoKQEAgLTEwNCw3ICsxMDQsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJB
cmc6IEEgI2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtMTEy
LDcgKzExMiw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChXZWJLaXRET01UZXN0
T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdFQktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtp
dF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2Jq
QXJnKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0
RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhv
ZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdzX2FuZF90aHJvd3M6CkBAIC00MDAsNDYgKzQwMCw0NiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBjb25zdCBnY2hhciogdHlwZQogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2Nv
bnZlcnQxOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERP
TWEKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBX
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NYSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogdmFsdWUpOwogCiAvKioKICAqIHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9i
agotICogQDogQSAjV2ViS2l0RE9NYgorICogQHZhbHVlOiBBICNXZWJLaXRET01iCiAgKgogICog
UmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiApOword2Via2l0X2Rv
bV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2
YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NDoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRET01kCisgKiBAdmFsdWU6IEEg
I1dlYktpdERPTWQKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktp
dERPTWQqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIFdlYktpdERPTWQqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktp
dERPTWUKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NZQogICoKICAqIFJldHVybnM6CiAgKgogKiov
CiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVy
dDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSogdmFsdWUpOwogCiAvKioKICAq
IHdlYmtpdF9kb21fdGVzdF9vYmpfbXV0YWJsZV9wb2ludF9mdW5jdGlvbjoKQEAgLTU1OCwyNSAr
NTU4LDI1IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWdu
ZWRfc2hvcnRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHVlKTsKIAog
LyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfbG9uZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAg
KiBSZXR1cm5zOgogICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7
CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0g
KiBAdmFsdWU6IEEgI2dpbnQ2NAorICogQHZhbHVlOiBBICNnbG9uZwogICoKICAqIFJldHVybnM6
CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAK
IC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19sb25nX2F0dHI6CkBAIC05MDgs
MTMgKzkwOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4
Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogICogd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnbG9uZwotICogQGVycm9yOiAjR0Vycm9yCiAgKgog
ICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29i
al9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0
dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZh
bHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfc2V0dGVy
X2V4Y2VwdGlvbjoKQEAgLTk1MywxMyArOTUyLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxm
CiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNl
cHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnY2hh
cgotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9B
UEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJf
ZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vy
cm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9n
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9z
ZXR0ZXJfZXhjZXB0aW9uOgpAQCAtMTA0MCwxMyArMTAzOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbAogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0
cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6
IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwor
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNl
cyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8q
KgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRl
eHRfYXR0cmlidXRlX3JhaXNlczoKQEAgLTEwNjMsMTMgKzEwNjAsMTIgQEAgd2Via2l0X2RvbV90
ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNl
cyhXZWJLaXRET00KICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9i
aiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3Rh
dGVfYXR0cmlidXRlOgpAQCAtMTEwNywxMyArMTEwMywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJp
YnV0ZQogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9y
OiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRp
b25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9z
Y3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJL
aXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNl
c19hdHRyaWJ1dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IGY0OGE5YzgzMzcwZjUzNGNmNTA4YWEzY2ZlY2Fl
MjU5NzY2N2VjNjcuLjQ5YTJmYzdkMGYxZTg3OWQ4OGY5OTk1Mzk3Yzk5NWVhZjMwM2NiODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0KICAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpMCwg
Tm9JbnRyaW5zaWMgfSwKICAgICB7ICJzaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0QXR0
ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAg
eyAidW5zaWduZWRTaG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwg
KGludHB0cl90KXNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAot
ICAgIHsgIkF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2Jq
QXR0ciwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9u
Z0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAg
ICAgeyAibG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInVuc2ln
bmVkTG9uZ0xvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwK
ICAgICB7ICJzdHJpbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialN0cmluZ0F0dHIsIE5vSW50cmluc2ljIH0sCkBAIC0yNjYsOCArMjY2LDgg
QEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQ09OU1RfSkFWQVNDUklQVCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsg
InZvaWRNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRo
b2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFy
Z3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJn
cyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIk1ldGhvZCIsIERvbnREZWxl
dGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmlu
c2ljIH0sCi0gICAgeyAiTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlv
biwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCisg
ICAgeyAibG9uZ01ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9u
Z01ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdNZXRob2RX
aXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdp
dGhBcmdzKSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kIiwg
RG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3Qp
MCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUg
fCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywg
Tm9JbnRyaW5zaWMgfSwKICAgICB7ICJtZXRob2RXaXRoU2VxdWVuY2VBcmciLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyksIChpbnRwdHJf
dCkxLCBOb0ludHJpbnNpYyB9LApAQCAtNDYzLDEyICs0NjMsMTIgQEAgSlNWYWx1ZSBqc1Rlc3RP
YmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFBy
b3BlcnR5TmEKIH0KIAogCi1KU1ZhbHVlIGpzVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCitKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90
QmFzZSkpOwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1
bHQgPSBqc051bWJlcihpbXBsLT5hdHRyKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoaW1wbC0+bG9uZ0F0dHIoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTAwMSwx
MiArMTAwMSwxMiBAQCB2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdQogfQogCiAKLXZvaWQgc2V0SlNU
ZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJBTShleGVj
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09i
amVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwotICAgIGltcGwtPnNldEF0dHIoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2
YWx1ZS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbXBsLT5zZXRMb25nQXR0cih2YWx1ZS50b0lu
dDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0xMTU5LDkgKzExNTksNyBAQCB2b2lkIHNldEpTVGVzdE9i
akF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNP
YmplY3QsCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUu
dG9JbnQzMihleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAg
aW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSk7CiB9
CiAKIApAQCAtMTE4MSw5ICsxMTc5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpT
VGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS5pc0VtcHR5
KCkgPyBTdHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgZWMpOwot
ICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24odmFsdWUuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiB2YWx1ZS50b1N0
cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwogfQogCiAKQEAgLTEyMzEsOSArMTIyNyw3IEBAIHZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjQyLDEyICsxMjM2
LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0
KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBp
ZiAoIXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RP
YmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBs
LT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250
ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xMjY4LDEyICsxMjYwLDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlw
dENvbnRleHQpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRl
eHQsIHRvVGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMp
OworICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9
CiAKIApAQCAtMTQ1MSw3ICsxNDQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAg
IGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAg
IGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0
IFN0cmluZyYgc3RyQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJ
c1VuZGVmaW5lZCkuaXNFbXB0eSgpID8gU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KSk7CkBAIC0xNDYwLDExICsxNDUwLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAg
VGVzdE9iaiogb2JqQXJnKHRvVGVzdE9iaihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAy
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwt
PnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXBsLT52b2lk
TWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxv
bmdNZXRob2QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RP
Ymo6OnNfaW5mbykpCkBAIC0xNDczLDExICsxNDYzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVj
KQogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6
c19pbmZvKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1w
bC0+bWV0aG9kKCkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5s
b25nTWV0aG9kKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgp
OwogICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0x
NDg3LDcgKzE0NzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKgogICAgIFRlc3RPYmoqIGlt
cGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25n
IEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdB
cmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50
b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBz
dHJBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEs
IERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE0
OTcsNyArMTQ4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZFdp
dGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoaW1wbC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJn
KSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xNTI0LDcg
KzE1MTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMy
KGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmco
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0Vt
cHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1
bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE1MzQsNyAr
MTUyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
Ci0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJn
LCBvYmpBcmcpKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdz
KGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIApAQCAtMTU2NSwxMSArMTU1NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVu
Y2UoRQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4
ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgaW1wbC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSk7CisgICAg
SlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIGltcGwtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdBcmcpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTIxNDQsMTAgKzIxMzQsMTAgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kMigKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICB9CiAKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxv
bmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZp
bmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJn
KTsKKyAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjE3OCwxMCArMjE2
OCwxMCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KAogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1
bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4
ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChB
cmcpOworICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjQ4NSwxMCArMjQ3NSwxMCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDEoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2Fz
dDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgYSogKHRvYShNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgYSogdmFsdWUodG9h
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
ICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDEoKTsKKyAgICBpbXBsLT5j
b252ZXJ0MSh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIApAQCAtMjUwMiwxMCArMjQ5MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7
Ci0gICAgYiogKHRvYihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CisgICAgYiogdmFsdWUodG9iKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
aW1wbC0+Y29udmVydDIoKTsKKyAgICBpbXBsLT5jb252ZXJ0Mih2YWx1ZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUxOSwxMCArMjUwOSwx
MCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDQoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNf
Y2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgZCogKHRvZChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgZCogdmFsdWUo
dG9kKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDQoKTsKKyAgICBpbXBs
LT5jb252ZXJ0NCh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtMjUzNiwxMCArMjUyNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVj
KQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgZSogKHRvZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CisgICAgZSogdmFsdWUodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgaW1wbC0+Y29udmVydDUoKTsKKyAgICBpbXBsLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDEyMzI3
MjQwNTJhZGYyMGViOGE2OTA2YTAyMTE5NTM1M2QxYTExY2YuLmY4MTBkODAwMTYwNGI4NmE0Mjlm
YTg4YjU1NGZiYmU1OTAxOGU3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0
ZWQ6CiAKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZvaWRNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRo
QXJncyhKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkV4ZWNT
dGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpN
ZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0
YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTIy
OCw4ICsyMjgsOCBAQCBKU0M6OkpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZQogdm9pZCBzZXRKU1Rlc3RPYmpT
aG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFs
dWUpOwotSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpz
VGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0xv
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CiB2b2lkIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmgKaW5kZXggNmE5MDk5MTFjYzhiYjBhYzAzMWM3MDEyOWE0MTkxNjJkNjVl
ZWNhZS4uOTU2MzM1OTFlN2ZiMzcwYjhkZGI2MGFhNzY0NTEyN2RkZDdjYjExYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RP
YmouaApAQCAtNzAsNyArNzAsNyBAQCBlbnVtIHsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWlu
KSBET01UZXN0T2JqICpyZWFkT25seVRlc3RPYmpBdHRyOwogQHByb3BlcnR5IHNob3J0IHNob3J0
QXR0cjsKIEBwcm9wZXJ0eSB1bnNpZ25lZCBzaG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKLUBwcm9w
ZXJ0eSBsb25nIGxvbmcgQXR0cjsKK0Bwcm9wZXJ0eSBpbnQgbG9uZ0F0dHI7CiBAcHJvcGVydHkg
bG9uZyBsb25nIGxvbmdMb25nQXR0cjsKIEBwcm9wZXJ0eSB1bnNpZ25lZCBsb25nIGxvbmcgdW5z
aWduZWRMb25nTG9uZ0F0dHI7CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHI7
CkBAIC0xMTcsMTggKzExNywxOCBAQCBlbnVtIHsKIEBwcm9wZXJ0eSBpbnQgcmVwbGFjZWFibGVB
dHRyaWJ1dGU7CiAKIC0gKHZvaWQpdm9pZE1ldGhvZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhB
cmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01U
ZXN0T2JqICopb2JqQXJnOwotLSAobG9uZyBsb25nKU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRo
b2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQp
bG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9i
akFyZzsKKy0gKGludClsb25nTWV0aG9kOworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50
KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilv
YmpBcmc7CiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1l
dGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdz
QW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7
CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAo
dm9pZClpZGJLZXk6KERPTUlEQktleSAqKWtleTsKIC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9N
RGljdGlvbmFyeSAqKW9vIG9vbzooRE9NRGljdGlvbmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9k
V2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQpY3VzdG9tTWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRo
b2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGlu
dClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnOwogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVu
ZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNh
cHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0
ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNl
Q2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNjcmlwdFN0YXRlVm9pZDsKQEAgLTE2NSwxMCArMTY1LDEw
IEBAIGVudW0gewogLSAodm9pZClvdmVybG9hZGVkTWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwog
I2VuZGlmCiAtIChET01TVkdEb2N1bWVudCAqKWdldFNWR0RvY3VtZW50OwotLSAodm9pZCljb252
ZXJ0MTooRE9NYSAqKTsKLS0gKHZvaWQpY29udmVydDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZl
cnQ0OihET01kICopOwotLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKTsKKy0gKHZvaWQpY29udmVy
dDE6KERPTWEgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDI6KERPTWIgKil2YWx1ZTsKKy0gKHZv
aWQpY29udmVydDQ6KERPTWQgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1
ZTsKIC0gKERPTVNWR1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb247CiAtIChET01TVkdQb2lu
dCAqKWltbXV0YWJsZVBvaW50RnVuY3Rpb247CiAtICh2b2lkKW9yYW5nZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1t
CmluZGV4IDhiMmJjZjAwYjFmOTY0MTNjOTBjOTA5MDBkNTBmODhjOGVhZDZkNjIuLjNkZDBlN2Fm
MGNhNjc5YzgxYTc2ZmZjNjFkNDBhM2NhNmE5NTc2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMTQw
LDE2ICsxNDAsMTYgQEAKICAgICBJTVBMLT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25l
ZFNob3J0QXR0cik7CiB9CiAKLS0gKGxvbmcgbG9uZylBdHRyCistIChpbnQpbG9uZ0F0dHIKIHsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElN
UEwtPmF0dHIoKTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ0F0dHIoKTsKIH0KIAotLSAodm9pZClz
ZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0cgorLSAodm9pZClzZXRMb25nQXR0cjooaW50KW5ld0xv
bmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IElNUEwtPnNldEF0dHIobmV3QXR0cik7CisgICAgSU1QTC0+c2V0TG9uZ0F0dHIobmV3TG9uZ0F0
dHIpOwogfQogCiAtIChsb25nIGxvbmcpbG9uZ0xvbmdBdHRyCkBAIC0zNDgsOSArMzQ4LDcgQEAK
IC0gKHZvaWQpc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChpbnQpYXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24KQEAgLTM3OSw5ICszNzcsNyBAQAogLSAodm9pZClzZXRTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbjooTlNTdHJpbmcgKiluZXdTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRTdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwg
ZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0U3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24pOwogfQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBA
IC00NTAsOSArNDQ2LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5z
ZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlUmFpc2VzCkBAIC00NjksOSArNDYzLDcgQEAKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVS
YWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBM
LT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRl
c3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRl
CkBAIC01MDIsOSArNDk0LDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVy
cm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUK
QEAgLTczOSwyMiArNzI5LDIyIEBACiAgICAgSU1QTC0+dm9pZE1ldGhvZCgpOwogfQogCi0tICh2
b2lkKXZvaWRNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAodm9pZCl2b2lkTWV0aG9kV2l0
aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01U
ZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIElNUEwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpB
cmcpKTsKKyAgICBJTVBMLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpOwogfQogCi0tIChsb25nIGxvbmcpTWV0aG9kCistIChpbnQpbG9uZ01ldGhvZAog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4g
SU1QTC0+bWV0aG9kKCk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2QoKTsKIH0KIAotLSAo
bG9uZyBsb25nKU1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcg
KilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCistIChpbnQpbG9uZ01ldGhvZFdp
dGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9N
VGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUo
b2JqQXJnKSk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2QKQEAg
LTc2MywxMCArNzUzLDEwIEBACiAgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpN
ZXRob2QoKSkpOwogfQogCi0tIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcg
bG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilv
YmpBcmcKKy0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3Ry
QXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChX
VEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpB
cmcpKSkpOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFy
Z3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpKSk7CiB9CiAKIC0gKERPTVRlc3RPYmog
KiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBv
YmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKQEAgLTgxMCwxMCArODAwLDEwIEBACiAgICAgSU1Q
TC0+Y3VzdG9tTWV0aG9kKCk7CiB9CiAKLS0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGxv
bmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmog
KilvYmpBcmcKKy0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmN1c3RvbU1l
dGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAgIElNUEwtPmN1c3Rv
bU1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAogLSAo
dm9pZClhZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01F
dmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUKQEAgLTEw
MDUsMjggKzk5NSwyOCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVy
dDE6KERPTWEgKikKKy0gKHZvaWQpY29udmVydDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3Jl
KCkpOworICAgIElNUEwtPmNvbnZlcnQxKGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252
ZXJ0MjooRE9NYiAqKQorLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNv
cmUoKSk7CisgICAgSU1QTC0+Y29udmVydDIoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNv
bnZlcnQ0OihET01kICopCistICh2b2lkKWNvbnZlcnQ0OihET01kICopdmFsdWUKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDQo
Y29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0NChjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQp
Y29udmVydDU6KERPTWUgKikKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1ZQogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0
NShjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQ1KGNvcmUodmFsdWUpKTsKIH0KIAogLSAoRE9N
U1ZHUG9pbnQgKiltdXRhYmxlUG9pbnRGdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGYyZDFmZTgxMGQxYmFlZDE3NDU2
YzdiMTQwMWE5Nzg2NzFiZDNmYzMuLmY3YjhiZTMyN2MwODU4Nzk2OWM2NTdlYjQ4NGFkYjk4MDli
NmE5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKQEAgLTUxLDcgKzUxLDcgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICAgICAgICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0
ZSBbVjhNZWFzdXJlQXM9VGVzdEZlYXR1cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKLSAgICAg
ICAgSlMsIFY4CisgICAgICAgIC8vIEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19s
Y2ZpcnN0IGV4Y2VwdGlvbmFsIGNhc2VzLgogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAg
ICAgICAgICAgICAgIFhNTE9iakF0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgICAgICAgICAgY3JlYXRlOwpAQCAtMjI2LDEwICsyMjYsMTAgQEAgbW9kdWxlIHRlc3Qgewog
ICAgICAgICBbQ2hlY2tTZWN1cml0eUZvck5vZGVdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50
KCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgY29u
dmVydDEoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gYSk7Ci0gICAgICAgIHZv
aWQgY29udmVydDIoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiKTsK
LSAgICAgICAgdm9pZCBjb252ZXJ0NChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCk7Ci0g
ICAgICAgIHZvaWQgY29udmVydDUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5k
ZWZpbmVkQXM9TnVsbFN0cmluZ10gZSk7CisgICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9TnVsbF0gYSB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVy
dDIoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiIHZhbHVlKTsKKyAg
ICAgICAgdm9pZCBjb252ZXJ0NChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCB2YWx1ZSk7
CisgICAgICAgIHZvaWQgY29udmVydDUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0
VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10gZSB2YWx1ZSk7CiAKICAgICAgICAgYXR0cmlidXRlIFNW
R1BvaW50IG11dGFibGVQb2ludDsKICAgICAgICAgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1Bv
aW50IGltbXV0YWJsZVBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA1MDI0MjhhNzEwMGM1ZjcxNjYzY2Y1
YzY5MTUxNjlkOTcyMjE1NTM1Li44MzkwZjEwNTgxNzIzYjFkYmNjMGZiMDU1N2QwYTAwYmQ1MjMw
YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcApAQCAtMTYxLDE5ICsxNjEsMTkgQEAgc3RhdGljIHZvaWQgdW5zaWdu
ZWRTaG9ydEF0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9j
YWw8djgKICAgICByZXR1cm47CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gQXR0
ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdBdHRyQXR0ckdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLkF0dHIuX2dldCIpOworICAgIElO
Q19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ0F0dHIuX2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4OjpOdW1i
ZXI6Ok5ldyhzdGF0aWNfY2FzdDxkb3VibGU+KGltcC0+YXR0cigpKSk7CisgICAgcmV0dXJuIHY4
SW50ZWdlcihpbXAtPmxvbmdBdHRyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGlj
IHZvaWQgQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3RhdGlj
IHZvaWQgbG9uZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
LSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLkF0dHIuX3NldCIpOworICAgIElOQ19TVEFUUygi
RE9NLlRlc3RPYmoubG9uZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgbG9uZyBsb25nIHYgPSB0b0ludDY0KHZh
bHVlKTsKLSAgICBpbXAtPnNldEF0dHIoV1RGOjpnZXRQdHIodikpOworICAgIGludCB2ID0gdG9J
bnQzMih2YWx1ZSk7CisgICAgaW1wLT5zZXRMb25nQXR0cih2KTsKICAgICByZXR1cm47CiB9CiAK
QEAgLTQ1MSwxMCArNDUxLDcgQEAgc3RhdGljIHZvaWQgYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25B
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG8KICAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIGludCB2
ID0gdG9JbnQzMih2YWx1ZSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5z
ZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkK
LSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1w
LT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ5
MywxMCArNDkwLDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25B
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9N
LlRlc3RPYmouc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZh
bHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAg
ICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFN0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNTgy
LDEzICs1NzYsMTAgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0
T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0
aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1
cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRX
aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpLCBlYyk7
Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZv
LkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgp
KTsKICAgICByZXR1cm47CkBAIC02MTEsMTEgKzYwMiw4IEBAIHN0YXRpYyB2b2lkIHdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJ
bnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElL
RUxZKGVjKSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7
CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhz
Y3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAgcmV0dXJuOwogfQogCkBAIC02Njcs
MTQgKzY1NSwxMSBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2OAogICAgIElOQ19TVEFUUygiRE9N
LlRlc3RPYmoud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2
YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
dmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUq
IHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAg
ICByZXR1cm47CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdl
dFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRl
eHQsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAg
c2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRl
LCBzY3JpcHRDb250ZXh0LCBXVEY6OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElz
b2xhdGUoKSk7CiAgICAgcmV0dXJuOwpAQCAtMTA2OCwzMCArMTA1MywzMCBAQCBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJu
IHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhD
RVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0so
aW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9O
X0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoq
LCBvYmpBcmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3Mo
QXJnLCBzdHJBcmcsIG9iakFyZyk7CisgICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0Fy
Zywgc3RyQXJnLCBvYmpBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCi1zdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdNZXRob2RDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouTWV0aG9kIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kIik7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAg
ICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2Qo
KSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5sb25nTWV0aG9kKCksIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBNZXRob2RXaXRoQXJn
c0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5NZXRob2RXaXRoQXJncyIpOwor
ICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ01ldGhvZFdpdGhBcmdzIik7CiAgICAgaWYg
KGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25n
LCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwog
ICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwg
c3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpI
YXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkg
OiAwKTsKLSAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1w
LT5NZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSkpOworICAgIHJldHVybiB2OElu
dGVnZXIoaW1wLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBh
cmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2Jq
TWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExMDgsMTAgKzEw
OTMsMTAgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDMpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQ
VElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0
T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVy
biB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3Mu
SG9sZGVyKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICByZXR1cm4gdG9WOChpbXAtPm9iak1l
dGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJn
cy5HZXRJc29sYXRlKCkpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhv
ZFdpdGhTZXF1ZW5jZUFyZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0x
MTMxLDggKzExMTYsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFJldHVy
bmluZ1NlcXVlbmNlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
YXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0
b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKLSAgICByZXR1cm4gdjhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEFy
ZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJn
LCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKTsKKyAgICByZXR1cm4gdjhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNl
KGxvbmdBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xNTM4LDggKzE1MjMsOCBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncwogICAgICAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKICAgICAg
ICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25n
IGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJn
KTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92
ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKIH0KIApAQCAtMTU2MCw4ICsxNTQ1LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBvdmVybG9hZGVkTWV0aG9kNENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAg
ICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25n
IGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAg
RVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5vdmVybG9hZGVk
TWV0aG9kKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzQ2
LDggKzE3MzEsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRp
bWVNZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJn
cy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0lu
dDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9O
X0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0
aG9kMShsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc1Nyw4
ICsxNzQyLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50aW1l
TWV0aG9kMkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2
NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
Ci0gICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihBcmcpOworICAgIEVYQ0VQVElPTl9C
TE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhv
ZDIobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NjgsOCAr
MTc1Myw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRN
ZXRob2QxQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdl
dElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwot
ICAgIGltcC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhv
ZDEobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NzksOCAr
MTc2NCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRN
ZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdl
dElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwot
ICAgIGltcC0+ZW5hYmxlZFBlckNvbnRleHRNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhv
ZDIobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MjUsOCAr
MTgxMCw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDFDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAg
ICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRl
KCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGEqLCAsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRvTmF0
aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MSgp
OworICAgIEVYQ0VQVElPTl9CTE9DSyhhKiwgdmFsdWUsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0
MSh2YWx1ZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MzYsOCArMTgy
MSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDJDYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGIqLCAsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MigpOwor
ICAgIEVYQ0VQVElPTl9CTE9DSyhiKiwgdmFsdWUsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0
aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0Mih2
YWx1ZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4NDcsOCArMTgzMiw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDRDYWxsYmFjayhjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKGQqLCAsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NCgpOworICAg
IEVYQ0VQVElPTl9CTE9DSyhkKiwgdmFsdWUsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NCh2YWx1
ZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4NTgsOCArMTg0Myw4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDVDYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
RVhDRVBUSU9OX0JMT0NLKGUqLCAsIFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NSgpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhlKiwgdmFsdWUsIFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NSh2YWx1ZSk7
CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE5MjQsOCArMTkwOSw4IEBAIHN0
YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2Jq
QXR0cnNbXSA9IHsKICAgICB7InNob3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0
dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlciwgMCAv
KiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQp
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBp
bnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRl
cm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAv
LyBBdHRyaWJ1dGUgJ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7
IkF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVy
bmFsOjpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICds
b25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsibG9uZ0F0dHIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUg
J2xvbmdMb25nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsibG9u
Z0xvbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJHZXR0ZXIsIFRl
c3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0
ZScgRXh0QXR0cjogJycpCkBAIC0yMDQwLDcgKzIwMjUsNyBAQCBzdGF0aWMgY29uc3QgVjhET01D
b25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdE9iakF0dHJzW10gPSB7CiAKIHN0
YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRDYWxsYmFjayBWOFRlc3RPYmpD
YWxsYmFja3NbXSA9IHsKICAgICB7InZvaWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dm9p
ZE1ldGhvZENhbGxiYWNrfSwKLSAgICB7Ik1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpNZXRo
b2RDYWxsYmFja30sCisgICAgeyJsb25nTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdN
ZXRob2RDYWxsYmFja30sCiAgICAgeyJvYmpNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b2Jq
TWV0aG9kQ2FsbGJhY2t9LAogICAgIHsibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFja30sCiAgICAgeyJzZXJp
YWxpemVkVmFsdWUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c2VyaWFsaXplZFZhbHVlQ2FsbGJhY2t9
LApAQCAtMjE4MCwxMSArMjE2NSwxMSBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaQogICAgIHY4
OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlID0gdjg6
OlNpZ25hdHVyZTo6TmV3KGRlc2MsIHZvaWRNZXRob2RXaXRoQXJnc0FyZ2MsIHZvaWRNZXRob2RX
aXRoQXJnc0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJ2b2lk
TWV0aG9kV2l0aEFyZ3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRl
cm5hbDo6dm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHZvaWRNZXRo
b2RXaXRoQXJnc1NpZ25hdHVyZSkpOwogCi0gICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnTWV0aG9k
V2l0aEFyZ3MnCi0gICAgY29uc3QgaW50IE1ldGhvZFdpdGhBcmdzQXJnYyA9IDM7Ci0gICAgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gTWV0aG9kV2l0aEFyZ3NBcmd2W01ldGhvZFdp
dGhBcmdzQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUo
KSB9OwotICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gTWV0aG9kV2l0aEFyZ3NTaWduYXR1
cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgTWV0aG9kV2l0aEFyZ3NBcmdjLCBNZXRob2RX
aXRoQXJnc0FyZ3YpOwotICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJNZXRo
b2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFs
OjpNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBNZXRob2RXaXRoQXJnc1Np
Z25hdHVyZSkpOworICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ2xvbmdNZXRob2RXaXRoQXJncycK
KyAgICBjb25zdCBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzQXJnYyA9IDM7CisgICAgdjg6OkhhbmRs
ZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQXJndltsb25nTWV0aG9k
V2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0
ZSgpIH07CisgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBsb25nTWV0aG9kV2l0aEFyZ3NT
aWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgbG9uZ01ldGhvZFdpdGhBcmdzQXJn
YywgbG9uZ01ldGhvZFdpdGhBcmdzQXJndik7CisgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woImxvbmdNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3
KFRlc3RPYmpWOEludGVybmFsOjpsb25nTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmlu
ZWQoKSwgbG9uZ01ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2ln
bmF0dXJlICdvYmpNZXRob2RXaXRoQXJncycKICAgICBjb25zdCBpbnQgb2JqTWV0aG9kV2l0aEFy
Z3NBcmdjID0gMzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164825</attachid>
            <date>2012-09-19 19:28:33 -0700</date>
            <delta_ts>2012-09-20 22:34:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120920112758.patch</filename>
            <type>text/plain</type>
            <size>178466</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI5ZmI5MDYxZjQ5Yzgy
OTRjYzU4ODM0NTZkMDE2YjYxN2Q1ZmQzZC4uM2ZjNjExNGZmYjUyZGNkODE4NzhmMDQ5YzM2ZDRj
YmE2ZjFjYThlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdG9ycyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOS0xOSAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBC
dXR0b25JbnB1dFR5cGUgb2YgPGlucHV0PiBlbGVtZW50IHNob3VsZCBoYXZlIGlubmVyRWxlbWVu
dCB0byBtYWtlIDxpbnB1dD4gQXV0aG9yU2hhZG93RE9NLXJlYWR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IDA1N2MwM2Q2YzZhMmI5MWY5M2Jk
ZWE1YzAyYjc0OTYxYmZiODlkNDEuLjYzNGI3ZGYwODAyZDA1ZWY5Yjk1NGRjNzA1YjQxMzA3MTMw
YWE5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBt
CkBAIC0yMSw0NTEgKzIxLDIzMDYgQEAKIAogcGFja2FnZSBJRExQYXJzZXI7CiAKK3VzZSBDbGFz
czo6U3RydWN0OworCiB1c2Ugc3RyaWN0OwotdXNlIHJlICdldmFsJzsKIAogdXNlIElQQzo6T3Bl
bjI7CiB1c2UgSURMU3RydWN0dXJlOwogdXNlIHByZXByb2Nlc3NvcjsKIAotdXNlIGNvbnN0YW50
IE1PREVfVU5ERUYgICAgPT4gMDsgIyBEZWZhdWx0IG1vZGUuCi0KLXVzZSBjb25zdGFudCBNT0RF
X01PRFVMRSAgPT4gMTA7ICMgJ21vZHVsZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1PREVfSU5U
RVJGQUNFICA9PiAxMTsgIyAnaW50ZXJmYWNlJyBzZWN0aW9uCi11c2UgY29uc3RhbnQgTU9ERV9F
WENFUFRJT04gID0+IDEyOyAjICdleGNlcHRpb24nIHNlY3Rpb24KK3VzZSBjb25zdGFudCBTdHJp
bmdUb2tlbiA9PiAwOwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwordXNlIGNvbnN0
YW50IEZsb2F0VG9rZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9rZW4gPT4gMzsK
K3VzZSBjb25zdGFudCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1wdHlUb2tlbiA9
PiA1OworCitzdHJ1Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyB0eXBlIG9mIHRv
a2VuCisgICAgdmFsdWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4KK30pOworCitzdWIgbmV3IHsK
KyAgICBteSAkY2xhc3MgPSBzaGlmdDsKKworICAgIG15ICRlbXB0eVRva2VuID0gVG9rZW4tPm5l
dygpOworICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRlbXB0eVRva2Vu
LT52YWx1ZSgiZW1wdHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBEb2N1bWVudENv
bnRlbnQgPT4gIiIsCisgICAgICAgIEVtcHR5VG9rZW4gPT4gJGVtcHR5VG9rZW4sCisgICAgICAg
IE5leHRUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgVG9rZW4gPT4gJGVtcHR5VG9rZW4s
CisgICAgICAgIExpbmUgPT4gIiIsCisgICAgICAgIExpbmVOdW1iZXIgPT4gMQorICAgIH07Cisg
ICAgcmV0dXJuIGJsZXNzICRzZWxmLCAkY2xhc3M7Cit9CiAKLSMgSGVscGVyIHZhcmlhYmxlcwot
bXkgQHRlbXBvcmFyeUNvbnRlbnQ7CitzdWIgYXNzZXJ0VG9rZW5WYWx1ZQoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkgJHZhbHVlID0gc2hp
ZnQ7CisgICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAgICBteSAkbXNnID0gIk5leHQgdG9rZW4gc2hv
dWxkIGJlICIgLiAkdmFsdWUgLiAiLCBidXQgIiAuICR0b2tlbi0+dmFsdWUoKSAuICIgYXQgIiAu
ICRzZWxmLT57TGluZX07CisgICAgaWYgKGRlZmluZWQgKCRsaW5lKSkgeworICAgICAgICAkbXNn
IC49ICIgSURMUGFyc2VyLnBtOiIgLiAkbGluZTsKKyAgICB9CisgICAgZGllICRtc2cgdW5sZXNz
ICR0b2tlbi0+dmFsdWUoKSBlcSAkdmFsdWU7Cit9CiAKLW15ICRwYXJzZU1vZGU7Ci1teSAkcHJl
c2VydmVkUGFyc2VNb2RlOworc3ViIGFzc2VydFRva2VuVHlwZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAg
ICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAu
ICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50
eXBlKCkgZXEgJHR5cGU7Cit9CiAKLW15ICRiZVF1aWV0OyAjIFNob3VsZCBub3QgZGlzcGxheSBh
bnl0aGluZyBvbiBTVERPVVQ/Ci1teSAkZG9jdW1lbnQ7ICMgV2lsbCBob2xkIHRoZSByZXN1bHRp
bmcgJ2lkbERvY3VtZW50JwotbXkgJHBhcmVudHNPbmx5OyAjIElmIDEsIHBhcnNlIG9ubHkgZW5v
dWdoIHRvIHBvcHVsYXRlIHBhcmVudHMgbGlzdAorc3ViIGFzc2VydFVuZXhwZWN0ZWRUb2tlbgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRva2VuID0gc2hpZnQ7CisgICAgbXkg
JGxpbmUgPSBzaGlmdDsKKyAgICBteSAkbXNnID0gIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tl
biAuICIgYXQgIiAuICRzZWxmLT57TGluZX07CisgICAgaWYgKGRlZmluZWQgKCRsaW5lKSkgewor
ICAgICAgICAkbXNnIC49ICIgSURMUGFyc2VyLnBtOiIgLiAkbGluZTsKKyAgICB9CisgICAgZGll
ICRtc2c7Cit9CiAKLXN1YiBJbml0aWFsaXplR2xvYmFsRGF0YQorc3ViIFBhcnNlCiB7Ci0gICAg
QHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRm
aWxlTmFtZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisgICAgbXkgJHByZXBy
b2Nlc3NvciA9IHNoaWZ0OworCisgICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICBteSBA
bGluZXMgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vz
c29yKTsKKyAgICAkc2VsZi0+e0xpbmV9ID0gJGxpbmVzWzBdOworICAgICRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9IGpvaW4oJyAnLCBAbGluZXMpOworCisgICAgJHNlbGYtPmdldFRva2VuKCk7
CisgICAgZXZhbCB7CisgICAgICAgIG15ICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9u
cygpOworICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywgQHskcmVzdWx0fSk7CisKKyAgICAgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJG5leHQsIEVtcHR5VG9rZW4pOworICAgIH07CisgICAgZGllICRAIC4gIiBpbiAkZmls
ZU5hbWUiIGlmICRAOworCisgICAgZGllICJObyBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIEBkZWZp
bml0aW9uczsKKworICAgIG15ICRkb2N1bWVudDsKKyAgICBpZiAoJCNkZWZpbml0aW9ucyA9PSAw
ICYmIHJlZigkZGVmaW5pdGlvbnNbMF0pIGVxICJpZGxEb2N1bWVudCIpIHsKKyAgICAgICAgJGRv
Y3VtZW50ID0gJGRlZmluaXRpb25zWzBdOworICAgIH0gZWxzZSB7CisgICAgICAgICRkb2N1bWVu
dCA9IG5ldyBpZGxEb2N1bWVudCgpOworICAgICAgICAkZG9jdW1lbnQtPm1vZHVsZSgiIik7Cisg
ICAgICAgIHB1c2goQHskZG9jdW1lbnQtPmNsYXNzZXN9LCBAZGVmaW5pdGlvbnMpOworICAgIH0K
IAotICAgICRwYXJzZU1vZGUgPSBNT0RFX1VOREVGOwotICAgICRwcmVzZXJ2ZWRQYXJzZU1vZGUg
PSBNT0RFX1VOREVGOworICAgICRkb2N1bWVudC0+ZmlsZU5hbWUoJGZpbGVOYW1lKTsKKyAgICBy
ZXR1cm4gJGRvY3VtZW50OworfQogCi0gICAgJGRvY3VtZW50ID0gMDsKLSAgICAkcGFyZW50c09u
bHkgPSAwOworc3ViIG5leHRUb2tlbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgcmV0
dXJuICRzZWxmLT57TmV4dFRva2VufTsKIH0KIAotIyBEZWZhdWx0IENvbnN0cnVjdG9yCi1zdWIg
bmV3CitzdWIgZ2V0VG9rZW4KIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgICRzZWxmLT57VG9rZW59
ID0gJHNlbGYtPntOZXh0VG9rZW59OworICAgICRzZWxmLT57TmV4dFRva2VufSA9ICRzZWxmLT5n
ZXRUb2tlbkludGVybmFsKCk7CisgICAgcmV0dXJuICRzZWxmLT57VG9rZW59OworfQogCi0gICAg
SW5pdGlhbGl6ZUdsb2JhbERhdGEoKTsKK215ICR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuID0gJ15b
XHRcblxyIF0qW1xuXHJdJzsKK215ICRmbG9hdFRva2VuUGF0dGVybiA9ICdeKC0/KChbMC05XStc
LlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsrLV0/WzAtOV0rKT98WzAtOV0rW0VlXVsrLV0/
WzAtOV0rKSknOworbXkgJGludGVnZXJUb2tlblBhdHRlcm4gPSAnXigtP1sxLTldWzAtOV0qfC0/
MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKSc7CitteSAkc3RyaW5nVG9rZW5QYXR0ZXJuID0g
J14oXCJbXlwiXSpcIiknOworbXkgJGlkZW50aWZpZXJUb2tlblBhdHRlcm4gPSAnXihbQS1aX2Et
el1bMC05QS1aX2Etel0qKSc7CitteSAkb3RoZXJUb2tlblBhdHRlcm4gPSAnXig6OnxcLlwuXC58
W15cdFxuXHIgMC05QS1aX2Etel0pJzsKIAotICAgICRiZVF1aWV0ID0gc2hpZnQ7CitzdWIgZ2V0
VG9rZW5JbnRlcm5hbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kd2hpdGVzcGFjZVRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvKCR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJu
KS8vOworICAgICAgICBteSAkc2tpcHBlZCA9ICQxOworICAgICAgICAkc2VsZi0+e0xpbmVOdW1i
ZXJ9Kysgd2hpbGUgKCRza2lwcGVkID1+IC9cbi9nKTsKKyAgICAgICAgaWYgKCRzZWxmLT57RG9j
dW1lbnRDb250ZW50fSA9fiAvXihbXlxuXHJdKykvKSB7CisgICAgICAgICAgICAkc2VsZi0+e0xp
bmV9ID0gJHNlbGYtPntMaW5lTnVtYmVyfSAuICI6IiAuICQxOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICJVbmtub3duIjsKKyAgICAgICAgfQorICAgIH0K
KyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy9eKFtcdFxuXHIgXSspLy87CisgICAg
aWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSBlcSAiIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPntFbXB0eVRva2VufTsKKyAgICB9CiAKLSAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0
KTsKLSAgICByZXR1cm4gJHJlZmVyZW5jZTsKKyAgICBteSAkdG9rZW4gPSBUb2tlbi0+bmV3KCk7
CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGZsb2F0VG9rZW5QYXR0ZXJu
LykgeworICAgICAgICAkdG9rZW4tPnR5cGUoRmxvYXRUb2tlbik7CisgICAgICAgICR0b2tlbi0+
dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kZmxvYXRU
b2tlblBhdHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRz
ZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiAvJGludGVnZXJUb2tlblBhdHRlcm4vKSB7CisgICAg
ICAgICR0b2tlbi0+dHlwZShJbnRlZ2VyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQx
KTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGludGVnZXJUb2tlblBh
dHRlcm4vLzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiAvJHN0cmluZ1Rva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRv
a2VuLT50eXBlKFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAg
ICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRzdHJpbmdUb2tlblBhdHRlcm4vLzsK
KyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRD
b250ZW50fSA9fiAvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+
dHlwZShJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAg
ICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGlkZW50aWZpZXJUb2tlblBhdHRlcm4v
LzsKKyAgICAgICAgcmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgaWYgKCRzZWxmLT57RG9jdW1l
bnRDb250ZW50fSA9fiAvJG90aGVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5
cGUoT3RoZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2Vs
Zi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kb3RoZXJUb2tlblBhdHRlcm4vLzsKKyAgICAgICAg
cmV0dXJuICR0b2tlbjsKKyAgICB9CisgICAgZGllICJGYWlsZWQgaW4gdG9rZW5pemluZyBhdCAi
IC4gJHNlbGYtPntMaW5lfTsKIH0KIAotIyBSZXR1cm5zIHRoZSBwYXJzZWQgJ2lkbERvY3VtZW50
Jwotc3ViIFBhcnNlCitteSAkbmV4dEF0dHJpYnV0ZU9sZF8xID0gJ14oYXR0cmlidXRlfGluaGVy
aXR8cmVhZG9ubHkpJCc7CitteSAkbmV4dFByaW1pdGl2ZVR5cGVfMSA9ICdeKGludHxsb25nfHNo
b3J0fHVuc2lnbmVkKSQnOworbXkgJG5leHRQcmltaXRpdmVUeXBlXzIgPSAnXihkb3VibGV8Zmxv
YXR8dW5yZXN0cmljdGVkKSQnOworbXkgJG5leHRTZXRHZXRSYWlzZXMyXzEgPSAnXig7fGdldHJh
aXNlc3xzZXRyYWlzZXMpJCc7CitteSAkbmV4dEFyZ3VtZW50TGlzdF8xID0gJ14oXCh8Qnl0ZVN0
cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnxp
bnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVk
fHVuc2lnbmVkKSQnOworbXkgJG5leHROb25BbnlUeXBlXzEgPSAnXihib29sZWFufGJ5dGV8ZG91
YmxlfGZsb2F0fGludHxsb25nfG9jdGV0fHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsK
K215ICRuZXh0SW50ZXJmYWNlTWVtYmVyT2xkXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmlu
Z3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8
ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9iamVjdHxvY3RldHxy
ZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0aWN8c3RyaW5naWZp
ZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dE9wdGlvbmFsSXRlcmF0
b3JJbnRlcmZhY2VPck9iamVjdF8xID0gJ14oO3w9KSQnOworbXkgJG5leHRBdHRyaWJ1dGVPck9w
ZXJhdGlvbk9ySXRlcmF0b3JfMSA9ICdeKHN0YXRpY3xzdHJpbmdpZmllcikkJzsKK215ICRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0
cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxn
ZXR0ZXJ8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzZXR0ZXJ8
c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dFVucmVzdHJpY3Rl
ZEZsb2F0VHlwZV8xID0gJ14oZG91YmxlfGZsb2F0KSQnOworbXkgJG5leHRFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QzXzEgPSAnXigsfFxdKSQnOworbXkgJG5leHRFeGNlcHRpb25GaWVsZF8xID0gJ14o
XCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9h
dHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2ln
bmVkKSQnOworbXkgJG5leHRUeXBlXzEgPSAnXihCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFu
eXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5j
ZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dFNwZWNpYWxzXzEgPSAn
XihjcmVhdG9yfGRlbGV0ZXJ8Z2V0dGVyfGxlZ2FjeWNhbGxlcnxzZXR0ZXIpJCc7CitteSAkbmV4
dERlZmluaXRpb25zXzEgPSAnXihjYWxsYmFja3xkaWN0aW9uYXJ5fGVudW18ZXhjZXB0aW9ufGlu
dGVyZmFjZXxwYXJ0aWFsfHR5cGVkZWYpJCc7CitteSAkbmV4dEV4Y2VwdGlvbk1lbWJlcnNfMSA9
ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxjb25z
dHxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNo
b3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0QXR0cmlidXRlUmVzdF8xID0g
J14oYXR0cmlidXRlfHJlYWRvbmx5KSQnOworbXkgJG5leHRTaW5nbGVUeXBlXzEgPSAnXihCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8
b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215
ICRuZXh0R2V0XzEgPSAnXig7fGdldHJhaXNlc3xnZXR0ZXJ8c2V0cmFpc2VzfHNldHRlcikkJzsK
K215ICRuZXh0QXJndW1lbnROYW1lXzEgPSAnXihhdHRyaWJ1dGV8Y2FsbGJhY2t8Y29uc3R8Y3Jl
YXRvcnxkZWxldGVyfGRpY3Rpb25hcnl8ZW51bXxleGNlcHRpb258Z2V0dGVyfGltcGxlbWVudHN8
aW5oZXJpdHxpbnRlcmZhY2V8bGVnYWN5Y2FsbGVyfHBhcnRpYWx8c2VyaWFsaXplcnxzZXR0ZXJ8
c3RhdGljfHN0cmluZ2lmaWVyfHR5cGVkZWZ8dW5yZXN0cmljdGVkKSQnOworbXkgJG5leHRDb25z
dFZhbHVlXzEgPSAnXihmYWxzZXx0cnVlKSQnOworbXkgJG5leHRDb25zdFZhbHVlXzIgPSAnXigt
fEluZmluaXR5fE5hTikkJzsKK215ICRuZXh0RGVmaW5pdGlvbl8xID0gJ14oY2FsbGJhY2t8aW50
ZXJmYWNlKSQnOworbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMSA9ICdeKFwofEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50
fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2
b2lkKSQnOworbXkgJG5leHRVbnNpZ25lZEludGVnZXJUeXBlXzEgPSAnXihpbnR8bG9uZ3xzaG9y
dCkkJzsKK215ICRuZXh0SW50ZXJmYWNlTWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01T
dHJpbmd8RGF0ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjb25zdHxjcmVhdG9yfGRlbGV0
ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmpl
Y3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGlj
fHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHREZWZh
dWx0VmFsdWVfMSA9ICdeKC18SW5maW5pdHl8TmFOfGZhbHNlfG51bGx8dHJ1ZSkkJzsKKworc3Vi
IHBhcnNlRGVmaW5pdGlvbnMKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGZp
bGVOYW1lID0gc2hpZnQ7Ci0gICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKLSAgICBteSAkcHJlcHJv
Y2Vzc29yID0gc2hpZnQ7Ci0gICAgJHBhcmVudHNPbmx5ID0gc2hpZnQ7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7Cisg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBteSAkZGVmaW5p
dGlvbjsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRl
TGlzdCgpOworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9u
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0aW9u
c18xLykgeworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9u
T2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9Cisg
ICAgICAgIGlmIChkZWZpbmVkICgkZGVmaW5pdGlvbikpIHsKKyAgICAgICAgICAgIHB1c2goQGRl
ZmluaXRpb25zLCAkZGVmaW5pdGlvbik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxA
ZGVmaW5pdGlvbnM7Cit9CiAKLSAgICBwcmludCAiIHwgKioqIFN0YXJ0aW5nIHRvIHBhcnNlICRm
aWxlTmFtZS4uLlxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgIG15IEBkb2N1bWVudENvbnRl
bnQgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29y
KTsKK3N1YiBwYXJzZURlZmluaXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIG15ICRkYXRhQXZhaWxhYmxl
ID0gMDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlUGFydGlhbCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUVudW0oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50
c1N0YXRlbWVudCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAg
IyBTaW1wbGUgSURMIFBhcnNlciAodG0pCi0gICAgZm9yZWFjaCAoQGRvY3VtZW50Q29udGVudCkg
ewotICAgICAgICBteSAkbmV3UGFyc2VNb2RlID0gJG9iamVjdC0+RGV0ZXJtaW5lUGFyc2VNb2Rl
KCRfKTsKK3N1YiBwYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBp
ZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAgICAgICAgICBpZiAoJGRhdGFB
dmFpbGFibGUgZXEgMCkgewotICAgICAgICAgICAgICAgICRkYXRhQXZhaWxhYmxlID0gMTsgIyBT
dGFydCBub2RlIGJ1aWxkaW5nLi4uCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImNhbGxiYWNrIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CiAKLSAgICAgICAgIyBVcGRhdGUgZGV0ZWN0ZWQgZGF0YSBzdHJlYW0gbW9k
ZS4uLgotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSB7Ci0gICAgICAg
ICAgICAkcGFyc2VNb2RlID0gJG5ld1BhcnNlTW9kZTsKLSAgICAgICAgfQorc3ViIHBhcnNlQ2Fs
bGJhY2tSZXN0T3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBwdXNoKEB0ZW1wb3JhcnlD
b250ZW50LCAkXyk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQorICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlQ2FsbGJhY2tSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CiAKLSAgICAjIENoZWNrIGlmIHRoZXJlIGlzIGFueXRoaW5nIHJlbWFpbmluZyB0byBwYXJzZS4u
LgotICAgIGlmICgoJHBhcnNlTW9kZSBuZSBNT0RFX1VOREVGKSBhbmQgKCQjdGVtcG9yYXJ5Q29u
dGVudCA+IDApKSB7Ci0gICAgICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7CitzdWIgcGFy
c2VJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBteSAk
ZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7CisgICAgICAgIG15
ICRpbnRlcmZhY2VOYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkaW50ZXJmYWNlTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwor
ICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5hbWVUb2tlbi0+dmFsdWUoKSk7Cisg
ICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRh
bmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJ7IiwgX19MSU5FX18pOworICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVycyA9ICRzZWxm
LT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAg
IGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAg
YXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgcHJp
bnQgIiB8ICoqKiBGaW5pc2hlZCBwYXJzaW5nIVxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gCi0gICAg
JGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOworc3ViIHBhcnNlUGFydGlhbAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OwogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxEZWZpbml0aW9uKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBQYXJzZU1vZHVsZQorc3Vi
IHBhcnNlUGFydGlhbERlZmluaXRpb24KIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxEaWN0aW9uYXJ5KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVBhcnRpYWxJbnRlcmZhY2UK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRv
a2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAot
ICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIG1vZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVp
ZXQ7CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSBAaW50ZXJmYWNlTWVtYmVycyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIG15ICRpbnRlcmZhY2VN
ZW1iZXI7CisKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmli
dXRlTGlzdCgpOworICAgICAgICAgICAgJGludGVyZmFjZU1lbWJlciA9ICRzZWxmLT5wYXJzZUlu
dGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0SW50ZXJmYWNlTWVtYmVyc18xLykgeworICAgICAgICAgICAgJGludGVyZmFjZU1lbWJlciA9
ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlck9sZCgpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZCAkaW50ZXJmYWNl
TWVtYmVyKSB7CisgICAgICAgICAgICBwdXNoKEBpbnRlcmZhY2VNZW1iZXJzLCAkaW50ZXJmYWNl
TWVtYmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBpbnRlcmZhY2VNZW1iZXJz
OworfQogCi0gICAgbXkgJGRhdGEgPSBqb2luKCIiLCBAdGVtcG9yYXJ5Q29udGVudCk7Ci0gICAg
JGRhdGEgPX4gLyRJRExTdHJ1Y3R1cmU6Om1vZHVsZVNlbGVjdG9yLzsKK3N1YiBwYXJzZUludGVy
ZmFjZU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgbXkgJG1vZHVsZU5hbWUgPSAoZGVmaW5lZCgkMSkg
PyAkMSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICRk
YXRhTm9kZS0+bW9kdWxlKCRtb2R1bGVOYW1lKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQogCi0gICAgcHJpbnQgIiAgfC0tLS0+IE1vZHVsZTsgTkFNRSBc
IiRtb2R1bGVOYW1lXCJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlRGlj
dGlvbmFyeQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnkiLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsi
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgZHVtcEV4
dGVuZGVkQXR0cmlidXRlcworc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcnMKIHsKLSAgICBteSAk
cGFkU3RyID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJzID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KCk7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVyKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8x
LykgeworICAgICAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCgpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KK30KIAot
ICAgIGlmICghJXskYXR0cnN9KSB7Ci0gICAgICAgIHJldHVybiAiIjsKK3N1YiBwYXJzZURpY3Rp
b25hcnlNZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VU
eXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCks
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZURlZmF1bHQoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5F
X18pOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIG15IEB0ZW1wOwotICAg
IHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1ZSkgPSBlYWNoKCV7JGF0dHJzfSkpIHsKLSAgICAg
ICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1ZSIpOworc3ViIHBhcnNlUGFydGlhbERpY3Rpb25h
cnkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRU
b2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJz
ZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KIAotICAgIHJldHVybiAkcGFkU3RyIC4gIlsiIC4gam9pbigiLCAi
LCBAdGVtcCkgLiAiXSI7CitzdWIgcGFyc2VEZWZhdWx0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiPSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZURl
ZmF1bHRWYWx1ZSgpOworICAgIH0KIH0KIAotc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzCitz
dWIgcGFyc2VEZWZhdWx0VmFsdWUKIHsKLSAgICBteSAkc3RyID0gc2hpZnQ7Ci0gICAgJHN0ciA9
fiBzL1xbXHMqKC4qKVxzKlxdLyQxL2c7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9h
dFRva2VuIHx8ICRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dERlZmF1bHRWYWx1ZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
Q29uc3RWYWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tl
bikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgIG15ICVhdHRycyA9ICgpOworc3ViIHBhcnNlRXhjZXB0aW9uCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNs
YXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZXhjZXB0aW9uIiwgX19MSU5FX18pOworICAgICAgICBteSAkZXhjZXB0aW9uTmFtZVRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGV4
Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5u
YW1lKCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlz
RXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2Vs
Zi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlv
bk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VFeGNlcHRpb25NZW1iZXJzKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19M
SU5FX18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVt
YmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQYXJzZSBu
YW1lCi0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAg
ZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgfQot
ICAgICAgICBteSAkbmFtZSA9ICQxOwotICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8v
OwotCi0gICAgICAgIGlmICgkc3RyID1+IC9eXHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4g
cy9eXHMqPS8vOwotICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikg
ewotICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywn
PwotICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAg
aWYgKCRzdHIgPX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25z
dHJ1Y3Rvck5hbWUgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3
XGRdKykvLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBk
aWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAg
ICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAg
ICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9
fiAvXihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVy
ZSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxz
KiQvJDEvOwotICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3Ry
dWN0b3JOYW1lIiA9PiAkY29uc3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJl
fTsKLSAgICAgICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgi
SW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNv
bnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAk
c3RyID1+IHMvXlxzKiw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMg
UGFyc2UgJz0nIHZhbHVlICcsJz8KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihb
XixdKiksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAg
ICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAg
ICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0
dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2Ug
JygnIGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwot
ICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAg
ICAkYXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBz
L14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8v
LzsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4
dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNpZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwot
ICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAg
ICAkYXR0cnN7JG5hbWV9ID0gIiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICRhdHRyc3skbmFtZX0gPSAiVkFMVUVfSVNfTUlTU0lORyI7CitzdWIgcGFyc2VFeGNlcHRp
b25NZW1iZXJzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbWVtYmVycyA9ICgp
OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25NZW1iZXJzXzEvKSB7CisgICAgICAgICAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0QWxsb3dFbXB0eSgpOworICAgICAgICAgICAgI215ICRtZW1iZXIgPSAkc2VsZi0+cGFyc2VF
eGNlcHRpb25NZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICBteSAk
bWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICAgICAgaWYgKGRlZmluZWQgKCRtZW1iZXIpKSB7CisgICAgICAgICAgICAg
ICAgcHVzaChAbWVtYmVycywgJG1lbWJlcik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAk
c3RyID1+IHMvXlxzKiw/Ly87CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBkaWUoIklu
dmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOworICAgICAgICAgICAgbGFzdDsK
ICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gXEBtZW1iZXJzOworfQorCitzdWIgcGFyc2VJ
bmhlcml0YW5jZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHBhcmVudCA9ICgp
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICI6IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjoiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgcHVzaChAcGFyZW50LCAkdG9rZW4tPnZhbHVlKCkpOworICAg
ICAgICAjIE11bHRpcGxlIGluaGVyaXRhbmNlPworICAgICAgICBwdXNoKEBwYXJlbnQsIEB7JHNl
bGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBwYXJlbnQ7Cit9
CisKK3N1YiBwYXJzZUVudW0KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUVudW1WYWx1ZUxp
c3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgcmV0dXJuIFwlYXR0cnM7CitzdWIgcGFyc2VFbnVtVmFsdWVMaXN0Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBTdHJpbmdUb2tlbik7CisgICAgICAgICRz
ZWxmLT5wYXJzZUVudW1WYWx1ZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAK
LXN1YiBwYXJzZVBhcmFtZXRlcnMKK3N1YiBwYXJzZUVudW1WYWx1ZXMKIHsKLSAgICBteSAkbmV3
RGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkbWV0aG9kU2lnbmF0dXJlID0gc2hpZnQ7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAg
ICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVzKCk7CisgICAgfQorfQogCi0gICAgIyBTcGxpdCBhcmd1
bWVudHMgYXQgY29tbWFzIGJ1dCBvbmx5IGlmIHRoZSBjb21tYQotICAgICMgaXMgbm90IHdpdGhp
biBhdHRyaWJ1dGUgYnJhY2tldHMsIGV4cHJlc3NlZCBoZXJlCi0gICAgIyBhcyBiZWluZyBmb2xs
b3dlZCBieSBhICddJyB3aXRob3V0IGEgcHJlY2VkaW5nICdbJy4KLSAgICAjIE5vdGUgdGhhdCB0
aGlzIGFzc3VtZXMgdGhhdCBhdHRyaWJ1dGVzIGRvbid0IG5lc3QuCi0gICAgbXkgQHBhcmFtcyA9
IHNwbGl0KC8sKD8hW15bXSpcXSkvLCAkbWV0aG9kU2lnbmF0dXJlKTsKLSAgICBmb3JlYWNoIChA
cGFyYW1zKSB7Ci0gICAgICAgIG15ICRsaW5lID0gJF87CitzdWIgcGFyc2VDYWxsYmFja1Jlc3QK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+cGFyc2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJl
OjppbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3Rvci87Ci0gICAgICAgIG15ICRwYXJhbURpcmVjdGlv
biA9ICQxOwotICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5lZCgk
MikgPyAkMiA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAg
bXkgJHBhcmFtVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGVTdWZmaXggPSBkZWZp
bmVkKCQ0KSA/ICQ0IDogIiI7Ci0gICAgICAgIG15ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgkNSkg
PyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworc3ViIHBh
cnNlVHlwZWRlZgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInR5cGVkZWYiLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAk
c2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYt
PmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgbXkgJGlzTnVsbGFibGUgPSAkcGFyYW1UeXBlU3Vm
Zml4IGVxICI/IjsKK3N1YiBwYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxm
LT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImltcGxlbWVudHMiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAg
ICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9tU2lnbmF0dXJlKCk7Ci0gICAgICAgICRwYXJh
bURhdGFOb2RlLT5kaXJlY3Rpb24oJHBhcmFtRGlyZWN0aW9uKTsKLSAgICAgICAgJHBhcmFtRGF0
YU5vZGUtPm5hbWUoJHBhcmFtTmFtZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCRw
YXJhbVR5cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcykpOwotICAgICAg
ICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkaXNOdWxsYWJsZSk7CitzdWIgcGFyc2VDb25z
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0g
bmV3IGRvbUNvbnN0YW50KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiY29uc3QiLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5cGUoKSk7CisgICAgICAgIG15ICRjb25zdE5hbWVUb2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRj
b25zdE5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5u
YW1lKCRjb25zdE5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIsIF9fTElORV9fKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT52YWx1ZSgkc2VsZi0+cGFyc2VDb25zdFZhbHVlKCkpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAg
ICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzOwotICAgICAgICBwdXNo
KEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2RlKTsKK3N1YiBwYXJzZUNvbnN0VmFsdWUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDb25zdFZhbHVlXzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJu
dWxsIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRDb25zdFZhbHVlXzIvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VGbG9hdExpdGVyYWwoKTsKKyAgICB9CisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmls
aXR5CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigp
LT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcHJpbnQgIiAgfCAgIHw+ICBQYXJh
bTsgVFlQRSBcIiRwYXJhbVR5cGVcIiBOQU1FIFwiJHBhcmFtTmFtZVwiIiAuIAotICAgICAgICAg
ICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRwYXJhbURh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7ICAgICAg
ICAgIAorc3ViIHBhcnNlQm9vbGVhbkxpdGVyYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAidHJ1ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ0cnVlIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInRydWUiOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZhbHNlIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImZhbHNlIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gImZhbHNlIjsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VJbnRlcmZh
Y2UKK3N1YiBwYXJzZUZsb2F0TGl0ZXJhbAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAg
ICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkc2VjdGlvbk5hbWUgPSBzaGlmdDsKLQot
ICAgIG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotCi0gICAgIyBMb29r
IGZvciBlbmQtb2YtaW50ZXJmYWNlIG1hcmsKLSAgICAkZGF0YSA9fiAvfTsvZzsKLSAgICAkZGF0
YSA9IHN1YnN0cigkZGF0YSwgaW5kZXgoJGRhdGEsICRzZWN0aW9uTmFtZSksIHBvcygkZGF0YSkg
LSBsZW5ndGgoJGRhdGEpKTsKLQotICAgICRkYXRhID1+IHMvW1xuXHJdLyAvZzsKLQotICAgICMg
QmVnaW5uaW5nIG9mIHRoZSByZWdleHAgcGFyc2luZyBtYWdpYwotICAgIGlmICgkc2VjdGlvbk5h
bWUgZXEgImludGVyZmFjZSIgfHwgJHNlY3Rpb25OYW1lIGVxICJleGNlcHRpb24iKSB7Ci0gICAg
ICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNlIGludGVyZmFjZS4uLlxuIiB1bmxlc3MgJGJl
UXVpZXQ7Ci0KLSAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAiIjsKLSAgICAgICAgbXkgJGlu
dGVyZmFjZURhdGEgPSAiIjsKLQotICAgICAgICAjIE1hdGNoIGlkZW50aWZpZXIgb2YgdGhlIGlu
dGVyZmFjZSwgYW5kIGVuY2xvc2VkIGRhdGEuLi4KLSAgICAgICAgJGRhdGEgPX4gLyRJRExTdHJ1
Y3R1cmU6OmludGVyZmFjZVNlbGVjdG9yLzsKLQotICAgICAgICBteSAkaXNFeGNlcHRpb24gPSAo
ZGVmaW5lZCgkMSkgPyAoJDEgZXEgJ2V4Y2VwdGlvbicpIDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VFeHRlbmRlZEF0dHJp
YnV0ZXMgPSAoZGVmaW5lZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJGludGVyZmFjZUV4dGVuZGVk
QXR0cmlidXRlcyk7Ci0gICAgICAgICRpbnRlcmZhY2VOYW1lID0gKGRlZmluZWQoJDMpID8gJDMg
OiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkg
JGludGVyZmFjZUJhc2UgPSAoZGVmaW5lZCgkNCkgPyAkNCA6ICIiKTsKLSAgICAgICAgJGludGVy
ZmFjZURhdGEgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJj
ZTpcbiRkYXRhXG4pIikpOwotCi0gICAgICAgICMgRmlsbCBpbiBrbm93biBwYXJ0cyBvZiB0aGUg
ZG9tQ2xhc3MgZGF0YXN0cnVjdHVyZSBub3cuLi4KLSAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2Vw
dGlvbigkaXNFeGNlcHRpb24pOwotICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJGludGVyZmFjZU5h
bWUpOwotICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZXMoJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIGlmIChkZWZpbmVk
ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSkgewotICAgICAgICAgICAgbXkg
JG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ29uc3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKLSAgICAgICAgICAgICRk
YXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgfSBlbHNpZiAoZGVm
aW5lZCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewotICAgICAg
ICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0gICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoIk5hbWVkQ29uc3RydWN0b3IiKTsKLSAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVu
ZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2Rl
LCAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifS0+eyJTaWduYXR1cmUi
fSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3Ii
fSA9ICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9eyJDb25zdHJ1Y3Rv
ck5hbWUifTsKLSAgICAgICAgICAgICRkYXRhTm9kZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2Rl
KTsKLSAgICAgICAgfQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVzKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICItIiwgX19M
SU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIkluZmluaXR5IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIi1JbmZpbml0eSI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiSW5maW5pdHkiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiSW5maW5pdHkiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAiSW5maW5pdHkiOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgIk5hTiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJOYU4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiTmFOIjsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAg
ICAjIEluaGVyaXRhbmNlIGRldGVjdGlvbgotICAgICAgICBteSBAaW50ZXJmYWNlUGFyZW50cyA9
IHNwbGl0KC8sLywgJGludGVyZmFjZUJhc2UpOwotICAgICAgICBmb3JlYWNoKEBpbnRlcmZhY2VQ
YXJlbnRzKSB7Ci0gICAgICAgICAgICBteSAkbGluZSA9ICRfOwotICAgICAgICAgICAgJGxpbmUg
PX4gcy9ccyovL2c7CitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKIAotICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5wYXJlbnRzOwot
ICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbGluZSk7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXplcigkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0
ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xLykgeworICAgICAgICBteSAkcXVhbGlmaWVyID0gJHNl
bGYtPnBhcnNlUXVhbGlmaWVyKCk7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9ICRzZWxmLT5w
YXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICAgICAgaWYgKGRlZmluZWQoJG5ld0RhdGFOb2RlKSAmJiAkcXVhbGlmaWVyIGVxICJzdGF0aWMi
KSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKDEpOwogICAgICAgICB9Cisg
ICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUF0dHJpYnV0ZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0
dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8yLykgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VTZXJpYWxpemVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgcmV0dXJu
IGlmICRwYXJlbnRzT25seTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2VyaWFsaXplciIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXJSZXN0KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgJGludGVyZmFjZURhdGEgPX4g
cy9bXG5ccl0vIC9nOwotICAgICAgICBteSBAaW50ZXJmYWNlTWV0aG9kcyA9IHNwbGl0KC87Lywg
JGludGVyZmFjZURhdGEpOworc3ViIHBhcnNlU2VyaWFsaXplclJlc3QKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAg
ICAgICBmb3JlYWNoIG15ICRsaW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAg
bmV4dCBpZiAkbGluZSA9fiAvXlxzKiQvOwotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0
dHJpYnV0ZVxXLykgewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpp
bnRlcmZhY2VBdHRyaWJ1dGVTZWxlY3Rvci87CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cit9CiAKLSAg
ICAgICAgICAgICAgICBteSAkaXNTdGF0aWMgPSBkZWZpbmVkKCQxKTsKLSAgICAgICAgICAgICAg
ICBteSAkYXR0cmlidXRlVHlwZSA9IChkZWZpbmVkKCQyKSA/ICQyIDogZGllKCJQYXJzaW5nIGVy
cm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQzKSA/ICQzIDogIiAiKTsgY2hvcCgkYXR0
cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJu
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgInsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
U2VyaWFsaXphdGlvblBhdHRlcm5NYXAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJbIiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QoKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigp
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
ICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDog
ZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgCi0gICAgICAgICAgICAgICAgKCcn
ID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNoaW5nCitz
dWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5oZXJpdCIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbmhlcml0IiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOworICAgIH0KK30KIAotICAg
ICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpnZXR0ZXJSYWlzZXNTZWxlY3Rv
ci87Ci0gICAgICAgICAgICAgICAgbXkgJGdldHRlckV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/
ICQxIDogIiIpOworc3ViIHBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm5MaXN0Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCk7CisgICAg
fQorfQogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnNldHRlclJh
aXNlc1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyRXhjZXB0aW9uID0gKGRl
ZmluZWQoJDEpID8gJDEgOiAiIik7CitzdWIgcGFyc2VJZGVudGlmaWVycworeworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgQGlkZW50cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAg
ICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9fKTsKKyAgICAgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
dG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICAgICBwdXNoKEBpZGVudHMsICR0b2tl
bi0+dmFsdWUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiBcQGlkZW50czsKK30KIAotICAgICAgICAgICAgICAgIG15
ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnR5cGUoJGF0dHJpYnV0ZVR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+aXNTdGF0aWMoJGlzU3RhdGljKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworc3ViIHBhcnNlUXVhbGlmaWVyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5uYW1lKCRhdHRyaWJ1dGVEYXRhTmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJGF0dHJpYnV0ZURhdGFUeXBlKTsKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVzKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpKTsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0
YXRpYyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJzdGF0aWMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAic3RhdGljIjsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzdHJpbmdpZmllciIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzdHJpbmdpZmllciI7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAot
ICAgICAgICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+YXR0cmlidXRlczsKLSAg
ICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VB
dHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIHByaW50
ICIgIHwgIHw+ICBBdHRyaWJ1dGU7IFNUQVRJQz8gXCIkaXNTdGF0aWNcIiBUWVBFIFwiJGF0dHJp
YnV0ZVR5cGVcIiBEQVRBIE5BTUUgXCIkYXR0cmlidXRlRGF0YU5hbWVcIiBEQVRBIFRZUEUgXCIk
YXR0cmlidXRlRGF0YVR5cGVcIiBHRVQgRVhDRVBUSU9OPyBcIiRnZXR0ZXJFeGNlcHRpb25cIiBT
RVQgRVhDRVBUSU9OPyBcIiRzZXR0ZXJFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAgICAgICAg
ICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgICAgIiwgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVR
dWlldDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xLykgeworICAg
ICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAg
bXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAg
ICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICAk
Z2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgICRzZXR0ZXJFeGNl
cHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPmdldHRl
ckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkZ2V0dGVyRXhjZXB0aW9uKTsKLSAgICAgICAgICAg
ICAgICBAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRzZXR0
ZXJFeGNlcHRpb24pOwotICAgICAgICAgICAgfSBlbHNpZiAoJGxpbmUgIX4gL15ccyooJElETFN0
cnVjdHVyZTo6ZXh0ZW5kZWRBdHRyaWJ1dGVTeW50YXggKT9jb25zdFxzKy8pIHsKLSAgICAgICAg
ICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlTWV0aG9kU2VsZWN0b3Iv
IG9yIGRpZSAiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIjsKK3N1YiBwYXJzZUF0
dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgbXkgJG1ldGhvZEV4dGVuZGVkQXR0
cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAiKTsgY2hvcCgkbWV0aG9kRXh0ZW5kZWRB
dHRyaWJ1dGVzKTsKLSAgICAgICAgICAgICAgICBteSAkaXNTdGF0aWMgPSBkZWZpbmVkKCQyKTsK
LSAgICAgICAgICAgICAgICBteSAkbWV0aG9kVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGll
KCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAg
bXkgJG1ldGhvZE5hbWUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFc
blNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RTaWduYXR1
cmUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIikpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPbGRfMS8pIHsKKyAgICAgICAgJHNlbGYt
PnBhcnNlSW5oZXJpdCgpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVz
dCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAg
ICAgKCcnID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNo
aW5nCitzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmli
dXRlUmVzdF8xLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRl
KCk7CisgICAgICAgIGlmICgkc2VsZi0+cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAg
fQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0
dHJpYnV0ZSIsIF9fTElORV9fKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3
IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUo
JHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVl
KCkpOworICAgICAgICBteSAkZ2V0UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlm
IChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdl
dHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAg
IHB1c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0
cmFpc2VzIn19KTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAg
ICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAg
ICAgICAgbXkgJG1ldGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOworc3Vi
IHBhcnNlSW5oZXJpdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImlu
aGVyaXQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4g
MDsKK30KIAotICAgICAgICAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlv
bigpOworc3ViIHBhcnNlUmVhZE9ubHkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
cmVhZG9ubHkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAicmVhZG9ubHkiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KyAgICByZXR1cm4gMDsKK30KIAotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0
aWMoJGlzU3RhdGljKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShu
ZXcgZG9tU2lnbmF0dXJlKCkpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5uYW1lKCRtZXRob2ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+dHlwZSgkbWV0aG9kVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygk
bWV0aG9kRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9y
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8LSAgTWV0aG9kOyBTVEFU
SUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRtZXRob2RUeXBlXCIgTkFNRSBcIiRtZXRob2ROYW1l
XCIgRVhDRVBUSU9OPyBcIiRtZXRob2RFeGNlcHRpb25cIiIgLgotICAgICAgICAgICAgICAgICAg
ICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgIiwgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVRdWll
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZVNwZWNpYWxPcGVyYXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVyblR5
cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRz
ZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRhdGFO
b2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICRtZXRob2RF
eGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5vZGUtPnJh
aXNlc0V4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkbWV0aG9kRXhjZXB0aW9uKTsKK3N1YiBwYXJz
ZVNwZWNpYWxPcGVyYXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTcGVjaWFsc18xLykgewor
ICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFsKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNp
YWxzKCk7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgp
OworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgewor
ICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAg
ICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRtZXRob2RTaWduYXR1cmUp
Oworc3ViIHBhcnNlU3BlY2lhbHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAgICAg
ICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5mdW5jdGlvbnM7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Y29uc3RhbnRTZWxl
Y3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRl
ZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyk7Ci0g
ICAgICAgICAgICAgICAgbXkgJGNvbnN0VHlwZSA9IChkZWZpbmVkKCQyKSA/ICQyIDogZGllKCJQ
YXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkg
JGNvbnN0TmFtZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291
cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0VmFsdWUgPSAoZGVm
aW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikp
OworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAg
ICAgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFtdOworfQogCi0gICAg
ICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUNvbnN0YW50KCk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5uYW1lKCRjb25zdE5hbWUpOwotICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+dHlwZSgkY29uc3RUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnZhbHVlKCRjb25zdFZhbHVlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkY29uc3RFeHRlbmRl
ZEF0dHJpYnV0ZXMpKTsKK3N1YiBwYXJzZVNwZWNpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJnZXR0
ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXR0ZXIiLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybiAic2V0dGVyIjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJjcmVhdG9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImNyZWF0b3IiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
biAiY3JlYXRvciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGVsZXRlciIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJk
ZWxldGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImRlbGV0ZXIiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImxlZ2FjeWNhbGxlciIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsZWdhY3ljYWxsZXIiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAibGVnYWN5Y2FsbGVyIjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0g
ICAgICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5jb25zdGFudHM7Ci0gICAg
ICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOworc3ViIHBhcnNlT3Bl
cmF0aW9uT3JJdGVyYXRvclJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIHByaW50ICIg
IHwgICB8PiAgQ29uc3RhbnQ7IFRZUEUgXCIkY29uc3RUeXBlXCIgTkFNRSBcIiRjb25zdE5hbWVc
IiBWQUxVRSBcIiRjb25zdFZhbHVlXCJcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgICAgICAgICAg
fQotICAgICAgICB9CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJpdGVyYXRvciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZUl0ZXJhdG9yUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICIo
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIHByaW50ICIgIHwtLS0tPiBJ
bnRlcmZhY2U7IE5BTUUgXCIkaW50ZXJmYWNlTmFtZVwiIiAuCi0gICAgICAgICAgICBkdW1wRXh0
ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAgICAgIiwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMpIC4gIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFy
c2VJdGVyYXRvclJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaXRlcmF0b3IiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaXRlcmF0b3IiLCBfX0xJ
TkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9i
amVjdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKIH0KIAotIyBJbnRlcm5hbCBoZWxwZXIKLXN1YiBEZXRlcm1pbmVQYXJzZU1v
ZGUKK3N1YiBwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVjdAogewotICAgIG15
ICRvYmplY3QgPSBzaGlmdDsgIAotICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICBt
eSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUvKSB7Ci0gICAgICAg
ICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2ludGVyZmFjZS8pIHsK
LSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lmICgkXyA9fiAvZXhj
ZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRP
cHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CiAgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0IikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9iamVjdCIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU9wdGlv
bmFsSXRlcmF0b3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHJldHVybiAkbW9kZTsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
Ij0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICB9CiB9CiAKLSMgSW50ZXJuYWwgaGVs
cGVyCi1zdWIgUHJvY2Vzc1NlY3Rpb24KK3N1YiBwYXJzZU9wZXJhdGlvblJlc3QKIHsKLSAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7Ci0gIAotICAgIGlmICgkcGFyc2VNb2RlIGVxIE1PREVfTU9EVUxF
KSB7Ci0gICAgICAgIGRpZSAoIlR3byBtb2R1bGVzIGluIG9uZSBmaWxlISBGYXRhbCBlcnJvciFc
biIpIGlmICgkZG9jdW1lbnQgbmUgMCk7Ci0gICAgICAgICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1
bWVudCgpOwotICAgICAgICAkb2JqZWN0LT5QYXJzZU1vZHVsZSgkZG9jdW1lbnQpOwotICAgIH0g
ZWxzaWYgKCRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZBQ0UgfHwgJHBhcnNlTW9kZSBlcSBNT0RF
X0VYQ0VQVElPTikgewotICAgICAgICBteSAkbm9kZSA9IG5ldyBkb21DbGFzcygpOwotICAgICAg
ICBteSAkc2VjdGlvbk5hbWUgPSAkcGFyc2VNb2RlIGVxIE1PREVfSU5URVJGQUNFID8gImludGVy
ZmFjZSIgOiAiZXhjZXB0aW9uIjsKLSAgICAgICAgJG9iamVjdC0+UGFyc2VJbnRlcmZhY2UoJG5v
ZGUsICRzZWN0aW9uTmFtZSk7Ci0gICAgCi0gICAgICAgIGRpZSAoIk5vIG1vZHVsZSBzcGVjaWZp
ZWQhIEZhdGFsIEVycm9yIVxuIikgaWYgKCRkb2N1bWVudCBlcSAwKTsKLSAgICAgICAgbXkgJGFy
cmF5UmVmID0gJGRvY3VtZW50LT5jbGFzc2VzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRu
b2RlKTsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAi
KCIpIHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAg
IG15ICRuYW1lID0gJHNlbGYtPnBhcnNlT3B0aW9uYWxJZGVudGlmaWVyKCk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCRuYW1lKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIiwgJG5hbWUsIF9fTElORV9fKTsKKyAg
ICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JHNlbGYtPnBhcnNlQXJn
dW1lbnRMaXN0KCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5y
YWlzZXNFeGNlcHRpb25zfSwgQHskc2VsZi0+cGFyc2VSYWlzZXMoKX0pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CiAgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KIAotICAgIEB0ZW1wb3JhcnlDb250ZW50ID0gIiI7CitzdWIgcGFyc2VPcHRpb25hbElk
ZW50aWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
ICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuICIiOwogfQogCi0xOworc3ViIHBh
cnNlQXJndW1lbnRMaXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAYXJndW1l
bnRzID0gKCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0QXJndW1lbnRMaXN0XzEvKSB7CisgICAgICAgIHB1c2goQGFyZ3VtZW50cywgJHNlbGYtPnBh
cnNlQXJndW1lbnQoKSk7CisgICAgICAgIHB1c2goQGFyZ3VtZW50cywgQHskc2VsZi0+cGFyc2VB
cmd1bWVudHMoKX0pOworICAgIH0KKyAgICByZXR1cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1YiBw
YXJzZUFyZ3VtZW50cworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGFyZ3VtZW50
cyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElO
RV9fKTsKKyAgICAgICAgICAgIHB1c2goQGFyZ3VtZW50cywgJHNlbGYtPnBhcnNlQXJndW1lbnQo
KSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBcQGFyZ3VtZW50czsKK30KKworc3ViIHBhcnNlQXJndW1lbnQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAgICAgICAgbXkgJGluID0gJHNlbGYtPnBh
cnNlSW4oKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJz
ZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJGFyZ3VtZW50
ID0gJHNlbGYtPnBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgICAgICRhcmd1bWVudC0+ZGlyZWN0aW9uKCRzZWxmLT5wYXJzZUluKCkp
OworICAgICAgICByZXR1cm4gJGFyZ3VtZW50OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU9w
dGlvbmFsT3JSZXF1aXJlZEFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkcGFyYW1EYXRhTm9k
ZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKKyAgICAkcGFyYW1EYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvcHRpb25hbCIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvcHRpb25h
bCIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Cisg
ICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29uc2lkZXIgbGFzdCAiPyIuCisgICAgICAg
IGlmICgkdHlwZSA9fiAvXD8kLykgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVs
bGFibGUoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+
aXNOdWxsYWJsZSgwKTsKKyAgICAgICAgfQorICAgICAgICAjIFJlbW92ZSBhbGwgIj8iIGlmIGV4
aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVjdFtdIi4KKyAgICAgICAgJHR5cGUgPX4g
cy9cPy8vZzsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOworICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAg
ICRzZWxmLT5wYXJzZURlZmF1bHQoKTsKKyAgICAgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgbXkgJHR5cGUg
PSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkgY29u
c2lkZXIgbGFzdCAiPyIuCisgICAgICAgIGlmICgkdHlwZSA9fiAvXD8kLykgeworICAgICAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKKyAgICAgICAgfQorICAgICAg
ICAjIFJlbW92ZSBhbGwgIj8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0P1tdPyIgLT4gIm9iamVj
dFtdIi4KKyAgICAgICAgJHR5cGUgPX4gcy9cPy8vZzsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUt
PnR5cGUoJHR5cGUpOworICAgICAgICAkc2VsZi0+cGFyc2VFbGxpcHNpcygpOworICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+bmFtZSgkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CisgICAgICAg
IHJldHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBcmd1bWVu
dE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudE5hbWVf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VFbGxpcHNpcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIuLi4iKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLi4u
IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkZpZWxkKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8p
IHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOworICAgICAg
ICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOworICAgICAgICBteSAk
dG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIlsiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZUxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIHt9OworfQorCitzdWIgcGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJbIiwgX19M
SU5FX18pOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0ge307CisgICAgICAg
IG15ICRhdHRyID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUoKTsKKyAgICAgICAgZm9y
IG15ICRrZXkgKGtleXMgJXskYXR0cn0pIHsKKyAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICAgICAgJGF0dHIg
PSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoKTsKKyAgICAgICAgZm9yIG15ICRrZXkg
KGtleXMgJXskYXR0cn0pIHsKKyAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsk
a2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm4gJGV4dGVuZGVkQXR0cmlidXRlTGlzdDsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSB7fTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwi
KSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICAgICBteSAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlMigpOworICAgICAgICAgICAgZm9yIG15ICRrZXkgKGtleXMgJXskYXR0
cn0pIHsKKyAgICAgICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtleX0gPSAk
YXR0ci0+eyRrZXl9OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gJGV4dGVuZGVkQXR0cmlidXRl
TGlzdDsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmli
dXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICAjIGJhY2t3YXJkIGNvbXBhdGli
aWxpdHkuIFNwZWMgZG9lc24nIGFsbG93ICJbXSIuIEJ1dCBXZWJLaXQgcmVxdWlyZXMuCisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICddJykgeworICAgICAgICByZXR1cm4ge307CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYt
PmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZVJlc3QoJHRva2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIHt9OworfQorCitzdWIg
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJGF0dHJzID0ge307CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsIF9f
TElORV9fKTsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlQXJndW1lbnRM
aXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiKSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRhdHRyczsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAgICAgICRhdHRycy0+eyRu
YW1lfSA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDIoKTsKKyAgICAgICAgcmV0
dXJuICRhdHRyczsKKyAgICB9CisKKyAgICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewor
ICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSBbXTsKKyAgICB9IGVsc2UgeworICAgICAgICAkYXR0
cnMtPnskbmFtZX0gPSAiVkFMVUVfSVNfTUlTU0lORyI7CisgICAgfQorICAgIHJldHVybiAkYXR0
cnM7Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDIKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlUmVzdDMoJHRva2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSW50ZWdlclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tl
bigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuYW1lID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiYiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiJiIsIF9fTElORV9fKTsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICByZXR1cm4gJG5hbWUgLiAi
JiIgLiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
fCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ8IiwgX19MSU5FX18pOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgIHJldHVybiAkbmFtZSAuICJ8IiAuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSAkYXR0ciA9IHt9Owor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBf
X0xJTkVfXyk7CisgICAgICAgICRhdHRyLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlQXJndW1lbnRM
aXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiKSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xLykgeworICAgICAgICBteSBAbmFtZXMgPSAoKTsK
KyAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsKKyAgICAgICAgcHVzaChAbmFtZXMsIEB7JHNl
bGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOworICAgICAgICByZXR1cm4gam9pbignICcsIEBu
YW1lcyk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCkpOworfQorCitzdWIgcGFyc2VJZGVudGlmaWVyTGlzdAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPmdl
dFRva2VuKCktPnZhbHVlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBuYW1lczsKK30KKworc3ViIHBhcnNlQXJn
dW1lbnROYW1lS2V5d29yZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1
dGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVl
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3JlYXRvciIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9u
YXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1
ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0
VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhl
cml0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2Vu
KCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRU
b2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVk
ZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJlc3RyaWN0ZWQiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRz
ZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFR5cGVfMS8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VTaW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiYW55IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXhT
dGFydGluZ1dpdGhBcnJheSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZVVuaW9uVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigi
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIiwgX19M
SU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25UeXBl
KCk7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJdIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmdsZVR5cGVfMS8pIHsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJvciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1i
ZXJUeXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICB9
Cit9CisKK3N1YiBwYXJzZU5vbkFueVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHROb25BbnlUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQcmlt
aXRpdmVUeXBlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiQnl0ZVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJCeXRlU3RyaW5nIiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gIkJ5dGVTdHJpbmciIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJET01TdHJpbmciLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAiRE9NU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZm
aXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5j
ZSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI8IiwgX19MSU5FX18pOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJz
ZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI+IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInNlcXVlbmNlPCIgLiAkdHlwZSAu
ICI+IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAib2JqZWN0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIm9iamVjdCIg
LiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiRGF0ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJEYXRlIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNl
bGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4
KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ29uc3RUeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0Tm9uQW55VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCkg
LiAkc2VsZi0+cGFyc2VOdWxsKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlUHJpbWl0aXZl
VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFByaW1pdGl2ZVR5cGVf
MS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFByaW1pdGl2ZVR5cGVfMi8p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVucmVzdHJpY3RlZEZsb2F0VHlwZSgpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYm9vbGVhbiIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuICJib29sZWFuIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJieXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgImJ5dGUiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiYnl0ZSI7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2N0ZXQiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2N0ZXQiLCBfX0xJTkVf
Xyk7CisgICAgICAgIHJldHVybiAib2N0ZXQiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVu
cmVzdHJpY3RlZEZsb2F0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJl
c3RyaWN0ZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAidW5yZXN0cmljdGVkIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInVucmVz
dHJpY3RlZCIgLiAkc2VsZi0+cGFyc2VGbG9hdFR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dFVucmVzdHJpY3RlZEZsb2F0VHlwZV8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
RmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImZsb2F0IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImZsb2F0Iiwg
X19MSU5FX18pOworICAgICAgICByZXR1cm4gImZsb2F0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJkb3VibGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiZG91YmxlIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4g
ImRvdWJsZSI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZQor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnNpZ25lZCIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ1bnNpZ25lZCIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuICJ1bnNpZ25lZCAiIC4gJHNlbGYtPnBhcnNlSW50ZWdlclR5
cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFVuc2lnbmVkSW50
ZWdlclR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAic2hvcnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAic2hvcnQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAi
c2hvcnQiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludCIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnQiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAiaW50IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJsb25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImxvbmciLCBfX0xJTkVfXyk7CisgICAgICAgIGlmICgkc2VsZi0+cGFyc2VP
cHRpb25hbExvbmcoKSkgeworICAgICAgICAgICAgcmV0dXJuICJsb25nIGxvbmciOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiAibG9uZyI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlT3B0
aW9uYWxMb25nCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImxvbmciKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibG9uZyIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitz
dWIgcGFyc2VUeXBlU3VmZml4Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJdIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJz
ZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/Iikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8iLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiPyIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4U3Rh
cnRpbmdXaXRoQXJyYXkoKTsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VU
eXBlU3VmZml4U3RhcnRpbmdXaXRoQXJyYXkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJbIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiW10iIC4gJHNl
bGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBw
YXJzZU51bGwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/IiwgX19MSU5FX18p
OworICAgICAgICByZXR1cm4gIj8iOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBw
YXJzZVJldHVyblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidm9pZCIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ2b2lk
IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInZvaWQiOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGUoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VHZXQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiaW5oZXJpdHMiKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRzZWxm
LT5wYXJzZUluaGVyaXRzR2V0dGVyKCk7CisgICAgICAgICRhdHRyLT57ImluaGVyaXRzIn0gPSAx
OworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9IFtdOworICAgICAgICAkYXR0ci0+eyJz
ZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlcygpOworICAgICAgICByZXR1cm4gJGF0
dHI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRHZXRfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNldEdldFJhaXNlcygpOworICAgIH0KK30KKworc3Vi
IHBhcnNlSW5oZXJpdHNHZXR0ZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5o
ZXJpdHMiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiaW5oZXJpdHMiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2V0R2V0UmFpc2VzCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkYXR0ciA9IHt9OworICAgICRhdHRyLT57ImluaGVyaXRzIn0g
PSAwOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0g
JHNlbGYtPnBhcnNlU2V0UmFpc2VzKCk7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0g
JHNlbGYtPnBhcnNlR2V0UmFpc2VzMigpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJz
ZXRyYWlzZXMifSA9IFtdOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5w
YXJzZUdldFJhaXNlcygpOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTZXRHZXRSYWlzZXMyXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMyKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
R2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRl
ciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2VzMgor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBf
X0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAicmFpc2VzIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhj
ZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZVNldFJh
aXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2V0dGVyIiwgX19M
SU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2Vw
dGlvbkxpc3QoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VTZXRHZXRSYWlzZXMyCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2V0R2V0UmFpc2VzMl8xLykgeworICAg
ICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMDsKKyAg
ICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VHZXRSYWlzZXMzKCk7Cisg
ICAgICAgICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2VzMygpOwor
ICAgICAgICByZXR1cm4gJGF0dHI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0UmFpc2Vz
MworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXRyYWlzZXMiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0cmFpc2VzIiwg
X19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwor
ICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZVNldFJhaXNlczMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0cmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHJhaXNlcyIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAg
cmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VFeGNlcHRpb25MaXN0Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15IEBleGNlcHRpb25zID0gKCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsIF9fTElO
RV9fKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBw
dXNoKEBleGNlcHRpb25zLCAkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBwdXNoKEBleGNlcHRp
b25zLCBAeyRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICBy
ZXR1cm4gXEBleGNlcHRpb25zOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVJhaXNlcworewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJyYWlzZXMiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICBy
ZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZURlZmluaXRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0aW9uXzEvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRp
YWwoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5T2xkKCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXhjZXB0aW9uT2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVudW1PbGQoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlVHlwZWRlZih7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAibW9kdWxlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTW9kdWxlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCh7fSk7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlTW9kdWxlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVs
ZSIpIHsKKyAgICAgICAgbXkgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibW9kdWxlIiwgX19M
SU5FX18pOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAkdG9rZW4gPSAk
c2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4s
IElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1bGUo
JHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb25zID0gJHNlbGYtPnBhcnNl
RGVmaW5pdGlvbnMoKTsKKyAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+Y2xhc3Nlc30sIEB7JGRl
ZmluaXRpb25zfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWxTZW1p
Y29sb24oKTsKKyAgICAgICAgcmV0dXJuICRkb2N1bWVudDsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIg
cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImNhbGxiYWNrIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImNhbGxiYWNrIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZhY2Uoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUlu
dGVyZmFjZU9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVyZmFjZU9sZAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIG15ICRk
YXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsIF9fTElORV9fKTsKKyAgICAgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlz
dEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwor
ICAgICAgICAkZGF0YU5vZGUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFO
b2RlLT5pc0V4Y2VwdGlvbigwKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30s
IEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRp
bnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVy
ZmFjZU1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5v
ZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlck9sZAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUNvbnN0KHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlck9sZF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9y
T2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGljdGlvbmFyeU9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnkiLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rp
b25hcnlNZW1iZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAg
ICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RGVmYXVsdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VFeGNlcHRpb25PbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhj
ZXB0aW9uIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJleGNlcHRpb24i
LCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+
cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0
b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+
dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgICAgIHB1
c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7Iiwg
X19MSU5FX18pOworICAgICAgICBteSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUlu
dGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgIyRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5v
ZGUsICRleGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxp
c3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRk
YXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFbnVtT2xkCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZW51bSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYt
PnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJ
TkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUVudW1WYWx1ZUxpc3QoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRy
aWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6
ZXIoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
T3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFsaWZpZXIgPSAkc2Vs
Zi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNl
QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0T2xkKCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0
YU5vZGUpICYmICRxdWFsaWZpZXIgZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRkYXRhTm9k
ZS0+aXNTdGF0aWMoMSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT2xkKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3Ioe30pOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUF0dHJpYnV0ZVJlc3RPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICI7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4
dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xLykgeworICAgICAgICBteSAkcmV0dXJuVHlwZSA9
ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uUmVzdCh7fSk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUp
KSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VBdHRyaWJ1dGVPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRBdHRyaWJ1dGVPbGRfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdCgpOworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdE9sZCgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3RPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9
IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkp
IHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJp
YnV0ZSIpOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiYXR0cmlidXRlIiwgX19MSU5FX18pOworICAgICAgICBteSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dF
bXB0eSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJl
KCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VU
eXBlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50
aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tl
bi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VHZXQoKTsKKyAg
ICAgICAgaWYgKGRlZmluZWQgJGdldFJlZikgeworICAgICAgICAgICAgcHVzaChAeyRuZXdEYXRh
Tm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlZi0+eyJnZXRyYWlzZXMifX0pOworICAg
ICAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJl
Zi0+eyJzZXRyYWlzZXMifX0pOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJpbiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJpbiIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJp
biI7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlT3B0aW9uYWxTZW1pY29s
b24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAg
IH0KK30KKworc3ViIGFwcGx5TWVtYmVyTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0
OworICAgIG15ICRtZW1iZXJzID0gc2hpZnQ7CisKKyAgICBmb3IgbXkgJGl0ZW0gKEB7JG1lbWJl
cnN9KSB7CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVxICJkb21BdHRyaWJ1dGUiKSB7CisgICAg
ICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGl0ZW0pOworICAgICAgICAg
ICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQ29uc3Rh
bnQiKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9LCAkaXRlbSk7
CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVx
ICJkb21GdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmZ1bmN0aW9u
c30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1
YiBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIGlmIChkZWZp
bmVkICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifSkgeworICAgICAgICBt
eSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUtPm5hbWUoIkNvbnN0cnVjdG9yIik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QtPnsiQ29uc3RydWN0b3IifX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
LT57IkNvbnN0cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7CisgICAgICAgICRkYXRhTm9k
ZS0+Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9IGVsc2lmIChkZWZpbmVkICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
ICAgICBteSAlYXR0cmlidXRlcyA9ICV7JGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENv
bnN0cnVjdG9yIn19OworICAgICAgICBteSBAYXR0cmlidXRlS2V5cyA9IGtleXMgKCVhdHRyaWJ1
dGVzKTsKKyAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZSA9ICRhdHRyaWJ1dGVLZXlzWzBdOwor
ICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskYXR0cmlidXRlc3sk
Y29uc3RydWN0b3JOYW1lfX0pOworICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57Ik5h
bWVkQ29uc3RydWN0b3IifSA9ICRjb25zdHJ1Y3Rvck5hbWU7CisgICAgICAgICRkYXRhTm9kZS0+
Y29uc3RydWN0b3IoJG5ld0RhdGFOb2RlKTsKKyAgICB9CisgICAgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cit9CisKKzE7CisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRl
c3RPYmouY3BwCmluZGV4IDBjZjY3NjU5OWM2M2JmMTI1YzFkNDliY2FhMGM4MzNjODUzMTgxM2Mu
LjUzMTgxZDRhOTA1MjNmMjU0YzgyNWU1NjljN2FmZDA4ODg2OGI4ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0
T2JqLmNwcApAQCAtMTUzLDIwICsxNTMsMjAgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRVbnNp
Z25lZFNob3J0QXR0cih1bnNpZ25lZCBzaG9ydCBuZXdVbnNpZ25lZFNob3J0QXR0cikKICAgICBp
bXBsKCktPnNldFVuc2lnbmVkU2hvcnRBdHRyKG5ld1Vuc2lnbmVkU2hvcnRBdHRyKTsKIH0KIAot
bG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6OkF0dHIoKSBjb25zdAoraW50IFdlYkRPTVRlc3RPYmo6
OmxvbmdBdHRyKCkgY29uc3QKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICByZXR1cm4gaW1wbCgpLT5hdHRyKCk7CisgICAgcmV0dXJuIGltcGwoKS0+bG9uZ0F0
dHIoKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpzZXRBdHRyKGxvbmcgbG9uZyBuZXdBdHRy
KQordm9pZCBXZWJET01UZXN0T2JqOjpzZXRMb25nQXR0cihpbnQgbmV3TG9uZ0F0dHIpCiB7CiAg
ICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+c2V0QXR0cihu
ZXdBdHRyKTsKKyAgICBpbXBsKCktPnNldExvbmdBdHRyKG5ld0xvbmdBdHRyKTsKIH0KIAogbG9u
ZyBsb25nIFdlYkRPTVRlc3RPYmo6OmxvbmdMb25nQXR0cigpIGNvbnN0CkBAIC00MjUsOSArNDI1
LDcgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihpbnQg
bmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pCiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwoKS0+
c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVj
KTsKLSAgICB3ZWJET01SYWlzZUVycm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+
KGVjKSk7CisgICAgaW1wbCgpLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIGludCBXZWJET01UZXN0T2JqOjphdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbigpIGNvbnN0CkBAIC00NjQsOSArNDYyLDcgQEAgdm9pZCBXZWJET01UZXN0T2Jq
OjpzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb25zdCBXZWJET01TdHJpbmcmIG5l
d1N0cmkKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbCgpLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIHdl
YkRPTVJhaXNlRXJyb3Ioc3RhdGljX2Nhc3Q8V2ViRE9NRXhjZXB0aW9uQ29kZT4oZWMpKTsKKyAg
ICBpbXBsKCktPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogV2ViRE9NU3RyaW5nIFdlYkRPTVRlc3RPYmo6OnN0
cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKCkgY29uc3QKQEAgLTY3NywyOCArNjczLDI4IEBA
IHZvaWQgV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZCgpCiAgICAgaW1wbCgpLT52b2lkTWV0aG9k
KCk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9u
ZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBv
YmpBcmcpCit2b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0Fy
ZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFy
ZykKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT52
b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKKyAgICBp
bXBsKCktPnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpB
cmcpKTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZCgpCitpbnQgV2ViRE9N
VGVzdE9iajo6bG9uZ01ldGhvZCgpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgcmV0dXJuIGltcGwoKS0+bWV0aG9kKCk7CisgICAgcmV0dXJuIGltcGwoKS0+
bG9uZ01ldGhvZCgpOwogfQogCi1sb25nIGxvbmcgV2ViRE9NVGVzdE9iajo6TWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZykKK2ludCBXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kV2l0aEFyZ3Mo
aW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0
T2JqJiBvYmpBcmcpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgcmV0dXJuIGltcGwoKS0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShv
YmpBcmcpKTsKKyAgICByZXR1cm4gaW1wbCgpLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
c3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CiB9CiAKIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVz
dE9iajo6b2JqTWV0aG9kKCkKQEAgLTcwOSwxMiArNzA1LDEyIEBAIFdlYkRPTVRlc3RPYmogV2Vi
RE9NVGVzdE9iajo6b2JqTWV0aG9kKCkKICAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIo
aW1wbCgpLT5vYmpNZXRob2QoKSkpOwogfQogCi1XZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6
Om9iak1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3Ry
QXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCitXZWJET01UZXN0T2JqIFdlYkRPTVRl
c3RPYmo6Om9iak1ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcm
IHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgp
KQogICAgICAgICByZXR1cm4gV2ViRE9NVGVzdE9iaigpOwogCi0gICAgcmV0dXJuIHRvV2ViS2l0
KFdURjo6Z2V0UHRyKGltcGwoKS0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIHRvV2Vi
Q29yZShvYmpBcmcpKSkpOworICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0cihpbXBsKCkt
Pm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFyZykpKSk7
CiB9CiAKIFdlYkRPTVRlc3RPYmogV2ViRE9NVGVzdE9iajo6bWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyhjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKQpAQCAtOTAyLDM2ICs4OTgsMzYgQEAgdm9pZCBXZWJET01UZXN0T2JqOjpv
dmVybG9hZGVkTWV0aG9kMShjb25zdCBXZWJET01TdHJpbmcmIHR5cGUpCiAKICNlbmRpZgogCi12
b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmICkKK3ZvaWQgV2ViRE9N
VGVzdE9iajo6Y29udmVydDEoY29uc3QgV2ViRE9NYSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBs
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDEodG9XZWJDb3JlKCkp
OworICAgIGltcGwoKS0+Y29udmVydDEodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2Vi
RE9NVGVzdE9iajo6Y29udmVydDIoY29uc3QgV2ViRE9NYiYgKQordm9pZCBXZWJET01UZXN0T2Jq
Ojpjb252ZXJ0Mihjb25zdCBXZWJET01iJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0Mih0b1dlYkNvcmUoKSk7CisgICAg
aW1wbCgpLT5jb252ZXJ0Mih0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0
T2JqOjpjb252ZXJ0NChjb25zdCBXZWJET01kJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQ0KGNvbnN0IFdlYkRPTWQmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQ0KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCkt
PmNvbnZlcnQ0KHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OmNv
bnZlcnQ1KGNvbnN0IFdlYkRPTWUmICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDUoY29u
c3QgV2ViRE9NZSYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGltcGwoKS0+Y29udmVydDUodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29udmVy
dDUodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKIFdlYkRPTVNWR1BvaW50IFdlYkRPTVRlc3RPYmo6
Om11dGFibGVQb2ludEZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggZDU1ZmY3ODY1NTFl
YmQzYzc0YWQxYTk2ODgzMmQyMDI5YmNhYzUyNy4uNWQ5YTlhYzAwMjgxZGM5MDg5MzAxZDZlN2E1
YjUyNzhmNGRhYWQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTc3LDggKzc3LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0U2hvcnRBdHRyKHNob3J0KTsKICAgICB1bnNpZ25lZCBzaG9ydCB1bnNp
Z25lZFNob3J0QXR0cigpIGNvbnN0OwogICAgIHZvaWQgc2V0VW5zaWduZWRTaG9ydEF0dHIodW5z
aWduZWQgc2hvcnQpOwotICAgIGxvbmcgbG9uZyBBdHRyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRB
dHRyKGxvbmcgbG9uZyk7CisgICAgaW50IGxvbmdBdHRyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRM
b25nQXR0cihpbnQpOwogICAgIGxvbmcgbG9uZyBsb25nTG9uZ0F0dHIoKSBjb25zdDsKICAgICB2
b2lkIHNldExvbmdMb25nQXR0cihsb25nIGxvbmcpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1
bnNpZ25lZExvbmdMb25nQXR0cigpIGNvbnN0OwpAQCAtMTQ3LDExICsxNDcsMTEgQEAgcHVibGlj
OgogICAgIGludCByZXBsYWNlYWJsZUF0dHJpYnV0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCB2b2lk
TWV0aG9kKCk7Ci0gICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29u
c3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Ci0g
ICAgbG9uZyBsb25nIE1ldGhvZCgpOwotICAgIGxvbmcgbG9uZyBNZXRob2RXaXRoQXJncyhsb25n
IGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9i
aiYgb2JqQXJnKTsKKyAgICB2b2lkIHZvaWRNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29u
c3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7Cisg
ICAgaW50IGxvbmdNZXRob2QoKTsKKyAgICBpbnQgbG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25n
QXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2Jq
QXJnKTsKICAgICBXZWJET01UZXN0T2JqIG9iak1ldGhvZCgpOwotICAgIFdlYkRPTVRlc3RPYmog
b2JqTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJB
cmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CisgICAgV2ViRE9NVGVzdE9iaiBvYmpN
ZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNv
bnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CiAgICAgV2ViRE9NVGVzdE9iaiBtZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25z
dCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwogICAgIHZvaWQgc2VyaWFsaXplZFZhbHVlKGNvbnN0
IFdlYkRPTVN0cmluZyYgc2VyaWFsaXplZEFyZyk7CiAgICAgdm9pZCBpZGJLZXkoY29uc3QgV2Vi
RE9NSURCS2V5JiBrZXkpOwpAQCAtMTgyLDEwICsxODIsMTAgQEAgcHVibGljOgogI2lmIEVOQUJM
RShDb25kaXRpb24xKQogICAgIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZDEoY29uc3QgV2ViRE9NU3Ry
aW5nJiB0eXBlKTsKICNlbmRpZgotICAgIHZvaWQgY29udmVydDEoY29uc3QgV2ViRE9NYSYgKTsK
LSAgICB2b2lkIGNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICk7Ci0gICAgdm9pZCBjb252ZXJ0NChj
b25zdCBXZWJET01kJiApOwotICAgIHZvaWQgY29udmVydDUoY29uc3QgV2ViRE9NZSYgKTsKKyAg
ICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQy
KGNvbnN0IFdlYkRPTWImIHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQm
IHZhbHVlKTsKKyAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmIHZhbHVlKTsKICAgICBX
ZWJET01TVkdQb2ludCBtdXRhYmxlUG9pbnRGdW5jdGlvbigpOwogICAgIFdlYkRPTVNWR1BvaW50
IGltbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICB2b2lkIGJhbmFuYSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCAxMjA0ZGZiNTBkYmQzZGM5YTQyM2NhMWQ1YWFi
NTczMTgzNWViOTM4Li4yZDAzZGFlOWE4ZGJmYTcwNWExZTRkYzU4YjY1NjM5MjEwOGI3ODUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIGVu
dW0gewogICAgIFBST1BfUkVBRF9PTkxZX1RFU1RfT0JKX0FUVFIsCiAgICAgUFJPUF9TSE9SVF9B
VFRSLAogICAgIFBST1BfVU5TSUdORURfU0hPUlRfQVRUUiwKLSAgICBQUk9QX0FUVFIsCisgICAg
UFJPUF9MT05HX0FUVFIsCiAgICAgUFJPUF9MT05HX0xPTkdfQVRUUiwKICAgICBQUk9QX1VOU0lH
TkVEX0xPTkdfTE9OR19BVFRSLAogICAgIFBST1BfU1RSSU5HX0FUVFIsCkBAIC0xNzksNiArMTc5
LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmpl
Y3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgY29yZVNlbGYtPnNldFVuc2ln
bmVkU2hvcnRBdHRyKChnX3ZhbHVlX2dldF91aW50KHZhbHVlKSkpOwogICAgICAgICBicmVhazsK
ICAgICB9CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAgICAgICBjb3JlU2VsZi0+c2V0
TG9uZ0F0dHIoKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KICAgICBjYXNlIFBST1BfVU5TSUdORURfTE9OR19MT05HX0FUVFI6IHsKICAgICAgICAgY29y
ZVNlbGYtPnNldFVuc2lnbmVkTG9uZ0xvbmdBdHRyKChnX3ZhbHVlX2dldF91aW50NjQodmFsdWUp
KSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjI4LDggKzIzMiw3IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVy
dHlJZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhfR0VU
VEVSX0VYQ0VQVElPTjogewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dl
dF9sb25nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0yMzgs
OCArMjQxLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTjogewotICAg
ICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgY29yZVNlbGYtPnNl
dFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3Zh
bHVlX2dldF9zdHJpbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3JlU2VsZi0+c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0
X3N0cmluZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUFJPUF9T
VFJJTkdfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046IHsKQEAgLTMyOSw4ICszMzEsOCBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQodmFsdWUsIGNv
cmVTZWxmLT51bnNpZ25lZFNob3J0QXR0cigpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAg
IGNhc2UgUFJPUF9BVFRSOiB7Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludDY0KHZhbHVlLCBjb3Jl
U2VsZi0+YXR0cigpKTsKKyAgICBjYXNlIFBST1BfTE9OR19BVFRSOiB7CisgICAgICAgIGdfdmFs
dWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5sb25nQXR0cigpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgIGNhc2UgUFJPUF9MT05HX0xPTkdfQVRUUjogewpAQCAtNTkzLDEyICs1OTUs
MTIgQEAgR19NQVhVSU5ULCAvKiBtYXggKi8KIDAsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29i
amVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BVFRS
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludDY0
KCJhdHRyIiwgLyogbmFtZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0
aW9uICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWFkLXdyaXRlICBnaW50NjQgVGVzdE9iai5hdHRyIiwgLyogbG9uZ2VyIC0g
Y291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOSU5UNjQs
IC8qIG1pbiAqLwotR19NQVhJTlQ2NCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQUk9QX0xPTkdfQVRUUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJsb25nLWF0dHIiLCAvKiBuYW1lICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
ZXN0X29ial9sb25nLWF0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0
ZSAgZ2xvbmcgVGVzdE9iai5sb25nLWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNv
bWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFY
TE9ORywgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywK
QEAgLTkzMSw3ICs5MzMsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYpCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9t
ZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0
IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK3dlYmtpdF9kb21fdGVz
dF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25n
IGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykK
IHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTk0NCwyMSArOTQ2LDIxIEBAIHdlYmtpdF9kb21fdGVzdF9v
Ympfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBB
cmcsIGNvCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcpOwog
ICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZE9iakFyZyk7CiAgICAgfQotICAgIGl0
ZW0tPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2Jq
QXJnKTsKKyAgICBpdGVtLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVydGVkU3Ry
QXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwogfQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
bWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29i
al9sb25nX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwot
ICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5NZXRob2QoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBp
dGVtLT5sb25nTWV0aG9kKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotZ2ludDY0Ci13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2ludDY0IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJn
KQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdl
YktpdERPTVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxm
LCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC05NzEs
NyArOTczLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGcKICAgICAgICAgY29udmVydGVkT2Jq
QXJnID0gV2ViS2l0Ojpjb3JlKG9iakFyZyk7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KGNvbnZlcnRlZE9iakFyZywgMCk7CiAgICAgfQotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5N
ZXRob2RXaXRoQXJncyhBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKTsKKyAg
ICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgY29udmVy
dGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAg
LTk4Nyw3ICs5ODksNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZikKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFy
ZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQord2Via2l0
X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMTAwMCw3ICsxMDAyLDcgQEAgd2Vi
a2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjb24KICAgICAgICAgY29udmVydGVkT2JqQXJnID0gV2ViS2l0Ojpj
b3JlKG9iakFyZyk7CiAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbnZlcnRlZE9iakFy
ZywgMCk7CiAgICAgfQotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnb2JqZWN0UmVzdWx0
ID0gV1RGOjpnZXRQdHIoaXRlbS0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJB
cmcsIGNvbnZlcnRlZE9iakFyZykpOworICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0T2JqPiBnb2Jq
ZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
Y29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRPYmpBcmcpKTsKICAgICBXZWJLaXRET01UZXN0T2Jq
KiByZXN1bHQgPSBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQpAQCAtMTM0NCw2MyArMTM0Niw2MyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292
ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlw
ZQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWEqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
X3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6YSogY29udmVydGVkID0gMDsKLSAgICBp
ZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3Jl
dHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Cisg
ICAgV2ViQ29yZTo6YSogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAg
ICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0MShj
b252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQxKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01iKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWIqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmIqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmIqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDIoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0Mihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01kKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjpkKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpkKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQ0KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDQoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICkKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6
ZSogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktp
dDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZSogY29udmVydGVkVmFsdWUgPSAw
OworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29y
ZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAg
IH0KLSAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ1KGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NU1ZHUG9pbnQqCkBAIC0xNTIxLDIzICsxNTIz
LDIzIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Vuc2lnbmVkX3Nob3J0X2F0dHIoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1CiAgICAgaXRlbS0+c2V0VW5zaWduZWRTaG9y
dEF0dHIodmFsdWUpOwogfQogCi1naW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChzZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
aW50NjQgcmVzdWx0ID0gaXRlbS0+YXR0cigpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPmxv
bmdBdHRyKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgdmFsdWUpCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xv
bmcgdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zZXRBdHRyKHZhbHVlKTsKKyAgICBpdGVt
LT5zZXRMb25nQXR0cih2YWx1ZSk7CiB9CiAKIGdpbnQ2NApAQCAtMTg2NSwxNyArMTg2NywxMiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBHRXJybwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7
Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwot
ICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJX
RUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0t
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlKTsKIH0KIAogZ2xvbmcKQEAgLTE5MTQs
MTkgKzE5MTEsMTQgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9n
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24o
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CiAgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFs
dWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogZ2NoYXIqCkBAIC0yMDE3LDcgKzIw
MDksNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CkBAIC0yMDI4LDEyICsyMDIwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWwK
ICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBn
X3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzKGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9l
cnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVj
ZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RP
YmoqCkBAIC0yMDUzLDcgKzIwNDAsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4
dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RP
YmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhf
c2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0y
MDY0LDEyICsyMDUxLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhl
Y3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlz
ZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNj
LmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRE
T01UZXN0T2JqKgpAQCAtMjExNSw3ICsyMDk3LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGUK
IH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3Jp
cHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIxMjYsMTIgKzIxMDgsNyBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
bmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktp
dDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUp
OwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5z
ZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KGNvbnZlcnRlZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5j
b2RlLCBlY2Rlc2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwog
fQogCiBXZWJLaXRET01UZXN0T2JqKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4
IDM5NWZhNzdhNjkxNDRkMjA4NmRlYjU0MzJhYzYwOWIyZTRjY2Q5NjYuLjlkOTA1YWQyYjE5ODEy
OTlkOWVmNWJhMzQwZGE3NTIyMjY0YjI3ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKQEAgLTU4LDcgKzU4LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21l
dGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzog
QSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAg
KiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtNjYsMzAgKzY2LDMwIEBAIHdl
YmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAg
KgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rf
d2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFy
KiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25n
QXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOwogCiAv
KioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kOgorICogd2Via2l0X2RvbV90ZXN0X29i
al9sb25nX21ldGhvZDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9k
b21fdGVzdF9vYmpfbG9uZ19tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgot
ICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9hcmdzOgorICogd2Via2l0X2RvbV90
ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVz
dE9iagotICogQEFyZzogQSAjZ2ludDY0CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJB
cmc6IEEgI2djaGFyCiAgKiBAb2JqQXJnOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICogUmV0
dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3Qg
Z2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK1dFQktJVF9BUEkgZ2xv
bmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0
aG9kOgpAQCAtMTA0LDcgKzEwNCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZChX
ZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9vYmpf
bWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAQXJn
OiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzogQSAjZ2NoYXIK
ICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC0xMTIsNyArMTEyLDcgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwog
ICoKICoqLwogV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0T2JqKgotd2Via2l0X2RvbV90ZXN0X29i
al9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJn
LCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0
X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3RoYXRfcmVxdWly
ZXNfYWxsX2FyZ3NfYW5kX3Rocm93czoKQEAgLTQwMCw0NiArNDAwLDQ2IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDE6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYQorICogQHZhbHVl
OiBBICNXZWJLaXRET01hCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01hKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9jb252ZXJ0MjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNX
ZWJLaXRET01iCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWIKICAqCiAgKiBSZXR1cm5zOgogICoK
ICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2Nv
bnZlcnQyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWIqIHZhbHVlKTsKIAogLyoq
CiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0OgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWQKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NZAog
ICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCogKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0
RE9NZCogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDU6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NZQorICogQHZh
bHVlOiBBICNXZWJLaXRET01lCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkg
dm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01lKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBXZWJLaXRET01lKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90
ZXN0X29ial9tdXRhYmxlX3BvaW50X2Z1bmN0aW9uOgpAQCAtNTU4LDI1ICs1NTgsMjUgQEAgV0VC
S0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9ydF9hdHRy
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGd1c2hvcnQgdmFsdWUpOwogCiAvKioKLSAqIHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X2F0dHI6CisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25n
X2F0dHI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAg
KgogKiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cihX
ZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKIAogLyoqCi0gKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
bG9uZ19hdHRyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEB2YWx1ZTogQSAj
Z2ludDY0CisgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cihXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBnaW50NjQgdmFsdWUpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfbG9uZ19h
dHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2xvbmdfYXR0cjoKQEAgLTkwOCwxMyArOTA4LDEyIEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAg
KiBAdmFsdWU6IEEgI2dsb25nCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOgog
ICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dp
dGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRl
cl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioK
ICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpA
QCAtOTUzLDEzICs5NTIsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJf
d2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbjoKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI2djaGFyCi0gKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRp
b24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCiAg
KiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdfYXR0cl93aXRoX3NldHRlcl9leGNlcHRp
b246CkBAIC0xMDQwLDEzICsxMDM4LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhf
c2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2Vz
OgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9N
VGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93
aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVf
cmFpc2VzOgpAQCAtMTA2MywxMyArMTA2MCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93
aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQog
ICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRf
YXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFs
dWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3Jh
aXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vy
cm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJL
aXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRf
d2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGU6
CkBAIC0xMTA3LDEzICsxMTAzLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2Ny
aXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2Ny
aXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9i
agogICogQHZhbHVlOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2Fu
ZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0
X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9h
dHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoq
IHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9l
eGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX3dpdGhfc3BhY2VzX2F0dHJpYnV0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKaW5kZXggZjQ4YTljODMzNzBmNTM0Y2Y1MDhhYTNjZmVjYWUyNTk3NjY3ZWM2Ny4u
NDlhMmZjN2QwZjFlODc5ZDg4Zjk5OTUzOTdjOTk1ZWFmMzAzY2I4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAg
LTg2LDcgKzg2LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxl
VmFsdWVzW10gPQogICAgIHsgInJlYWRPbmx5VGVzdE9iakF0dHIiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0ciksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9
LAogICAgIHsgInNob3J0QXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU2hvcnRBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9ialNob3J0QXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ1bnNpZ25lZFNo
b3J0QXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpLCAoaW50cHRyX3Qpc2V0
SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiQXR0ciIs
IERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpBdHRyLCBOb0ludHJp
bnNpYyB9LAorICAgIHsgImxvbmdBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpMb25nQXR0ciksIChpbnRw
dHJfdClzZXRKU1Rlc3RPYmpMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJsb25nTG9u
Z0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakxvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RP
YmpMb25nTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRMb25nTG9uZ0F0
dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KXNldEpT
VGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInN0cmlu
Z0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2Jq
U3RyaW5nQXR0ciwgTm9JbnRyaW5zaWMgfSwKQEAgLTI2Niw4ICsyNjYsOCBAQCBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiAgICAg
eyAiQ09OU1RfSkFWQVNDUklQVCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9KQVZB
U0NSSVBUKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidm9pZE1ldGhvZCIs
IERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRwdHJf
dCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInZvaWRNZXRob2RXaXRoQXJncyIsIERvbnREZWxl
dGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90
KTMsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVu
Y3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKLSAgICB7
ICJNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nTWV0
aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKSwgKGlu
dHB0cl90KTAsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ01ldGhvZFdpdGhBcmdzIiwgRG9u
dERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpLCAoaW50
cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJvYmpNZXRob2QiLCBEb250RGVsZXRlIHwg
SlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNp
YyB9LAogICAgIHsgIm9iak1ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9
LAogICAgIHsgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0
aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKSwgKGludHB0cl90KTEsIE5vSW50cmlu
c2ljIH0sCkBAIC00NjMsMTIgKzQ2MywxMiBAQCBKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hv
cnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYQogfQog
CiAKLUpTVmFsdWUganNUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJh
c2UsIFByb3BlcnR5TmFtZSkKK0pTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0
T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KGltcGwtPmF0dHIoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25n
QXR0cigpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMDAxLDEyICsxMDAxLDEyIEBA
IHZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogdGhpc09iamVjdCwgSlNWYWx1CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit2b2lk
IHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBU
ZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7
Ci0gICAgaW1wbC0+c2V0QXR0cihzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHZhbHVlLnRvSW50ZWdl
cihleGVjKSkpOworICAgIGltcGwtPnNldExvbmdBdHRyKHZhbHVlLnRvSW50MzIoZXhlYykpOwog
fQogCiAKQEAgLTExNTksOSArMTE1OSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwKICAgICBV
TlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpT
VGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpbXBsLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMp
LCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0xMTgx
LDkgKzExNzksNyBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYgogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhp
c09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0
ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNl
dFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLmlzRW1wdHkoKSA/IFN0cmluZygp
IDogdmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLCBlYyk7Ci0gICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbih2YWx1ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKSk7CiB9CiAKIApAQCAtMTIzMSw5ICsxMjI3LDcgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc08KICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMoZXhlYywgdG9UZXN0T2JqKHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMs
IHRvVGVzdE9iaih2YWx1ZSkpOwogfQogCiAKQEAgLTEyNDIsMTIgKzEyMzYsMTAgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVj
U3RhdGUqIGV4ZWMsIEpTT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RP
YmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRDb250ZXh0ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29u
dGV4dCkKICAgICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVj
KTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIHRvVGVzdE9i
aih2YWx1ZSkpOwogfQogCiAKQEAgLTEyNjgsMTIgKzEyNjAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KEV4ZWNTdGEKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0
ID0ganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghc2NyaXB0Q29udGV4dCkKICAg
ICAgICAgcmV0dXJuOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2NyaXB0Q29udGV4dCwgdG9UZXN0T2Jq
KHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+
c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cyhleGVjLCBzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsKIH0KIAogCkBAIC0xNDUx
LDcgKzE0NDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFy
ZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmco
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0lu
dDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJB
cmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5p
c0VtcHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE0NjAs
MTEgKzE0NTAsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBUZXN0T2JqKiBvYmpB
cmcodG9UZXN0T2JqKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDIsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+dm9pZE1ldGhvZFdp
dGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpOworICAgIGltcGwtPnZvaWRNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChFeGVj
U3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1Zh
bHVlKCk7CiAgICAgaWYgKCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkK
QEAgLTE0NzMsMTEgKzE0NjMsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCAmSlNUZXN0T2JqOjpzX2luZm8pOwogICAg
IFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5tZXRob2QoKSk7
CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPmxvbmdNZXRob2QoKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3Mo
RXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7CiAgICAgaWYgKCF0
aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKQEAgLTE0ODcsNyArMTQ3Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQXJncyhFeGVjU3RhdGUqCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/
IFN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5k
ZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwpAQCAtMTQ5Nyw3ICsxNDg3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSoKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bWV0aG9kV2l0aEFyZ3MoQXJnLCBz
dHJBcmcsIG9iakFyZykpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBs
LT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTE1MjQsNyArMTUxNCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpN
ZXRob2RXaXRoQXJncyhFeGVjU3RhCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxv
bmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBTdHJpbmcmIHN0ckFyZyhNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLmlzRW1wdHkoKSA/IFN0cmlu
ZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOwpAQCAtMTUzNCw3ICsxNTI0LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1l
dGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpT
VmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RG
OjpnZXRQdHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZykpKTsK
KyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgV1RGOjpnZXRQdHIoaW1wbC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3Ry
QXJnLCBvYmpBcmcpKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
CkBAIC0xNTY1LDExICsxNTU1LDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShFCiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBs
b25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBp
bnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAotICAgIEpTQzo6
SlNWYWx1ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBpbXBsLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShBcmcpKTsKKyAgICBKU0M6OkpTVmFsdWUg
cmVzdWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+
bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9uZ0FyZykpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMjE0NCwxMCArMjEzNCwxMCBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2QyKAogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogICAgIH0KIAotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdl
cihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwotICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBBcmcpOworICAgIGltcGwt
Pm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yMTc4LDEwICsyMTY4LDEwIEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDQoCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RP
YmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcg
bG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlm
IChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAgaW1w
bC0+b3ZlcmxvYWRlZE1ldGhvZChsb25nQXJnKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNDg1LDEwICsyNDc1LDEwIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKLSAgICBhKiAodG9hKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBhKiB2YWx1ZSh0b2EoTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0MSgpOworICAgIGltcGwtPmNvbnZlcnQxKHZhbHVl
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0y
NTAyLDEwICsyNDkyLDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiog
aW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBiKiAodG9i
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
KyAgICBiKiB2YWx1ZSh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0
MigpOworICAgIGltcGwtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0yNTE5LDEwICsyNTA5LDEwIEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAx
KQogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBkKiAodG9kKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4
ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBkKiB2YWx1ZSh0b2QoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChl
eGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252ZXJ0NCgpOworICAgIGltcGwtPmNvbnZlcnQ0KHZh
bHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBA
IC0yNTM2LDEwICsyNTI2LDEwIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVGVzdE9i
aiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwogICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBlKiAo
dG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
KTsKKyAgICBlKiB2YWx1ZSh0b2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT5jb252
ZXJ0NSgpOworICAgIGltcGwtPmNvbnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggMTIzMjcyNDA1MmFkZjIwZWI4
YTY5MDZhMDIxMTk1MzUzZDFhMTFjZi4uZjgxMGQ4MDAxNjA0Yjg2YTQyOWZhODhiNTU0ZmJiZTU5
MDE4ZTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaApAQCAtMTU0LDggKzE1NCw4IEBAIHByb3RlY3RlZDoKIAogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9p
ZE1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEpTQzo6RXhl
Y1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdz
KEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25M
b25nTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChKU0M6OkV4
ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtMjI4LDggKzIyOCw4IEBA
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lCiB2b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVl
IGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7Ci1KU0M6OkpT
VmFsdWUganNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0F0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNU
ZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
aAppbmRleCA2YTkwOTkxMWNjOGJiMGFjMDMxYzcwMTI5YTQxOTE2MmQ2NWVlY2FlLi45NTYzMzU5
MWU3ZmIzNzBiOGRkYjYwYWE3NjQ1MTI3ZGRkN2NiMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC03MCw3
ICs3MCw3IEBAIGVudW0gewogQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTVRlc3RPYmog
KnJlYWRPbmx5VGVzdE9iakF0dHI7CiBAcHJvcGVydHkgc2hvcnQgc2hvcnRBdHRyOwogQHByb3Bl
cnR5IHVuc2lnbmVkIHNob3J0IHVuc2lnbmVkU2hvcnRBdHRyOwotQHByb3BlcnR5IGxvbmcgbG9u
ZyBBdHRyOworQHByb3BlcnR5IGludCBsb25nQXR0cjsKIEBwcm9wZXJ0eSBsb25nIGxvbmcgbG9u
Z0xvbmdBdHRyOwogQHByb3BlcnR5IHVuc2lnbmVkIGxvbmcgbG9uZyB1bnNpZ25lZExvbmdMb25n
QXR0cjsKIEBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqc3RyaW5nQXR0cjsKQEAgLTExNywxOCAr
MTE3LDE4IEBAIGVudW0gewogQHByb3BlcnR5IGludCByZXBsYWNlYWJsZUF0dHJpYnV0ZTsKIAog
LSAodm9pZCl2b2lkTWV0aG9kOwotLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9u
ZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmc7Ci0tIChsb25nIGxvbmcpTWV0aG9kOwotLSAobG9uZyBsb25nKU1ldGhvZFdpdGhBcmdzOihs
b25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnOworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOworLSAoaW50
KWxvbmdNZXRob2Q7CistIChpbnQpbG9uZ01ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERP
TVRlc3RPYmogKilvYmpNZXRob2Q7Ci0tIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6
KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RP
YmogKilvYmpBcmc7CistIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25n
QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
OwogLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3M6KE5T
U3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKHZvaWQpc2Vy
aWFsaXplZFZhbHVlOihOU1N0cmluZyAqKXNlcmlhbGl6ZWRBcmc7CiAtICh2b2lkKWlkYktleToo
RE9NSURCS2V5ICopa2V5OwogLSAodm9pZClvcHRpb25zT2JqZWN0OihET01EaWN0aW9uYXJ5ICop
b28gb29vOihET01EaWN0aW9uYXJ5ICopb29vOwogLSAodm9pZCltZXRob2RXaXRoRXhjZXB0aW9u
OwogLSAodm9pZCljdXN0b21NZXRob2Q7Ci0tICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihs
b25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2Jq
ICopb2JqQXJnOworLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3Ry
QXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2
b2lkKWFkZEV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2
ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZv
aWQpcmVtb3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9N
RXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlOwogLSAo
dm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkOwpAQCAtMTY1LDEwICsxNjUsMTAgQEAgZW51bSB7CiAt
ICh2b2lkKW92ZXJsb2FkZWRNZXRob2QxOihOU1N0cmluZyAqKXR5cGU7CiAjZW5kaWYKIC0gKERP
TVNWR0RvY3VtZW50ICopZ2V0U1ZHRG9jdW1lbnQ7Ci0tICh2b2lkKWNvbnZlcnQxOihET01hICop
OwotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKTsKLS0gKHZvaWQpY29udmVydDQ6KERPTWQgKik7
Ci0tICh2b2lkKWNvbnZlcnQ1OihET01lICopOworLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKXZh
bHVlOworLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKXZhbHVlOworLSAodm9pZCljb252ZXJ0NDoo
RE9NZCAqKXZhbHVlOworLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKXZhbHVlOwogLSAoRE9NU1ZH
UG9pbnQgKiltdXRhYmxlUG9pbnRGdW5jdGlvbjsKIC0gKERPTVNWR1BvaW50ICopaW1tdXRhYmxl
UG9pbnRGdW5jdGlvbjsKIC0gKHZvaWQpb3JhbmdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggOGIyYmNm
MDBiMWY5NjQxM2M5MGM5MDkwMGQ1MGY4OGM4ZWFkNmQ2Mi4uM2RkMGU3YWYwY2E2NzljODFhNzZm
ZmM2MWQ0MGEzY2E2YTk1NzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC0xNDAsMTYgKzE0MCwxNiBA
QAogICAgIElNUEwtPnNldFVuc2lnbmVkU2hvcnRBdHRyKG5ld1Vuc2lnbmVkU2hvcnRBdHRyKTsK
IH0KIAotLSAobG9uZyBsb25nKUF0dHIKKy0gKGludClsb25nQXR0cgogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+YXR0cigpOwor
ICAgIHJldHVybiBJTVBMLT5sb25nQXR0cigpOwogfQogCi0tICh2b2lkKXNldEF0dHI6KGxvbmcg
bG9uZyluZXdBdHRyCistICh2b2lkKXNldExvbmdBdHRyOihpbnQpbmV3TG9uZ0F0dHIKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+c2V0QXR0
cihuZXdBdHRyKTsKKyAgICBJTVBMLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIC0g
KGxvbmcgbG9uZylsb25nTG9uZ0F0dHIKQEAgLTM0OCw5ICszNDgsNyBAQAogLSAodm9pZClzZXRB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbjooaW50KW5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VP
bkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIC0gKGludClhdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbgpAQCAtMzc5LDkgKzM3Nyw3IEBACiAtICh2b2lkKXNldFN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uOihOU1N0cmluZyAqKW5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uCiB7
CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgV2Vi
Q29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbik7CiB9CiAKIC0g
KE5TU3RyaW5nICopc3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTQ1MCw5ICs0NDYs
NyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NF
UlQobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyksIGVjKTsKLSAg
ICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
cykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXMKQEAgLTQ2OSw5ICs0NjMsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBBU1NFUlQobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMo
Y29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyksIGVjKTsK
LSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUKQEAgLTUwMiw5ICs0
OTQsNyBAQAogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBB
U1NFUlQobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBJTVBM
LT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzKGNvcmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZVJhaXNlcyksIGVjKTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAg
IElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZQpAQCAtNzM5LDIyICs3
MjksMjIgQEAKICAgICBJTVBMLT52b2lkTWV0aG9kKCk7CiB9CiAKLS0gKHZvaWQpdm9pZE1ldGhv
ZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJn
OihET01UZXN0T2JqICopb2JqQXJnCistICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczooaW50KWxv
bmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1Q
TC0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOworICAgIElN
UEwtPnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9
CiAKLS0gKGxvbmcgbG9uZylNZXRob2QKKy0gKGludClsb25nTWV0aG9kCiB7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5tZXRob2Qo
KTsKKyAgICByZXR1cm4gSU1QTC0+bG9uZ01ldGhvZCgpOwogfQogCi0tIChsb25nIGxvbmcpTWV0
aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpB
cmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKGludClsb25nTWV0aG9kV2l0aEFyZ3M6KGludCls
b25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJl
dHVybiBJTVBMLT5tZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKKyAg
ICByZXR1cm4gSU1QTC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShv
YmpBcmcpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZApAQCAtNzYzLDEwICs3NTMs
MTAgQEAKICAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZCgpKSk7CiB9
CiAKLS0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAoRE9N
VGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5n
ICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElN
UEwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpKSk7CisgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2RXaXRoQXJncyhsb25nQXJnLCBz
dHJBcmcsIGNvcmUob2JqQXJnKSkpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKW1ldGhvZFRoYXRS
ZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3M6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZwpAQCAtODEwLDEwICs4MDAsMTAgQEAKICAgICBJTVBMLT5jdXN0b21NZXRo
b2QoKTsKIH0KIAotLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBz
dHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAo
dm9pZCljdXN0b21NZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAq
KXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3Mo
QXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgSU1QTC0+Y3VzdG9tTWV0aG9kV2l0aEFy
Z3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQogCiAtICh2b2lkKWFkZEV2ZW50
TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+
KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZQpAQCAtMTAwNSwyOCArOTk1LDI4
IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKQor
LSAodm9pZCljb252ZXJ0MTooRE9NYSAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQxKGNvcmUoKSk7CisgICAgSU1Q
TC0+Y29udmVydDEoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQyOihET01iICop
CistICh2b2lkKWNvbnZlcnQyOihET01iICopdmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDIoY29yZSgpKTsKKyAgICBJ
TVBMLT5jb252ZXJ0Mihjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVydDQ6KERPTWQg
KikKKy0gKHZvaWQpY29udmVydDQ6KERPTWQgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NChjb3JlKCkpOworICAg
IElNUEwtPmNvbnZlcnQ0KGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0NTooRE9N
ZSAqKQorLSAodm9pZCljb252ZXJ0NTooRE9NZSAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQ1KGNvcmUoKSk7Cisg
ICAgSU1QTC0+Y29udmVydDUoY29yZSh2YWx1ZSkpOwogfQogCiAtIChET01TVkdQb2ludCAqKW11
dGFibGVQb2ludEZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggZjJkMWZlODEwZDFiYWVkMTc0NTZjN2IxNDAxYTk3ODY3
MWJkM2ZjMy4uZjdiOGJlMzI3YzA4NTg3OTY5YzY1N2ViNDg0YWRiOTgwOWI2YTliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAt
NTEsNyArNTEsNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgICAgICAgICAgc3RyaW5nQXR0cjsKICAgICAgICAgYXR0cmlidXRlIFtWOE1lYXN1cmVB
cz1UZXN0RmVhdHVyZV0gVGVzdE9iaiB0ZXN0T2JqQXR0cjsKIAotICAgICAgICBKUywgVjgKKyAg
ICAgICAgLy8gSlMsIFY4CiAgICAgICAgIC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0
aW9uYWwgY2FzZXMuCiAgICAgICAgIGF0dHJpYnV0ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAg
WE1MT2JqQXR0cjsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICAgICBj
cmVhdGU7CkBAIC0yMjYsMTAgKzIyNiwxMCBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFtDaGVj
a1NlY3VyaXR5Rm9yTm9kZV0gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJl
YXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBhKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0Mihp
biBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIGIpOwotICAgICAgICB2b2lk
IGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBkKTsKLSAgICAgICAgdm9pZCBj
b252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxs
U3RyaW5nXSBlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxT
dHJpbmdBcz1OdWxsXSBhIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRS
ZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRdIGIgdmFsdWUpOworICAgICAgICB2b2lkIGNv
bnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBkIHZhbHVlKTsKKyAgICAgICAgdm9p
ZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1O
dWxsU3RyaW5nXSBlIHZhbHVlKTsKIAogICAgICAgICBhdHRyaWJ1dGUgU1ZHUG9pbnQgbXV0YWJs
ZVBvaW50OwogICAgICAgICBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUG9pbnQgaW1tdXRhYmxl
UG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCmluZGV4IDUwMjQyOGE3MTAwYzVmNzE2NjNjZjVjNjkxNTE2OWQ5NzIy
MTU1MzUuLjgzOTBmMTA1ODE3MjNiMWRiY2MwZmIwNTU3ZDBhMDBiZDUyMzBhMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCkBAIC0xNjEsMTkgKzE2MSwxOSBAQCBzdGF0aWMgdm9pZCB1bnNpZ25lZFNob3J0QXR0ckF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2OAogICAgIHJl
dHVybjsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBBdHRyQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmouQXR0ci5fZ2V0Iik7CisgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5sb25nQXR0ci5fZ2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRp
Y19jYXN0PGRvdWJsZT4oaW1wLT5hdHRyKCkpKTsKKyAgICByZXR1cm4gdjhJbnRlZ2VyKGltcC0+
bG9uZ0F0dHIoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdm9pZCBBdHRyQXR0
clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
dmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMgdm9pZCBsb25nQXR0
ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmouQXR0ci5fc2V0Iik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5s
b25nQXR0ci5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKLSAgICBsb25nIGxvbmcgdiA9IHRvSW50NjQodmFsdWUpOwotICAgIGlt
cC0+c2V0QXR0cihXVEY6OmdldFB0cih2KSk7CisgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsK
KyAgICBpbXAtPnNldExvbmdBdHRyKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNDUxLDEwICs0
NTEsNyBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMbwogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgaW50IHYgPSB0b0ludDMyKHZh
bHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXAtPnNldEF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRE
T01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldEF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNDkzLDEwICs0OTAsNyBA
QCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVU
RVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOwotICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VMWShlYykpCi0gICAgICAgIHNldERPTUV4Y2Vw
dGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOworICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJuOwogfQogCkBAIC01ODIsMTMgKzU3NiwxMCBA
QCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0
aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRl
c3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAg
IGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5M
SUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgp
KTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RG
OjpnZXRQdHIodikpOwogICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhy
b3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgIHJldHVy
bjsKQEAgLTYxMSwxMSArNjAyLDggQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVl
KSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1
ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAg
IGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0
Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAg
ICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNl
dFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQs
IFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47CiB9CiAKQEAgLTY2NywxNCArNjU1LDExIEBA
IHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRy
aWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQi
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVz
dE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsK
LSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3Jp
cHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybjsKICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQ
dHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRp
b24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRl
eHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAg
ICByZXR1cm47CkBAIC0xMDY4LDMwICsxMDUzLDMwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0g
VjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0so
bG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcs
IHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJh
bWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhU
ZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
b2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9i
akFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5NZXRob2QiKTsK
KyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxvbmdNZXRob2QiKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6
TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZCgpKSk7CisgICAgcmV0
dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2QoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQog
Ci1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9u
Z01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhvZFdpdGhBcmdzIik7CisgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5sb25nTWV0aG9kV2l0aEFyZ3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgo
KSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3Mu
R2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2
NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVY
Q0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhU
ZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJl
dHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhB
cmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxv
bmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpAQCAtMTEwOCwxMCArMTA5MywxMCBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAg
cmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05f
QkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRl
c3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDogMCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5v
YmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJn
cy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3Mo
bG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUo
KSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aFNlcXVlbmNl
QXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExMzEsOCArMTExNiw4
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIHJl
dHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSwgYXJncy5HZXRJ
c29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAg
IHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9uZ0FyZyksIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKQEAgLTE1MzgsOCArMTUyMyw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAg
ICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcpOwogICAgICAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0
b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnLCBBcmcpOworICAgIEVYQ0VQ
VElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhv
ZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0x
NTYwLDggKzE1NDUsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
YXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0
b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QoQXJnKTsKKyAgICBFWENFUFRJT05fQkxP
Q0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0Fy
Zyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NDYsOCArMTczMSw4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZU1ldGhvZDFDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigp
KTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlT
U0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+
ZW5hYmxlZEF0UnVudGltZU1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBs
b25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxKGxvbmdBcmcp
OwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzU3LDggKzE3NDIsOCBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkp
OwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7
Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9u
Z0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMihsb25nQXJnKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc2OCw4ICsxNzUzLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMShsb25nQXJnKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc3OSw4ICsxNzY0LDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dE1ldGhvZDJDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAg
IHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwot
ICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25n
QXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMihsb25nQXJnKTsK
ICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgyNSw4ICsxODEwLDggQEAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENF
UFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6dG9OYXRpdmUodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQxKCk7CisgICAgRVhDRVBU
SU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4YTo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQxKHZhbHVlKTsKICAg
ICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTgzNiw4ICsxODIxLDggQEAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0MkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJ
T05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQyKCk7CisgICAgRVhDRVBUSU9O
X0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRs
ZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQyKHZhbHVlKTsKICAgICBy
ZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg0Nyw4ICsxODMyLDggQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05f
QkxPQ0soZCosICwgVjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ0KCk7CisgICAgRVhDRVBUSU9OX0JM
T0NLKGQqLCB2YWx1ZSwgVjhkOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1
cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg1OCw4ICsxODQzLDggQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RF
bm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxP
Q0soZSosICwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZlcnQ1KCk7CisgICAgRVhDRVBUSU9OX0JMT0NL
KGUqLCB2YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNvbnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTkyNCw4ICsxOTA5LDggQEAgc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RPYmpBdHRyc1tdID0gewog
ICAgIHsic2hvcnRBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNob3J0QXR0ckF0dHJHZXR0ZXIs
IFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkU2hvcnRBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScg
RXh0QXR0cjogJycpCiAgICAgeyJ1bnNpZ25lZFNob3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFs
Ojp1bnNpZ25lZFNob3J0QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25l
ZFNob3J0QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFj
Y2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAotICAgIC8vIEF0dHJpYnV0ZSAn
QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQotICAgIHsiQXR0ciIsIFRlc3RP
YmpWOEludGVybmFsOjpBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OkF0dHJBdHRy
U2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2
ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUp
LCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ2xvbmdBdHRyJyAoVHlw
ZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisgICAgeyJsb25nQXR0ciIsIFRlc3RPYmpWOElu
dGVybmFsOjpsb25nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0
dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnbG9uZ0xvbmdBdHRy
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJsb25nTG9uZ0F0dHIiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0xvbmdBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJu
YWw6OmxvbmdMb25nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJp
YnV0ZSAndW5zaWduZWRMb25nTG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAn
JykKQEAgLTIwNDAsNyArMjAyNSw3IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246
OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2JqQXR0cnNbXSA9IHsKIAogc3RhdGljIGNvbnN0IFY4
RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENhbGxiYWNrIFY4VGVzdE9iakNhbGxiYWNrc1tdID0g
ewogICAgIHsidm9pZE1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kQ2FsbGJh
Y2t9LAotICAgIHsiTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNrfSwK
KyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ01ldGhvZENhbGxiYWNr
fSwKICAgICB7Im9iak1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFj
a30sCiAgICAgeyJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjpt
ZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNrfSwKICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIs
IFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVkVmFsdWVDYWxsYmFja30sCkBAIC0yMTgwLDEx
ICsyMTY1LDExIEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
Q29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6
U2lnbmF0dXJlPiB2b2lkTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpO
ZXcoZGVzYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJnYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJndik7
CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInZvaWRNZXRob2RXaXRoQXJn
cyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0
aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2ln
bmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAg
ICBjb25zdCBpbnQgTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBNZXRob2RXaXRoQXJnc0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9
IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6
OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWdu
YXR1cmU6Ok5ldyhkZXNjLCBNZXRob2RXaXRoQXJnc0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7
Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woIk1ldGhvZFdpdGhBcmdzIiks
IHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7Cisg
ICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9uZ01ldGhvZFdpdGhBcmdzJworICAgIGNvbnN0IGlu
dCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2W2xvbmdNZXRob2RXaXRoQXJnc0FyZ2Nd
ID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpG
dW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxvbmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4
OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0aG9k
V2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibG9u
Z01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50
ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBsb25nTWV0
aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ29iak1l
dGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBvYmpNZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165050</attachid>
            <date>2012-09-20 22:34:35 -0700</date>
            <delta_ts>2012-09-26 19:04:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120921143358.patch</filename>
            <type>text/plain</type>
            <size>178379</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE5YzJkMjhhNmUxYWYx
ZmU3NjA0MGRhNGZmM2E2NWU5ZWIzZDdjNy4uYmY0NWY2YzA5MDU3MDc0YjExZjRmZGM2MmZmYzkx
YzYyZDg1MDUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwMiBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWNyZWF0ZWQgYSBu
ZXcgSURMUGFyc2VyIGJhc2VkIG9uIHRoZSBXZWJJREwgc3BlYzoKKyAgICAgICAgaHR0cDovL2Rl
di53My5vcmcvMjAwNi93ZWJhcGkvV2ViSURMLworCisgICAgICAgIEZpcnN0bHkgbWVyZ2VzIHR3
byBncmFtbWFycyAoZWRpdG9ycyBkcmFmdCBhbmQgV2ViS2l0IGN1cnJlbnQgSURMKSBhbmQKKyAg
ICAgICAgZ2VuZXJhdGVzIElETCBwYXJzZXIgYnkgdXNpbmcgcHl0aG9uIHNjcmlwdC4gVGhlIGdl
bmVyYXRlZCBwYXJzZXIgaXMKKyAgICAgICAgbW9kaWZpZWQgdG8gZ2VuZXJhdGUgdGhlIHNhbWUg
b3V0cHV0cyBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorICAgICAgICBUaGUgbmV3IElE
TFBhcnNlci5wbSBjYW4gcGFyc2UgYm90aCBXZWJJREwgZ3JhbW1hci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRlc3RlZCBieSBjb21wYXJpbmcgd2l0aCBzb3VyY2VzIGdlbmVyYXRlZCBieQor
ICAgICAgICB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtLgorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIChuZXcpOgorICAgICAgICAoYXNzZXJ0VG9r
ZW5WYWx1ZSk6CisgICAgICAgIChhc3NlcnRUb2tlblR5cGUpOgorICAgICAgICAoYXNzZXJ0VW5l
eHBlY3RlZFRva2VuKToKKyAgICAgICAgKFBhcnNlKToKKyAgICAgICAgQSBtZXRob2QgdG8gc3Rh
cnQgcGFyc2luZyBhIElETCBmaWxlLiBBcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgYXJlCisg
ICAgICAgIHRoZSBzYW1lIGFzIHRoZSBwcmV2aW91cyBJRExQYXJzZXIucG0ncyBQYXJzZSBtZXRo
b2QuCisgICAgICAgIChuZXh0VG9rZW4pOgorICAgICAgICBJbXBsZW1lbnRlZCB0byBzZWUgYSBu
ZXh0IHRva2VuLCBiZWNhdXNlIG9mIExMKDEpLgorICAgICAgICAoZ2V0VG9rZW4pOgorICAgICAg
ICBSZXR1cm5zIGN1cnJlbnQgdG9rZW4sIGFuZCB1cGRhdGUgbmV4dCBhbmQgY3VycmVudCB0b2tl
bi4KKyAgICAgICAgKGdldFRva2VuSW50ZXJuYWwpOgorICAgICAgICBBY2NvcmRpbmcgdG8gdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZGVmaW5lZCBpbiBXZWJJREwgc3BlYywgZXh0cmFjdHMKKyAg
ICAgICAgb25lIG5ldyB0b2tlbiBmcm9tIGEgdGV4dCBzdHJpbmcuIFRoZSBvcmRlciBvZiB0aGUg
cmVndWxhciBleHByZXNzaW9ucworICAgICAgICB0byBiZSB0ZXN0ZWQgaXMgaW1wb3J0YW50LCBp
LmUuICIwLiIgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXMgYSBmbG9hdAorICAgICAgICB0b2tlbiwg
YnV0IGlmIGZpcnN0bHkgY2hlY2tzIHRoZSBpbnRlZ2VyIHJlZ3VsYXIgZXhwcmVzc2lvbiwgIjAu
IiBpcworICAgICAgICBjb25zaWRlcmVkIGFzICIwIiBhbmQgIi4iLgorICAgICAgICAocGFyc2VE
ZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZSk6CisgICAgICAg
IChwYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKToKKyAgICAgICAgKHBhcnNlSW50ZXJmYWNl
KToKKyAgICAgICAgKHBhcnNlUGFydGlhbCk6CisgICAgICAgIChwYXJzZVBhcnRpYWxEZWZpbml0
aW9uKToKKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlcik6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnkpOgorICAgICAgICAocGFy
c2VEaWN0aW9uYXJ5TWVtYmVyKToKKyAgICAgICAgKHBhcnNlUGFydGlhbERpY3Rpb25hcnkpOgor
ICAgICAgICAocGFyc2VEZWZhdWx0VmFsdWUpOgorICAgICAgICAocGFyc2VFeGNlcHRpb24pOgor
ICAgICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXJzKToKKyAgICAgICAgKHBhcnNlRW51bSk6Cisg
ICAgICAgIChwYXJzZUVudW1WYWx1ZUxpc3QpOgorICAgICAgICAocGFyc2VDYWxsYmFja1Jlc3Qp
OgorICAgICAgICAocGFyc2VUeXBlZGVmKToKKyAgICAgICAgKHBhcnNlSW1wbGVtZW50c1N0YXRl
bWVudCk6CisgICAgICAgIChwYXJzZUNvbnN0KToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6
CisgICAgICAgIChwYXJzZUJvb2xlYW5MaXRlcmFsKToKKyAgICAgICAgKHBhcnNlRmxvYXRMaXRl
cmFsKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU2VyaWFsaXplcik6CisgICAgICAgIChwYXJzZVNlcmlhbGl6YXRpb25QYXR0
ZXJuKToKKyAgICAgICAgKHBhcnNlUXVhbGlmaWVyKToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRl
T3JPcGVyYXRpb25SZXN0KToKKyAgICAgICAgKHBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKHBh
cnNlQXR0cmlidXRlUmVzdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IpOgor
ICAgICAgICAocGFyc2VTcGVjaWFsT3BlcmF0aW9uKToKKyAgICAgICAgKHBhcnNlU3BlY2lhbCk6
CisgICAgICAgIChwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNl
SXRlcmF0b3JSZXN0KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9y
T2JqZWN0KToKKyAgICAgICAgKHBhcnNlT3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUFy
Z3VtZW50cyk6CisgICAgICAgIChwYXJzZUFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlT3B0aW9u
YWxPclJlcXVpcmVkQXJndW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWUpOgorICAg
ICAgICAocGFyc2VFeGNlcHRpb25NZW1iZXIpOgorICAgICAgICAocGFyc2VFeGNlcHRpb25GaWVs
ZCk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgIChwYXJz
ZUV4dGVuZGVkQXR0cmlidXRlKToKKyAgICAgICAgKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
Mik6CisgICAgICAgIChwYXJzZUFyZ3VtZW50TmFtZUtleXdvcmQpOgorICAgICAgICAocGFyc2VU
eXBlKToKKyAgICAgICAgKHBhcnNlU2luZ2xlVHlwZSk6CisgICAgICAgIChwYXJzZVVuaW9uVHlw
ZSk6CisgICAgICAgIChwYXJzZU5vbkFueVR5cGUpOgorICAgICAgICAocGFyc2VQcmltaXRpdmVU
eXBlKToKKyAgICAgICAgKHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlKToKKyAgICAgICAgKHBh
cnNlRmxvYXRUeXBlKToKKyAgICAgICAgKHBhcnNlVW5zaWduZWRJbnRlZ2VyVHlwZSk6CisgICAg
ICAgIChwYXJzZU51bGwpOgorICAgICAgICAocGFyc2VHZXQpOgorICAgICAgICAocGFyc2VJbmhl
cml0c0dldHRlcik6CisgICAgICAgIChwYXJzZVNldEdldFJhaXNlcyk6CisgICAgICAgIChwYXJz
ZUdldFJhaXNlczIpOgorICAgICAgICAocGFyc2VTZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VT
ZXRSYWlzZXMzKToKKyAgICAgICAgKHBhcnNlRGVmaW5pdGlvbk9sZCk6CisgICAgICAgIChwYXJz
ZU1vZHVsZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZU9sZCk6CisgICAgICAgIChwYXJzZUlu
dGVyZmFjZU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZURpY3Rpb25hcnlPbGQpOgorICAgICAg
ICAocGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uT2xk
KToKKyAgICAgICAgKHBhcnNlRW51bU9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3Bl
cmF0aW9uT3JJdGVyYXRvck9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9u
UmVzdE9sZCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9sZCk6CisgICAgICAgIChwYXJzZUlu
KToKKyAgICAgICAgKHBhcnNlT3B0aW9uYWxTZW1pY29sb24pOgorICAgICAgICAoYXBwbHlNZW1i
ZXJMaXN0KToKKyAgICAgICAgKGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgorICAgICAgICAo
V2ViRE9NVGVzdE9iajo6bG9uZ0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TG9u
Z0F0dHIpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdzKToKKyAg
ICAgICAgKFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRob2QpOgorICAgICAgICAoV2ViRE9NVGVzdE9i
ajo6bG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om9iak1ldGhv
ZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQxKToKKyAgICAgICAg
KFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZl
cnQzKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KToKKyAgICAgICAgKFdlYkRP
TVRlc3RPYmo6OmNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
bG9uZ19tZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfb2Jq
X21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0
MSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfY29udmVydDMpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jb252ZXJ0NCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfYXR0cik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9sb25nX2F0dHIpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0MSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0NCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ1KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nQXR0cl0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldExvbmdBdHRyOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHZv
aWRNZXRob2RXaXRoQXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGxvbmdNZXRob2RdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBsb25nTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJn
czpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGN1c3RvbU1ldGhvZFdp
dGhBcmdzOnN0ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDE6
XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDI6XSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogY29udmVydDM6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDQ6XSk6Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogY29udmVydDU6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBSZW1vdmVkIHRoZSBsaW5lIHdoaWNoIGhh
cyBvbmx5ICJKU0MsIFY4Ii4KKyAgICAgICAgQWRkZWQgYXJndW1lbnQgdG8gY29udmVydDEsIC4u
LiBjb252ZXJ0NS4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJH
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdBdHRyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhv
ZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6Om1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRNZXRob2QyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0TWV0aG9kMUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29u
dGV4dE1ldGhvZDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDFDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6Y29udmVydDVDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKwogMjAxMi0wOS0yMCAgWW9zaGlmdW1p
IElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtQbGF0Zm9ybV0gVGhlcmUg
YXJlIG1lbW9yeSBsZWFrIGluIExvY2FsZUlDVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETFBhcnNlci5wbQppbmRleCAwNTdjMDNkNmM2YTJiOTFmOTNiZGVhNWMwMmI3NDk2
MWJmYjg5ZDQxLi42MzRiN2RmMDgwMmQwNWVmOWI5NTRkYzcwNWI0MTMwNzEzMGFhOWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpAQCAtMjEsNDUx
ICsyMSwyMzA2IEBACiAKIHBhY2thZ2UgSURMUGFyc2VyOwogCit1c2UgQ2xhc3M6OlN0cnVjdDsK
KwogdXNlIHN0cmljdDsKLXVzZSByZSAnZXZhbCc7CiAKIHVzZSBJUEM6Ok9wZW4yOwogdXNlIElE
TFN0cnVjdHVyZTsKIHVzZSBwcmVwcm9jZXNzb3I7CiAKLXVzZSBjb25zdGFudCBNT0RFX1VOREVG
ICAgID0+IDA7ICMgRGVmYXVsdCBtb2RlLgotCi11c2UgY29uc3RhbnQgTU9ERV9NT0RVTEUgID0+
IDEwOyAjICdtb2R1bGUnIHNlY3Rpb24KLXVzZSBjb25zdGFudCBNT0RFX0lOVEVSRkFDRSAgPT4g
MTE7ICMgJ2ludGVyZmFjZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1PREVfRVhDRVBUSU9OICA9
PiAxMjsgIyAnZXhjZXB0aW9uJyBzZWN0aW9uCit1c2UgY29uc3RhbnQgU3RyaW5nVG9rZW4gPT4g
MDsKK3VzZSBjb25zdGFudCBJbnRlZ2VyVG9rZW4gPT4gMTsKK3VzZSBjb25zdGFudCBGbG9hdFRv
a2VuID0+IDI7Cit1c2UgY29uc3RhbnQgSWRlbnRpZmllclRva2VuID0+IDM7Cit1c2UgY29uc3Rh
bnQgT3RoZXJUb2tlbiA9PiA0OwordXNlIGNvbnN0YW50IEVtcHR5VG9rZW4gPT4gNTsKKworc3Ry
dWN0KCBUb2tlbiA9PiB7CisgICAgdHlwZSA9PiAnJCcsICMgdHlwZSBvZiB0b2tlbgorICAgIHZh
bHVlID0+ICckJyAjIHZhbHVlIG9mIHRva2VuCit9KTsKKworc3ViIG5ldyB7CisgICAgbXkgJGNs
YXNzID0gc2hpZnQ7CisKKyAgICBteSAkZW1wdHlUb2tlbiA9IFRva2VuLT5uZXcoKTsKKyAgICAk
ZW1wdHlUb2tlbi0+dHlwZShFbXB0eVRva2VuKTsKKyAgICAkZW1wdHlUb2tlbi0+dmFsdWUoImVt
cHR5Iik7CisKKyAgICBteSAkc2VsZiA9IHsKKyAgICAgICAgRG9jdW1lbnRDb250ZW50ID0+ICIi
LAorICAgICAgICBFbXB0eVRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBOZXh0VG9rZW4g
PT4gJGVtcHR5VG9rZW4sCisgICAgICAgIFRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBM
aW5lID0+ICIiLAorICAgICAgICBMaW5lTnVtYmVyID0+IDEKKyAgICB9OworICAgIHJldHVybiBi
bGVzcyAkc2VsZiwgJGNsYXNzOworfQogCi0jIEhlbHBlciB2YXJpYWJsZXMKLW15IEB0ZW1wb3Jh
cnlDb250ZW50Oworc3ViIGFzc2VydFRva2VuVmFsdWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR2YWx1ZSA9IHNoaWZ0OworICAgIG15
ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1zZyA9ICJOZXh0IHRva2VuIHNob3VsZCBiZSAiIC4g
JHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xp
bmV9OworICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyAuPSAiIElETFBh
cnNlci5wbToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnIHVubGVzcyAkdG9rZW4tPnZh
bHVlKCkgZXEgJHZhbHVlOworfQogCi1teSAkcGFyc2VNb2RlOwotbXkgJHByZXNlcnZlZFBhcnNl
TW9kZTsKK3N1YiBhc3NlcnRUb2tlblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgZGllICJOZXh0
IHRva2VuJ3MgdHlwZSBzaG91bGQgYmUgIiAuICR0eXBlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnR5
cGUoKSAuICIgYXQgIiAuICRzZWxmLT57TGluZX0gdW5sZXNzICR0b2tlbi0+dHlwZSgpIGVxICR0
eXBlOworfQogCi1teSAkYmVRdWlldDsgIyBTaG91bGQgbm90IGRpc3BsYXkgYW55dGhpbmcgb24g
U1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9sZCB0aGUgcmVzdWx0aW5nICdpZGxEb2N1
bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBwYXJzZSBvbmx5IGVub3VnaCB0byBwb3B1
bGF0ZSBwYXJlbnRzIGxpc3QKK3N1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4KK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hp
ZnQ7CisgICAgbXkgJG1zZyA9ICJVbmV4cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIg
LiAkc2VsZi0+e0xpbmV9OworICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1z
ZyAuPSAiIElETFBhcnNlci5wbToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnOworfQog
Ci1zdWIgSW5pdGlhbGl6ZUdsb2JhbERhdGEKK3N1YiBQYXJzZQogewotICAgIEB0ZW1wb3JhcnlD
b250ZW50ID0gIiI7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZmlsZU5hbWUgPSBz
aGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworICAgIG15ICRwcmVwcm9jZXNzb3IgPSBz
aGlmdDsKKworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOworCisgICAgbXkgQGxpbmVzID0gYXBw
bHlQcmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CisgICAg
JHNlbGYtPntMaW5lfSA9ICRsaW5lc1swXTsKKyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0g
PSBqb2luKCcgJywgQGxpbmVzKTsKKworICAgICRzZWxmLT5nZXRUb2tlbigpOworICAgIGV2YWwg
eworICAgICAgICBteSAkcmVzdWx0ID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbnMoKTsKKyAgICAg
ICAgcHVzaChAZGVmaW5pdGlvbnMsIEB7JHJlc3VsdH0pOworCisgICAgICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRuZXh0
LCBFbXB0eVRva2VuKTsKKyAgICB9OworICAgIGRpZSAkQCAuICIgaW4gJGZpbGVOYW1lIiBpZiAk
QDsKKworICAgIGRpZSAiTm8gZG9jdW1lbnQgZm91bmQiIHVubGVzcyBAZGVmaW5pdGlvbnM7CisK
KyAgICBteSAkZG9jdW1lbnQ7CisgICAgaWYgKCQjZGVmaW5pdGlvbnMgPT0gMCAmJiByZWYoJGRl
ZmluaXRpb25zWzBdKSBlcSAiaWRsRG9jdW1lbnQiKSB7CisgICAgICAgICRkb2N1bWVudCA9ICRk
ZWZpbml0aW9uc1swXTsKKyAgICB9IGVsc2UgeworICAgICAgICAkZG9jdW1lbnQgPSBuZXcgaWRs
RG9jdW1lbnQoKTsKKyAgICAgICAgJGRvY3VtZW50LT5tb2R1bGUoIiIpOworICAgICAgICBwdXNo
KEB7JGRvY3VtZW50LT5jbGFzc2VzfSwgQGRlZmluaXRpb25zKTsKKyAgICB9CiAKLSAgICAkcGFy
c2VNb2RlID0gTU9ERV9VTkRFRjsKLSAgICAkcHJlc2VydmVkUGFyc2VNb2RlID0gTU9ERV9VTkRF
RjsKKyAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CisgICAgcmV0dXJuICRkb2N1
bWVudDsKK30KIAotICAgICRkb2N1bWVudCA9IDA7Ci0gICAgJHBhcmVudHNPbmx5ID0gMDsKK3N1
YiBuZXh0VG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIHJldHVybiAkc2VsZi0+
e05leHRUb2tlbn07CiB9CiAKLSMgRGVmYXVsdCBDb25zdHJ1Y3Rvcgotc3ViIG5ldworc3ViIGdl
dFRva2VuCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRyZWZlcmVuY2UgPSB7
IH07CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICAkc2VsZi0+e1Rva2VufSA9ICRzZWxmLT57
TmV4dFRva2VufTsKKyAgICAkc2VsZi0+e05leHRUb2tlbn0gPSAkc2VsZi0+Z2V0VG9rZW5JbnRl
cm5hbCgpOworICAgIHJldHVybiAkc2VsZi0+e1Rva2VufTsKK30KIAotICAgIEluaXRpYWxpemVH
bG9iYWxEYXRhKCk7CitteSAkd2hpdGVzcGFjZVRva2VuUGF0dGVybiA9ICdeW1x0XG5cciBdKltc
blxyXSc7CitteSAkZmxvYXRUb2tlblBhdHRlcm4gPSAnXigtPygoWzAtOV0rXC5bMC05XSp8WzAt
OV0qXC5bMC05XSspKFtFZV1bKy1dP1swLTldKyk/fFswLTldK1tFZV1bKy1dP1swLTldKykpJzsK
K215ICRpbnRlZ2VyVG9rZW5QYXR0ZXJuID0gJ14oLT9bMS05XVswLTldKnwtPzBbWHhdWzAtOUEt
RmEtZl0rfC0/MFswLTddKiknOworbXkgJHN0cmluZ1Rva2VuUGF0dGVybiA9ICdeKFwiW15cIl0q
XCIpJzsKK215ICRpZGVudGlmaWVyVG9rZW5QYXR0ZXJuID0gJ14oW0EtWl9hLXpdWzAtOUEtWl9h
LXpdKiknOworbXkgJG90aGVyVG9rZW5QYXR0ZXJuID0gJ14oOjp8XC5cLlwufFteXHRcblxyIDAt
OUEtWl9hLXpdKSc7CiAKLSAgICAkYmVRdWlldCA9IHNoaWZ0Oworc3ViIGdldFRva2VuSW50ZXJu
YWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworCisgICAgaWYgKCRzZWxmLT57RG9jdW1lbnRD
b250ZW50fSA9fiAvJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiBzLygkd2hpdGVzcGFjZVRva2VuUGF0dGVybikvLzsKKyAgICAg
ICAgbXkgJHNraXBwZWQgPSAkMTsKKyAgICAgICAgJHNlbGYtPntMaW5lTnVtYmVyfSsrIHdoaWxl
ICgkc2tpcHBlZCA9fiAvXG4vZyk7CisgICAgICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVu
dH0gPX4gL14oW15cblxyXSspLykgeworICAgICAgICAgICAgJHNlbGYtPntMaW5lfSA9ICRzZWxm
LT57TGluZU51bWJlcn0gLiAiOiIgLiAkMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICRzZWxmLT57TGluZX0gPSAiVW5rbm93biI7CisgICAgICAgIH0KKyAgICB9CisgICAgJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IHMvXihbXHRcblxyIF0rKS8vOworICAgIGlmICgkc2VsZi0+
e0RvY3VtZW50Q29udGVudH0gZXEgIiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT57RW1wdHlU
b2tlbn07CisgICAgfQogCi0gICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7Ci0gICAgcmV0
dXJuICRyZWZlcmVuY2U7CisgICAgbXkgJHRva2VuID0gVG9rZW4tPm5ldygpOworICAgIGlmICgk
c2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyRmbG9hdFRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHRva2VuLT50eXBlKEZsb2F0VG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsK
KyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJGZsb2F0VG9rZW5QYXR0ZXJu
Ly87CisgICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2VsZi0+e0RvY3Vt
ZW50Q29udGVudH0gPX4gLyRpbnRlZ2VyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4t
PnR5cGUoSW50ZWdlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAg
ICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRpbnRlZ2VyVG9rZW5QYXR0ZXJuLy87Cisg
ICAgICAgIHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29u
dGVudH0gPX4gLyRzdHJpbmdUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShT
dHJpbmdUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+
e0RvY3VtZW50Q29udGVudH0gPX4gcy8kc3RyaW5nVG9rZW5QYXR0ZXJuLy87CisgICAgICAgIHJl
dHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4g
LyRpZGVudGlmaWVyVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkdG9rZW4tPnR5cGUoSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57
RG9jdW1lbnRDb250ZW50fSA9fiBzLyRpZGVudGlmaWVyVG9rZW5QYXR0ZXJuLy87CisgICAgICAg
IHJldHVybiAkdG9rZW47CisgICAgfQorICAgIGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0g
PX4gLyRvdGhlclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKE90aGVyVG9r
ZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVu
dENvbnRlbnR9ID1+IHMvJG90aGVyVG9rZW5QYXR0ZXJuLy87CisgICAgICAgIHJldHVybiAkdG9r
ZW47CisgICAgfQorICAgIGRpZSAiRmFpbGVkIGluIHRva2VuaXppbmcgYXQgIiAuICRzZWxmLT57
TGluZX07CiB9CiAKLSMgUmV0dXJucyB0aGUgcGFyc2VkICdpZGxEb2N1bWVudCcKLXN1YiBQYXJz
ZQorbXkgJG5leHRBdHRyaWJ1dGVPbGRfMSA9ICdeKGF0dHJpYnV0ZXxpbmhlcml0fHJlYWRvbmx5
KSQnOworbXkgJG5leHRQcmltaXRpdmVUeXBlXzEgPSAnXihpbnR8bG9uZ3xzaG9ydHx1bnNpZ25l
ZCkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8yID0gJ14oZG91YmxlfGZsb2F0fHVucmVzdHJp
Y3RlZCkkJzsKK215ICRuZXh0U2V0R2V0UmFpc2VzMl8xID0gJ14oO3xnZXRyYWlzZXN8c2V0cmFp
c2VzKSQnOworbXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58aW50fGxvbmd8b2Jq
ZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkk
JzsKK215ICRuZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxp
bnR8bG9uZ3xvY3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dElu
dGVyZmFjZU1lbWJlck9sZF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8
YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRl
cnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2Vx
dWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJp
Y3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNl
T3JPYmplY3RfMSA9ICdeKDt8PSkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0
ZXJhdG9yXzEgPSAnXihzdGF0aWN8c3RyaW5naWZpZXIpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9y
T3BlcmF0aW9uT3JJdGVyYXRvcl8yID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxh
bnl8Ym9vbGVhbnxieXRlfGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGludHxs
ZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVz
dHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRVbnJlc3RyaWN0ZWRGbG9hdFR5cGVf
MSA9ICdeKGRvdWJsZXxmbG9hdCkkJzsKK215ICRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18x
ID0gJ14oLHxcXSkkJzsKK215ICRuZXh0RXhjZXB0aW9uRmllbGRfMSA9ICdeKFwofEJ5dGVTdHJp
bmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8
b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215
ICRuZXh0VHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxi
eXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5y
ZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRTcGVjaWFsc18xID0gJ14oY3JlYXRvcnxk
ZWxldGVyfGdldHRlcnxsZWdhY3ljYWxsZXJ8c2V0dGVyKSQnOworbXkgJG5leHREZWZpbml0aW9u
c18xID0gJ14oY2FsbGJhY2t8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxpbnRlcmZhY2V8cGFy
dGlhbHx0eXBlZGVmKSQnOworbXkgJG5leHRFeGNlcHRpb25NZW1iZXJzXzEgPSAnXihcKHxCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8Y29uc3R8ZG91YmxlfGZs
b2F0fGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3Ry
aWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEF0dHJpYnV0ZVJlc3RfMSA9ICdeKGF0dHJpYnV0
ZXxyZWFkb25seSkkJzsKK215ICRuZXh0U2luZ2xlVHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01T
dHJpbmd8RGF0ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3Rl
dHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEdldF8x
ID0gJ14oO3xnZXRyYWlzZXN8Z2V0dGVyfHNldHJhaXNlc3xzZXR0ZXIpJCc7CitteSAkbmV4dEFy
Z3VtZW50TmFtZV8xID0gJ14oYXR0cmlidXRlfGNhbGxiYWNrfGNvbnN0fGNyZWF0b3J8ZGVsZXRl
cnxkaWN0aW9uYXJ5fGVudW18ZXhjZXB0aW9ufGdldHRlcnxpbXBsZW1lbnRzfGluaGVyaXR8aW50
ZXJmYWNlfGxlZ2FjeWNhbGxlcnxwYXJ0aWFsfHNlcmlhbGl6ZXJ8c2V0dGVyfHN0YXRpY3xzdHJp
bmdpZmllcnx0eXBlZGVmfHVucmVzdHJpY3RlZCkkJzsKK215ICRuZXh0Q29uc3RWYWx1ZV8xID0g
J14oZmFsc2V8dHJ1ZSkkJzsKK215ICRuZXh0Q29uc3RWYWx1ZV8yID0gJ14oLXxJbmZpbml0eXxO
YU4pJCc7CitteSAkbmV4dERlZmluaXRpb25fMSA9ICdeKGNhbGxiYWNrfGludGVyZmFjZSkkJzsK
K215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVj
dHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215
ICRuZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xID0gJ14oaW50fGxvbmd8c2hvcnQpJCc7CitteSAk
bmV4dEludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxm
bG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJl
YWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmll
cnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0RGVmYXVsdFZhbHVlXzEg
PSAnXigtfEluZmluaXR5fE5hTnxmYWxzZXxudWxsfHRydWUpJCc7CisKK3N1YiBwYXJzZURlZmlu
aXRpb25zCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRmaWxlTmFtZSA9IHNo
aWZ0OwotICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7Ci0gICAgbXkgJHByZXByb2Nlc3NvciA9IHNo
aWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGRlZmluaXRpb247CisgICAg
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAg
ICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbigkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbnNfMS8pIHsKKyAg
ICAgICAgICAgICRkZWZpbml0aW9uID0gJHNlbGYtPnBhcnNlRGVmaW5pdGlvbk9sZCgpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZGVmaW5lZCAoJGRlZmluaXRpb24pKSB7CisgICAgICAgICAgICBwdXNoKEBkZWZpbml0aW9ucywg
JGRlZmluaXRpb24pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGRlZmluaXRpb25z
OworfQogCi0gICAgcHJpbnQgIiB8ICoqKiBTdGFydGluZyB0byBwYXJzZSAkZmlsZU5hbWUuLi5c
biB8XG4iIHVubGVzcyAkYmVRdWlldDsKLSAgICBteSBAZG9jdW1lbnRDb250ZW50ID0gYXBwbHlQ
cmVwcm9jZXNzb3IoJGZpbGVOYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7CitzdWIgcGFy
c2VEZWZpbml0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICBteSAkZGF0YUF2YWlsYWJsZSA9IDA7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dERlZmluaXRpb25fMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxi
YWNrT3JJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZVBhcnRpYWwoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZURp
Y3Rpb25hcnkoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhj
ZXB0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFbnVtKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5
cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlZGVmKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICMgU2ltcGxlIElE
TCBQYXJzZXIgKHRtKQotICAgIGZvcmVhY2ggKEBkb2N1bWVudENvbnRlbnQpIHsKLSAgICAgICAg
bXkgJG5ld1BhcnNlTW9kZSA9ICRvYmplY3QtPkRldGVybWluZVBhcnNlTW9kZSgkXyk7CitzdWIg
cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgaWYgKCRuZXdQYXJz
ZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgaWYgKCRkYXRhQXZhaWxhYmxlIGVx
IDApIHsKLSAgICAgICAgICAgICAgICAkZGF0YUF2YWlsYWJsZSA9IDE7ICMgU3RhcnQgbm9kZSBi
dWlsZGluZy4uLgotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkb2JqZWN0
LT5Qcm9jZXNzU2VjdGlvbigpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxs
YmFjayIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJjYWxsYmFjayIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNh
bGxiYWNrUmVzdE9ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRhdGEgc3RyZWFtIG1vZGUuLi4KLSAgICAg
ICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAgICAgICAgICAgJHBhcnNl
TW9kZSA9ICRuZXdQYXJzZU1vZGU7Ci0gICAgICAgIH0KK3N1YiBwYXJzZUNhbGxiYWNrUmVzdE9y
SW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgcHVzaChAdGVtcG9yYXJ5Q29udGVudCwgJF8p
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJm
YWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxi
YWNrUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgIyBD
aGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyByZW1haW5pbmcgdG8gcGFyc2UuLi4KLSAgICBpZiAo
KCRwYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgYW5kICgkI3RlbXBvcmFyeUNvbnRlbnQgPiAwKSkg
ewotICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOworc3ViIHBhcnNlSW50ZXJmYWNl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0g
bmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiaW50ZXJmYWNlIiwgX19MSU5FX18pOworICAgICAgICBteSAkaW50ZXJmYWNl
TmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJGludGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRh
dGFOb2RlLT5uYW1lKCRpbnRlcmZhY2VOYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICBwdXNo
KEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9f
TElORV9fKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRl
cmZhY2VNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJl
ckxpc3QoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTWVtYmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
ICAgIHJldHVybiAkZGF0YU5vZGU7CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHByaW50ICIgfCAqKiog
RmluaXNoZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1aWV0OwotIAotICAgICRkb2N1bWVudC0+
ZmlsZU5hbWUoJGZpbGVOYW1lKTsKK3N1YiBwYXJzZVBhcnRpYWwKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIHJl
dHVybiAkZG9jdW1lbnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInBhcnRpYWwiLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGVmaW5pdGlvbigkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgUGFyc2VNb2R1bGUKK3N1YiBwYXJzZVBhcnRp
YWxEZWZpbml0aW9uCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VQYXJ0aWFsSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNlCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBwcmludCAi
IHwtIFRyeWluZyB0byBwYXJzZSBtb2R1bGUuLi5cbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIHBh
cnNlSW50ZXJmYWNlTWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGlu
dGVyZmFjZU1lbWJlcnMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVyOworCisg
ICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsK
KyAgICAgICAgICAgICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1i
ZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFj
ZU1lbWJlcnNfMS8pIHsKKyAgICAgICAgICAgICRpbnRlcmZhY2VNZW1iZXIgPSAkc2VsZi0+cGFy
c2VJbnRlcmZhY2VNZW1iZXJPbGQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxh
c3Q7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgJGludGVyZmFjZU1lbWJlcikgewor
ICAgICAgICAgICAgcHVzaChAaW50ZXJmYWNlTWVtYmVycywgJGludGVyZmFjZU1lbWJlcik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAaW50ZXJmYWNlTWVtYmVyczsKK30KIAotICAg
IG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotICAgICRkYXRhID1+IC8k
SURMU3RydWN0dXJlOjptb2R1bGVTZWxlY3Rvci87CitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSBzaGlmdDsKIAotICAgIG15ICRtb2R1bGVOYW1lID0gKGRlZmluZWQoJDEpID8gJDEgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAkZGF0YU5vZGUtPm1v
ZHVsZSgkbW9kdWxlTmFtZSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
SW50ZXJmYWNlTWVtYmVyT2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KIAotICAgIHByaW50ICIgIHwtLS0tPiBNb2R1bGU7IE5BTUUgXCIkbW9kdWxlTmFt
ZVwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZURpY3Rpb25hcnkKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5IiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18p
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIGR1bXBFeHRlbmRlZEF0dHJp
YnV0ZXMKK3N1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXJzCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNo
aWZ0OwotICAgIG15ICRhdHRycyA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAg
ICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOwor
ICAgICAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgfSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAg
ICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJPbGQoKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9Cit9CiAKLSAgICBpZiAoISV7
JGF0dHJzfSkgewotICAgICAgICByZXR1cm4gIiI7CitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVy
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VEZWZhdWx0KCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBteSBAdGVtcDsKLSAgICB3aGlsZSAoKG15
ICRuYW1lLCBteSAkdmFsdWUpID0gZWFjaCgleyRhdHRyc30pKSB7Ci0gICAgICAgIHB1c2goQHRl
bXAsICIkbmFtZT0kdmFsdWUiKTsKK3N1YiBwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIsIF9fTElORV9f
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5
TWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICByZXR1cm4gJHBhZFN0ciAuICJbIiAuIGpvaW4oIiwgIiwgQHRlbXApIC4g
Il0iOworc3ViIHBhcnNlRGVmYXVsdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Ij0iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VEZWZhdWx0VmFsdWUo
KTsKKyAgICB9CiB9CiAKLXN1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworc3ViIHBhcnNlRGVm
YXVsdFZhbHVlCiB7Ci0gICAgbXkgJHN0ciA9IHNoaWZ0OwotICAgICRzdHIgPX4gcy9cW1xzKigu
KilccypcXS8kMS9nOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tlbiB8fCAk
bmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRE
ZWZhdWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNvbnN0VmFsdWUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICBteSAlYXR0cnMgPSAoKTsKK3N1YiBwYXJzZUV4Y2VwdGlvbgoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJl
eGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlv
biIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk5hbWVUb2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRleGNlcHRpb25OYW1l
VG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkZXhjZXB0
aW9uTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigx
KTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5o
ZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0g
JHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAg
ICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGV4Y2VwdGlvbk1lbWJlcnMpOworICAg
ICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICB3aGlsZSAoJHN0ciAhfiAvXlxzKiQvKSB7Ci0gICAgICAgICMgUGFyc2UgbmFtZQotICAgICAg
ICBpZiAoJHN0ciAhfiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgIGRpZSgiSW52YWxp
ZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgIH0KLSAgICAgICAgbXkg
JG5hbWUgPSAkMTsKLSAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRdKykvLzsKLQotICAgICAg
ICBpZiAoJHN0ciA9fiAvXlxzKj0vKSB7Ci0gICAgICAgICAgICAkc3RyID1+IHMvXlxzKj0vLzsK
LSAgICAgICAgICAgIGlmICgkbmFtZSBlcSAiTmFtZWRDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAg
ICAgICAgICAjIFBhcnNlICc9JyBuYW1lICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAg
ICAgICAgICBteSAkY29uc3RydWN0b3JOYW1lOwotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+
IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JOYW1l
ID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFtcd1xkXSspLy87Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlk
IGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICAgICAgICAg
IyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAgICAgICAgICRzdHIg
PX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14pXSop
XCksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRzaWduYXR1cmUgPSAkMTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICRzaWduYXR1cmUgPX4gcy9eKC4qPylccyokLyQxLzsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIg
PT4gJGNvbnN0cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gJHNpZ25hdHVyZX07Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0
ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAgICAg
ICAgICAkYXR0cnN7JG5hbWV9ID0geyJDb25zdHJ1Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5h
bWUsICJTaWduYXR1cmUiID0+ICIifTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15c
cyosPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGRp
ZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAjIFBhcnNlICc9JyB2
YWx1ZSAnLCc/Ci0gICAgICAgICAgICAgICAgaWYgKCRzdHIgPX4gL15ccyooW14sXSopLD8vKSB7
Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAg
ICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14oLio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAg
ICAgICAkc3RyID1+IHMvXlxzKihbXixdKiksPy8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICck
c3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVs
c2lmICgkc3RyID1+IC9eXHMqXCgvKSB7Ci0gICAgICAgICAgICAjIFBhcnNlICcoJyBhcmd1bWVu
dHMgJyknICcsJz8KLSAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqXCgvLzsKLSAgICAgICAgICAg
IGlmICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRu
YW1lfSA9ICQxOwotICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyok
LyQxLzsKLSAgICAgICAgICAgICAgICAkc3RyID1+IHMvXihbXildKilcKSw/Ly87Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRy
aWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzaWYgKCRzdHIg
PX4gL15ccyosPy8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJycgfCAnLCcKLSAgICAgICAgICAg
IGlmICgkbmFtZSBlcSAiQ29uc3RydWN0b3IiKSB7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRu
YW1lfSA9ICIiOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkYXR0cnN7
JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkciOworc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVycwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG1lbWJlcnMgPSAoKTsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0RXhjZXB0aW9uTWVtYmVyc18xLykgeworICAgICAgICAgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1w
dHkoKTsKKyAgICAgICAgICAgICNteSAkbWVtYmVyID0gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVt
YmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAgICAgbXkgJG1lbWJlciA9ICRz
ZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgICAgIGlmIChkZWZpbmVkICgkbWVtYmVyKSkgeworICAgICAgICAgICAgICAgIHB1c2goQG1l
bWJlcnMsICRtZW1iZXIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgJHN0ciA9fiBzL15c
cyosPy8vOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKKyAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0K
ICAgICB9CisgICAgcmV0dXJuIFxAbWVtYmVyczsKK30KKworc3ViIHBhcnNlSW5oZXJpdGFuY2UK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBwYXJlbnQgPSAoKTsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
OiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI6IiwgX19MSU5FX18pOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgIHB1c2goQHBhcmVudCwgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgIyBNdWx0
aXBsZSBpbmhlcml0YW5jZT8KKyAgICAgICAgcHVzaChAcGFyZW50LCBAeyRzZWxmLT5wYXJzZUlk
ZW50aWZpZXJzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAcGFyZW50OworfQorCitzdWIgcGFy
c2VFbnVtCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZW51bSIsIF9fTElORV9fKTsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2Vu
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7
IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHJl
dHVybiBcJWF0dHJzOworc3ViIHBhcnNlRW51bVZhbHVlTGlzdAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgU3RyaW5nVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VF
bnVtVmFsdWVzKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi1zdWIgcGFyc2VQ
YXJhbWV0ZXJzCitzdWIgcGFyc2VFbnVtVmFsdWVzCiB7Ci0gICAgbXkgJG5ld0RhdGFOb2RlID0g
c2hpZnQ7Ci0gICAgbXkgJG1ldGhvZFNpZ25hdHVyZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlRW51bVZhbHVlcygpOworICAgIH0KK30KIAotICAgICMgU3BsaXQgYXJndW1lbnRzIGF0IGNv
bW1hcyBidXQgb25seSBpZiB0aGUgY29tbWEKLSAgICAjIGlzIG5vdCB3aXRoaW4gYXR0cmlidXRl
IGJyYWNrZXRzLCBleHByZXNzZWQgaGVyZQotICAgICMgYXMgYmVpbmcgZm9sbG93ZWQgYnkgYSAn
XScgd2l0aG91dCBhIHByZWNlZGluZyAnWycuCi0gICAgIyBOb3RlIHRoYXQgdGhpcyBhc3N1bWVz
IHRoYXQgYXR0cmlidXRlcyBkb24ndCBuZXN0LgotICAgIG15IEBwYXJhbXMgPSBzcGxpdCgvLCg/
IVteW10qXF0pLywgJG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgZm9yZWFjaCAoQHBhcmFtcykgewot
ICAgICAgICBteSAkbGluZSA9ICRfOworc3ViIHBhcnNlQ2FsbGJhY2tSZXN0Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
QXJndW1lbnRMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNl
UGFyYW1ldGVyU2VsZWN0b3IvOwotICAgICAgICBteSAkcGFyYW1EaXJlY3Rpb24gPSAkMTsKLSAg
ICAgICAgbXkgJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDIpID8gJDIgOiAi
ICIpOyBjaG9wKCRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIG15ICRwYXJhbVR5
cGUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRs
aW5lXG4pIikpOwotICAgICAgICBteSAkcGFyYW1UeXBlU3VmZml4ID0gZGVmaW5lZCgkNCkgPyAk
NCA6ICIiOwotICAgICAgICBteSAkcGFyYW1OYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKK3N1YiBwYXJzZVR5cGVkZWYK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
VHlwZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigp
LCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQogCi0gICAgICAgIG15ICRpc051bGxhYmxlID0gJHBhcmFtVHlwZVN1ZmZpeCBlcSAiPyI7
CitzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIG15ICRwYXJh
bURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+
ZGlyZWN0aW9uKCRwYXJhbURpcmVjdGlvbik7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1l
KCRwYXJhbU5hbWUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkcGFyYW1UeXBlKTsK
LSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVk
QXR0cmlidXRlcygkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMpKTsKLSAgICAgICAgJHBhcmFtRGF0
YU5vZGUtPmlzTnVsbGFibGUoJGlzTnVsbGFibGUpOworc3ViIHBhcnNlQ29uc3QKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
KworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21Db25z
dGFudCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImNvbnN0IiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJHNlbGYt
PnBhcnNlQ29uc3RUeXBlKCkpOworICAgICAgICBteSAkY29uc3ROYW1lVG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkY29uc3ROYW1lVG9r
ZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29uc3RO
YW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dmFs
dWUoJHNlbGYtPnBhcnNlQ29uc3RWYWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgIG15ICRhcnJh
eVJlZiA9ICRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyczsKLSAgICAgICAgcHVzaChAJGFycmF5UmVm
LCAkcGFyYW1EYXRhTm9kZSk7CitzdWIgcGFyc2VDb25zdFZhbHVlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0Q29uc3RWYWx1ZV8xLykgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlQm9vbGVhbkxpdGVyYWwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJudWxsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIm51bGwiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAibnVsbCI7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0Q29uc3RWYWx1ZV8yLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxv
YXRMaXRlcmFsKCk7CisgICAgfQorICAgICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50
ZWdlclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQogCi0gICAgICAgIHByaW50ICIgIHwgICB8PiAgUGFyYW07IFRZUEUgXCIk
cGFyYW1UeXBlXCIgTkFNRSBcIiRwYXJhbU5hbWVcIiIgLiAKLSAgICAgICAgICAgIGR1bXBFeHRl
bmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAiLCAkcGFyYW1EYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0OyAgICAgICAgICAKK3N1YiBw
YXJzZUJvb2xlYW5MaXRlcmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInRydWUi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
dHJ1ZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJmYWxzZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmYWxzZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICJmYWxzZSI7CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIFBhcnNlSW50ZXJmYWNlCitzdWIgcGFy
c2VGbG9hdExpdGVyYWwKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7Ci0gICAgbXkgJHNlY3Rpb25OYW1lID0gc2hpZnQ7Ci0KLSAgICBteSAkZGF0
YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250ZW50KTsKLQotICAgICMgTG9vayBmb3IgZW5kLW9m
LWludGVyZmFjZSBtYXJrCi0gICAgJGRhdGEgPX4gL307L2c7Ci0gICAgJGRhdGEgPSBzdWJzdHIo
JGRhdGEsIGluZGV4KCRkYXRhLCAkc2VjdGlvbk5hbWUpLCBwb3MoJGRhdGEpIC0gbGVuZ3RoKCRk
YXRhKSk7Ci0KLSAgICAkZGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0KLSAgICAjIEJlZ2lubmluZyBv
ZiB0aGUgcmVnZXhwIHBhcnNpbmcgbWFnaWMKLSAgICBpZiAoJHNlY3Rpb25OYW1lIGVxICJpbnRl
cmZhY2UiIHx8ICRzZWN0aW9uTmFtZSBlcSAiZXhjZXB0aW9uIikgewotICAgICAgICBwcmludCAi
IHwtIFRyeWluZyB0byBwYXJzZSBpbnRlcmZhY2UuLi5cbiIgdW5sZXNzICRiZVF1aWV0OwotCi0g
ICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gIiI7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VEYXRh
ID0gIiI7Ci0KLSAgICAgICAgIyBNYXRjaCBpZGVudGlmaWVyIG9mIHRoZSBpbnRlcmZhY2UsIGFu
ZCBlbmNsb3NlZCBkYXRhLi4uCi0gICAgICAgICRkYXRhID1+IC8kSURMU3RydWN0dXJlOjppbnRl
cmZhY2VTZWxlY3Rvci87Ci0KLSAgICAgICAgbXkgJGlzRXhjZXB0aW9uID0gKGRlZmluZWQoJDEp
ID8gKCQxIGVxICdleGNlcHRpb24nKSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRk
YXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRl
ZmluZWQoJDIpID8gJDIgOiAiICIpOyBjaG9wKCRpbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICAkaW50ZXJmYWNlTmFtZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgICAgIG15ICRpbnRlcmZhY2VC
YXNlID0gKGRlZmluZWQoJDQpID8gJDQgOiAiIik7Ci0gICAgICAgICRpbnRlcmZhY2VEYXRhID0g
KGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxu
KSIpKTsKLQotICAgICAgICAjIEZpbGwgaW4ga25vd24gcGFydHMgb2YgdGhlIGRvbUNsYXNzIGRh
dGFzdHJ1Y3R1cmUgbm93Li4uCi0gICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oJGlzRXhj
ZXB0aW9uKTsKLSAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCRpbnRlcmZhY2VOYW1lKTsKLSAgICAg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRpbnRl
cmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBpZiAoZGVmaW5lZCAkZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgICAgIG15ICRuZXdEYXRhTm9k
ZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5uYW1lKCJDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAg
ICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q29uc3RydWN0b3IifSk7Ci0gICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0
cnVjdG9yIn0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgICAkZGF0YU5vZGUtPmNv
bnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7Ci0gICAgICAgIH0gZWxzaWYgKGRlZmluZWQgJGV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgICAgIG15ICRu
ZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlLT5uYW1lKCJOYW1lZENvbnN0cnVjdG9yIik7Ci0gICAgICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZXMpOwotICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJGV4dGVuZGVk
QXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0tPnsiU2lnbmF0dXJlIn0pOwotICAgICAg
ICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0gPSAkZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifXsiQ29uc3RydWN0b3JOYW1lIn07Ci0g
ICAgICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9yKCRuZXdEYXRhTm9kZSk7Ci0gICAgICAg
IH0KLSAgICAgICAgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmli
dXRlcyk7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIi0iKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiLSIsIF9fTElORV9fKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJJbmZpbml0
eSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIkluZmluaXR5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkluZmluaXR5IiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gIkluZmluaXR5IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJOYU4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiTmFOIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIk5hTiI7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgIyBJbmhlcml0
YW5jZSBkZXRlY3Rpb24KLSAgICAgICAgbXkgQGludGVyZmFjZVBhcmVudHMgPSBzcGxpdCgvLC8s
ICRpbnRlcmZhY2VCYXNlKTsKLSAgICAgICAgZm9yZWFjaChAaW50ZXJmYWNlUGFyZW50cykgewot
ICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKLSAgICAgICAgICAgICRsaW5lID1+IHMvXHMqLy9n
Oworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAg
ICAgICAgICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+cGFyZW50czsKLSAgICAgICAgICAg
IHB1c2goQCRhcnJheVJlZiwgJGxpbmUpOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlv
bk9ySXRlcmF0b3JfMS8pIHsKKyAgICAgICAgbXkgJHF1YWxpZmllciA9ICRzZWxmLT5wYXJzZVF1
YWxpZmllcigpOworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1
dGVPck9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChk
ZWZpbmVkKCRuZXdEYXRhTm9kZSkgJiYgJHF1YWxpZmllciBlcSAic3RhdGljIikgeworICAgICAg
ICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsKICAgICAgICAgfQorICAgICAgICByZXR1
cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGUo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9w
ZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJh
dGlvbk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlU2VyaWFsaXplcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgIHJldHVybiBpZiAkcGFyZW50
c09ubHk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNlcmlhbGl6ZXIiLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgICAgICRpbnRlcmZhY2VEYXRhID1+IHMvW1xuXHJdLyAv
ZzsKLSAgICAgICAgbXkgQGludGVyZmFjZU1ldGhvZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VE
YXRhKTsKK3N1YiBwYXJzZVNlcmlhbGl6ZXJSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgZm9yZWFj
aCBteSAkbGluZSAoQGludGVyZmFjZU1ldGhvZHMpIHsKLSAgICAgICAgICAgIG5leHQgaWYgJGxp
bmUgPX4gL15ccyokLzsKLSAgICAgICAgICAgIGlmICgkbGluZSA9fiAvXFdhdHRyaWJ1dGVcVy8p
IHsKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlQXR0
cmlidXRlU2VsZWN0b3IvOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlU2VyaWFsaXphdGlvblBhdHRlcm4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlv
blJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorfQogCi0gICAgICAgICAgICAg
ICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMSk7Ci0gICAgICAgICAgICAgICAgbXkgJGF0dHJp
YnV0ZVR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJj
ZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVFeHRlbmRlZEF0
dHJpYnV0ZXMgPSAoZGVmaW5lZCgkMykgPyAkMyA6ICIgIik7IGNob3AoJGF0dHJpYnV0ZUV4dGVu
ZGVkQXR0cmlidXRlcyk7CitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJ7IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVNlcmlhbGl6YXRp
b25QYXR0ZXJuTWFwKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBh
cnNlU2VyaWFsaXphdGlvblBhdHRlcm5MaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAg
ICBteSAkYXR0cmlidXRlRGF0YVR5cGUgPSAoZGVmaW5lZCgkNCkgPyAkNCA6IGRpZSgiUGFyc2lu
ZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGVEYXRhTmFtZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGxpbmVcbikiKSk7Ci0gIAotICAgICAgICAgICAgICAgICgnJyA9fiAvXi8pOyAj
IFJlc2V0IHZhcmlhYmxlcyBuZWVkZWQgZm9yIHJlZ2V4cCBtYXRjaGluZworc3ViIHBhcnNlU2Vy
aWFsaXphdGlvblBhdHRlcm5NYXAKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0
dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIsIF9fTElORV9fKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAg
ICAgJHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICB9Cit9CiAKLSAgICAgICAgICAgICAg
ICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAg
ICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsK
K3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTGlzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9r
ZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOworICAgIH0KK30KIAotICAg
ICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpzZXR0ZXJSYWlzZXNTZWxlY3Rv
ci87Ci0gICAgICAgICAgICAgICAgbXkgJHNldHRlckV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/
ICQxIDogIiIpOworc3ViIHBhcnNlSWRlbnRpZmllcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15IEBpZGVudHMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IiwiKSB7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgICAgICAgICAgcHVzaChAaWRlbnRzLCAkdG9rZW4tPnZhbHVlKCkp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gXEBpZGVudHM7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkbmV3RGF0YU5v
ZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50
eXBlKCRhdHRyaWJ1dGVUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3Rh
dGljKCRpc1N0YXRpYyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUo
bmV3IGRvbVNpZ25hdHVyZSgpKTsKK3N1YiBwYXJzZVF1YWxpZmllcgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFt
ZSgkYXR0cmlidXRlRGF0YU5hbWUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT50eXBlKCRhdHRyaWJ1dGVEYXRhVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmli
dXRlcygkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7CisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdGF0aWMiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3RhdGlj
IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInN0YXRpYyI7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic3RyaW5naWZpZXIiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybiAic3RyaW5naWZpZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAg
ICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0dHJpYnV0ZXM7Ci0gICAgICAgICAgICAg
ICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOworc3ViIHBhcnNlQXR0cmlidXRlT3JP
cGVyYXRpb25SZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBwcmludCAiICB8ICB8PiAg
QXR0cmlidXRlOyBTVEFUSUM/IFwiJGlzU3RhdGljXCIgVFlQRSBcIiRhdHRyaWJ1dGVUeXBlXCIg
REFUQSBOQU1FIFwiJGF0dHJpYnV0ZURhdGFOYW1lXCIgREFUQSBUWVBFIFwiJGF0dHJpYnV0ZURh
dGFUeXBlXCIgR0VUIEVYQ0VQVElPTj8gXCIkZ2V0dGVyRXhjZXB0aW9uXCIgU0VUIEVYQ0VQVElP
Tj8gXCIkc2V0dGVyRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVu
ZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0
dHJpYnV0ZVJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJl
dHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9k
ZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUt
PnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
ICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAgICAgJGdldHRlckV4Y2Vw
dGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICAkc2V0dGVyRXhjZXB0aW9uID1+IHMv
XHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25z
fSA9IHNwbGl0KC8sLywgJGdldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgQHskbmV3
RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkc2V0dGVyRXhjZXB0aW9u
KTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCRsaW5lICF+IC9eXHMqKCRJRExTdHJ1Y3R1cmU6OmV4
dGVuZGVkQXR0cmlidXRlU3ludGF4ICk/Y29uc3RccysvKSB7Ci0gICAgICAgICAgICAgICAgJGxp
bmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1ldGhvZFNlbGVjdG9yLyBvciBkaWUgIlBh
cnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7CitzdWIgcGFyc2VBdHRyaWJ1dGUKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBz
aGlmdDsKIAotICAgICAgICAgICAgICAgIG15ICRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMgPSAo
ZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRlcyk7
Ci0gICAgICAgICAgICAgICAgbXkgJGlzU3RhdGljID0gZGVmaW5lZCgkMik7Ci0gICAgICAgICAg
ICAgICAgbXkgJG1ldGhvZFR5cGUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBl
cnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RO
YW1lID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4k
bGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9kU2lnbmF0dXJlID0gKGRlZmlu
ZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVy
aXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3QoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAgICAgICgnJyA9fiAv
Xi8pOyAjIFJlc2V0IHZhcmlhYmxlcyBuZWVkZWQgZm9yIHJlZ2V4cCBtYXRjaGluZworc3ViIHBh
cnNlQXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8p
IHsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOworICAgICAg
ICBpZiAoJHNlbGYtPnBhcnNlUmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0KKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiLCBf
X0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1
cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJz
ZVR5cGUoKSk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAg
ICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJzZUdldCgpOworICAgICAgICBpZiAoZGVmaW5lZCAk
Z2V0UmVmKSB7CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRp
b25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNlcyJ9fSk7CisgICAgICAgICAgICBwdXNoKEB7JG5l
d0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57InNldHJhaXNlcyJ9fSk7
CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1
cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9
fiAvJElETFN0cnVjdHVyZTo6cmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRt
ZXRob2RFeGNlcHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJzZUluaGVy
aXQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5oZXJpdCIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbmhlcml0IiwgX19M
SU5FX18pOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAg
ICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKK3N1YiBw
YXJzZVJlYWRPbmx5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInJlYWRvbmx5Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJl
YWRvbmx5IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJu
IDA7Cit9CiAKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRp
Yyk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25h
dHVyZSgpKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgk
bWV0aG9kTmFtZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5
cGUoJG1ldGhvZFR5cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVu
ZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owog
Ci0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBcIiRpc1N0
YXRpY1wiIFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVYQ0VQVElP
Tj8gXCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVtcEV4dGVu
ZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8k
bmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTcGVjaWFsT3Bl
cmF0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmli
dXRlT3JPcGVyYXRpb25SZXN0XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYt
PnBhcnNlUmV0dXJuVHlwZSgpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VP
cGVyYXRpb25Pckl0ZXJhdG9yUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
aWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0
dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFO
b2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+
IHMvXHMrLy9nOwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRp
b25zfSA9IHNwbGl0KC8sLywgJG1ldGhvZEV4Y2VwdGlvbik7CitzdWIgcGFyc2VTcGVjaWFsT3Bl
cmF0aW9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAgJHNl
bGYtPnBhcnNlU3BlY2lhbCgpOworICAgICAgICAkc2VsZi0+cGFyc2VTcGVjaWFscygpOworICAg
ICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAg
bXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmluZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAg
ICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgICAgICAgICBw
YXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKK3N1YiBwYXJz
ZVNwZWNpYWxzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIG15
ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2go
QCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAg
ICAgICAgICAgICAgIG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/
ICQxIDogIiAiKTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJv
ciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUg
PSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5l
XG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8g
JDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgICAgICAk
c2VsZi0+cGFyc2VTcGVjaWFsKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBbXTsKK30KIAotICAgICAgICAgICAgICAg
IG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21Db25zdGFudCgpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+bmFtZSgkY29uc3ROYW1lKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnR5cGUoJGNvbnN0VHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1
ZSgkY29uc3RWYWx1ZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGNvbnN0RXh0ZW5kZWRBdHRyaWJ1dGVz
KSk7CitzdWIgcGFyc2VTcGVjaWFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdl
dHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZ2V0dGVyIjsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2V0dGVyIiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gInNldHRlciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiY3JlYXRvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJjcmVhdG9yIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImNyZWF0b3Ii
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGVsZXRlciIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuICJkZWxldGVyIjsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJsZWdhY3ljYWxsZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibGVnYWN5Y2FsbGVyIiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gImxlZ2FjeWNhbGxlciI7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAgICAg
ICAgIG15ICRhcnJheVJlZiA9ICRkYXRhTm9kZS0+Y29uc3RhbnRzOwotICAgICAgICAgICAgICAg
IHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsKK3N1YiBwYXJzZU9wZXJhdGlvbk9ySXRl
cmF0b3JSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBwcmludCAiICB8ICAgfD4gIENv
bnN0YW50OyBUWVBFIFwiJGNvbnN0VHlwZVwiIE5BTUUgXCIkY29uc3ROYW1lXCIgVkFMVUUgXCIk
Y29uc3RWYWx1ZVwiXG4iIHVubGVzcyAkYmVRdWlldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQorICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaXRlcmF0b3IiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJdGVyYXRv
clJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAiICB8LS0tLT4gSW50ZXJmYWNlOyBO
QU1FIFwiJGludGVyZmFjZU5hbWVcIiIgLgotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmli
dXRlcygiXG4gIHwgICAgICAgICAgICAgICAgICIsICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKSAuICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlSXRlcmF0b3JS
ZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJhdG9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIml0ZXJhdG9yIiwgX19MSU5FX18pOworICAg
ICAgICAkc2VsZi0+cGFyc2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
CiB9CiAKLSMgSW50ZXJuYWwgaGVscGVyCi1zdWIgRGV0ZXJtaW5lUGFyc2VNb2RlCitzdWIgcGFy
c2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QKIHsKLSAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgbXkgJG1vZGUgPSBN
T0RFX1VOREVGOwotICAgIGlmICgkXyA9fiAvbW9kdWxlLykgewotICAgICAgICAkbW9kZSA9IE1P
REVfTU9EVUxFOwotICAgIH0gZWxzaWYgKCRfID1+IC9pbnRlcmZhY2UvKSB7Ci0gICAgICAgICRt
b2RlID0gTU9ERV9JTlRFUkZBQ0U7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2V4Y2VwdGlvbi8pIHsK
LSAgICAgICAgJG1vZGUgPSBNT0RFX0VYQ0VQVElPTjsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0T3B0aW9uYWxJdGVy
YXRvckludGVyZmFjZU9yT2JqZWN0XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VP
cHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvYmplY3QiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbEl0ZXJhdG9y
SW50ZXJmYWNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gJG1vZGU7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJ
TkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCks
IElkZW50aWZpZXJUb2tlbik7CisgICAgfQogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIFBy
b2Nlc3NTZWN0aW9uCitzdWIgcGFyc2VPcGVyYXRpb25SZXN0CiB7Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICAKLSAgICBpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX01PRFVMRSkgewotICAgICAg
ICBkaWUgKCJUd28gbW9kdWxlcyBpbiBvbmUgZmlsZSEgRmF0YWwgZXJyb3IhXG4iKSBpZiAoJGRv
Y3VtZW50IG5lIDApOwotICAgICAgICAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKLSAg
ICAgICAgJG9iamVjdC0+UGFyc2VNb2R1bGUoJGRvY3VtZW50KTsKLSAgICB9IGVsc2lmICgkcGFy
c2VNb2RlIGVxIE1PREVfSU5URVJGQUNFIHx8ICRwYXJzZU1vZGUgZXEgTU9ERV9FWENFUFRJT04p
IHsKLSAgICAgICAgbXkgJG5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKLSAgICAgICAgbXkgJHNlY3Rp
b25OYW1lID0gJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSA/ICJpbnRlcmZhY2UiIDogImV4
Y2VwdGlvbiI7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlSW50ZXJmYWNlKCRub2RlLCAkc2VjdGlv
bk5hbWUpOwotICAgIAotICAgICAgICBkaWUgKCJObyBtb2R1bGUgc3BlY2lmaWVkISBGYXRhbCBF
cnJvciFcbiIpIGlmICgkZG9jdW1lbnQgZXEgMCk7Ci0gICAgICAgIG15ICRhcnJheVJlZiA9ICRk
b2N1bWVudC0+Y2xhc3NlczsKLSAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbm9kZSk7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7
CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAg
ICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICBteSAkbmFtZSA9
ICRzZWxmLT5wYXJzZU9wdGlvbmFsSWRlbnRpZmllcigpOworICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+bmFtZSgkbmFtZSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsICRuYW1lLCBfX0xJTkVfXyk7CisgICAgICAgIHB1c2go
QHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgp
fSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
KSIsIF9fTElORV9fKTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cmFpc2VzRXhjZXB0
aW9uc30sIEB7JHNlbGYtPnBhcnNlUmFpc2VzKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOwogICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOworc3ViIHBhcnNlT3B0aW9uYWxJZGVudGlmaWVyCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZh
bHVlKCk7CisgICAgfQorICAgIHJldHVybiAiIjsKIH0KIAotMTsKK3N1YiBwYXJzZUFyZ3VtZW50
TGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQGFyZ3VtZW50cyA9ICgpOwor
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEFyZ3VtZW50
TGlzdF8xLykgeworICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50
KCkpOworICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEB7JHNlbGYtPnBhcnNlQXJndW1lbnRzKCl9
KTsKKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQorCitzdWIgcGFyc2VBcmd1bWVu
dHMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKwor
ICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7CisgICAgICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAg
ICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRzZWxmLT5wYXJzZUFyZ3VtZW50KCkpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gXEBhcmd1bWVudHM7Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50Cit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXJndW1lbnRMaXN0XzEvKSB7CisgICAgICAgIG15ICRpbiA9ICRzZWxmLT5wYXJzZUluKCk7Cisg
ICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15ICRhcmd1bWVudCA9ICRzZWxmLT5w
YXJzZU9wdGlvbmFsT3JSZXF1aXJlZEFyZ3VtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgICAgICAkYXJndW1lbnQtPmRpcmVjdGlvbigkc2VsZi0+cGFyc2VJbigpKTsKKyAgICAgICAg
cmV0dXJuICRhcmd1bWVudDsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VPcHRpb25hbE9yUmVx
dWlyZWRBcmd1bWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJHBhcmFtRGF0YU5vZGUgPSBuZXcgZG9t
U2lnbmF0dXJlKCk7CisgICAgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3B0aW9uYWwiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib3B0aW9uYWwiLCBfX0xJTkVf
Xyk7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAjIGRv
bURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgorICAgICAgICBpZiAoJHR5cGUg
PX4gL1w/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDEpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUo
MCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpZiBleGlzdHMsIGUuZy4g
Im9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAgICAgICR0eXBlID1+IHMvXD8vL2c7Cisg
ICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlKTsKKyAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICAkc2VsZi0+cGFy
c2VEZWZhdWx0KCk7CisgICAgICAgIHJldHVybiAkcGFyYW1EYXRhTm9kZTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3Qg
Ij8iLgorICAgICAgICBpZiAoJHR5cGUgPX4gL1w/JC8pIHsKKyAgICAgICAgICAgICRwYXJhbURh
dGFOb2RlLT5pc051bGxhYmxlKDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJHBh
cmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMCk7CisgICAgICAgIH0KKyAgICAgICAgIyBSZW1vdmUg
YWxsICI/IiBpZiBleGlzdHMsIGUuZy4gIm9iamVjdD9bXT8iIC0+ICJvYmplY3RbXSIuCisgICAg
ICAgICR0eXBlID1+IHMvXD8vL2c7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBl
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRWxsaXBzaXMoKTsKKyAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOworICAgICAgICByZXR1cm4gJHBh
cmFtRGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXJndW1lbnROYW1lCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXJndW1lbnROYW1lXzEvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VBcmd1bWVudE5hbWVLZXl3b3JkKCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRWxs
aXBzaXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLi4uIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIi4uLiIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgcGFy
c2VFeGNlcHRpb25NZW1iZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeGNlcHRpb25GaWVsZCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VFeGNlcHRpb25GaWVsZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
IHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAg
IG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21BdHRyaWJ1dGUoKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT50eXBlKCJyZWFkb25seSBhdHRyaWJ1dGUiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5z
aWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWdu
YXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgk
dG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAg
IHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0QWxsb3dFbXB0eQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJb
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7
CisgICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElORV9fKTsKKyAg
ICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHt9OworICAgICAgICBteSAkYXR0ciA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlKCk7CisgICAgICAgIGZvciBteSAka2V5IChr
ZXlzICV7JGF0dHJ9KSB7CisgICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtl
eX0gPSAkYXR0ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRhdHRyID0gJHNlbGYtPnBh
cnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCk7CisgICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0
dHJ9KSB7CisgICAgICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57JGtleX0gPSAkYXR0
ci0+eyRrZXl9OworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3Q7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1
dGVzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0ge307CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIiwgX19M
SU5FX18pOworICAgICAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZTIoKTsKKyAgICAgICAgICAgIGZvciBteSAka2V5IChrZXlzICV7JGF0dHJ9KSB7CisgICAg
ICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyRrZXl9ID0gJGF0dHItPnska2V5
fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Q7Cit9CisK
K3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHRv
a2VuLT52YWx1ZSgpKTsKKyAgICB9CisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTcGVj
IGRvZXNuJyBhbGxvdyAiW10iLiBCdXQgV2ViS2l0IHJlcXVpcmVzLgorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAnXScpIHsKKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigp
OworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tl
bi0+dmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVSZXN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9
IHNoaWZ0OworICAgIG15ICRhdHRycyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAkc2Vs
Zi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyKCk7CisgICAgICAgIHJldHVybiAkYXR0cnM7
CisgICAgfQorCisgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKKyAgICAgICAgJGF0
dHJzLT57JG5hbWV9ID0gW107CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9
ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgIH0KKyAgICByZXR1cm4gJGF0dHJzOworfQorCitz
dWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3Qz
KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEludGVn
ZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZVJlc3QzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFt
ZSA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICImIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiYiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tl
biwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gIiYiIC4gJHRva2Vu
LT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInwiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifCIsIF9fTElO
RV9fKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBy
ZXR1cm4gJG5hbWUgLiAifCIgLiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIiwgX19MSU5FX18pOwor
ICAgICAgICAkYXR0ci0+eyRuYW1lfSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4dGVuZGVk
QXR0cmlidXRlUmVzdDNfMS8pIHsKKyAgICAgICAgbXkgQG5hbWVzID0gKCk7CisgICAgICAgIHB1
c2goQG5hbWVzLCAkbmFtZSk7CisgICAgICAgIHB1c2goQG5hbWVzLCBAeyRzZWxmLT5wYXJzZUlk
ZW50aWZpZXJMaXN0KCl9KTsKKyAgICAgICAgcmV0dXJuIGpvaW4oJyAnLCBAbmFtZXMpOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30K
Kworc3ViIHBhcnNlSWRlbnRpZmllckxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15IEBuYW1lcyA9ICgpOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbikgeworICAgICAgICAgICAgcHVzaChAbmFtZXMsICRzZWxmLT5nZXRUb2tlbigpLT52
YWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIFxAbmFtZXM7Cit9CisKK3N1YiBwYXJzZUFyZ3VtZW50TmFtZUtl
eXdvcmQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYXR0cmlidXRlIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0
VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25z
dCIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJkZWxldGVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVl
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRp
b24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJpbXBsZW1lbnRzIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZh
bHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW5oZXJpdCIpIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5n
ZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImxl
Z2FjeWNhbGxlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRv
a2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVy
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic3RhdGljIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAic3RyaW5naWZpZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlVHlwZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+cGFyc2VV
bmlvblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8
fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VTaW5nbGVUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2luZ2xlVHlw
ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55IiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gImFueSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4U3RhcnRpbmdXaXRo
QXJyYXkoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
IHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmdsZVR5cGVfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VV
bmlvblR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIsIF9fTElORV9fKTsKKyAg
ICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJz
ZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAg
ICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55IiwgX19MSU5FX18pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZU5vbkFueVR5cGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZVVuaW9uTWVtYmVyVHlwZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib3Ii
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
b3IiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgfQorfQorCitzdWIg
cGFyc2VOb25BbnlUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0Tm9u
QW55VHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgp
IC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIkJ5dGVTdHJpbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiRE9NU3RyaW5nIiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gIkRPTVN0cmluZyIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VxdWVuY2UiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2VxdWVuY2UiLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
PCIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzZXF1ZW5jZTwiIC4gJHR5cGUgLiAiPiIgLiAkc2Vs
Zi0+cGFyc2VOdWxsKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
Im9iamVjdCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJvYmplY3QiIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRhdGUi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
RGF0ZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJEYXRlIiAuICRzZWxmLT5wYXJzZVR5
cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICBy
ZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBy
aW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxm
LT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBh
cnNlTnVsbCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVByaW1pdGl2ZVR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzEvKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNpZ25lZEludGVnZXJUeXBlKCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRQcmltaXRpdmVUeXBlXzIvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29sZWFuIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImJvb2xlYW4iLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAiYm9vbGVhbiI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
Ynl0ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJieXRlIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImJ5dGUiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9jdGV0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9jdGV0IiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gIm9jdGV0IjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRG
bG9hdFR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVu
cmVzdHJpY3RlZCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJ1bnJlc3RyaWN0ZWQiIC4g
JHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRVbnJlc3RyaWN0ZWRGbG9hdFR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUZsb2F0VHlwZQor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJmbG9hdCIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJmbG9hdCIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuICJmbG9hdCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiZG91YmxlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImRvdWJsZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUiOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWduZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidW5zaWduZWQiLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAidW5zaWduZWQgIiAuICRzZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRVbnNpZ25lZEludGVnZXJUeXBlXzEv
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CisKK3N1YiBwYXJzZUludGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInNob3J0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInNob3J0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInNob3J0IjsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnQiKSB7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50IiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gImludCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9u
ZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJsb25nIiwgX19MSU5FX18pOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNlT3B0aW9uYWxMb25n
KCkpIHsKKyAgICAgICAgICAgIHJldHVybiAibG9uZyBsb25nIjsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gImxvbmciOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsTG9uZwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJsb25nIikgeworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImxvbmciLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNlVHlw
ZVN1ZmZpeAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4
KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/IiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm4gIj8iIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFy
cmF5KCk7CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeFN0
YXJ0aW5nV2l0aEFycmF5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJdIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5
cGVTdWZmaXgoKTsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VOdWxsCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPyIsIF9fTElORV9fKTsKKyAgICAgICAg
cmV0dXJuICI/IjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VSZXR1cm5U
eXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInZvaWQiKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidm9pZCIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZp
ZWxkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlR2V0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVy
aXRzIikgeworICAgICAgICBteSAkYXR0ciA9IHt9OworICAgICAgICAkc2VsZi0+cGFyc2VJbmhl
cml0c0dldHRlcigpOworICAgICAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMTsKKyAgICAgICAg
JGF0dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0g
PSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0R2V0XzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMoKTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZUluaGVy
aXRzR2V0dGVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRzIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVy
aXRzIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZVNldEdldFJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAkYXR0ci0+eyJpbmhlcml0cyJ9ID0gMDsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAic2V0dGVyIikgeworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJz
ZVNldFJhaXNlcygpOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJz
ZUdldFJhaXNlczIoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0g
PSBbXTsKKyAgICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VHZXRSYWlz
ZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0U2V0R2V0UmFpc2VzMl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlU2V0R2V0UmFpc2VzMigpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldFJhaXNlcwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
cmFpc2VzIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9u
TGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldFJhaXNlczIKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNl
cyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3Qo
KTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlzZXMKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIsIF9fTElORV9fKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMi
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2V0R2V0UmFpc2VzMgoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdldFJhaXNlczJfMS8pIHsKKyAgICAgICAgbXkgJGF0
dHIgPSB7fTsKKyAgICAgICAgJGF0dHItPnsiaW5oZXJpdHMifSA9IDA7CisgICAgICAgICRhdHRy
LT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2VzMygpOworICAgICAgICAkYXR0
ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlczMoKTsKKyAgICAgICAgcmV0
dXJuICRhdHRyOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldFJhaXNlczMKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0cmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHJhaXNlcyIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAg
cmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VTZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgInNldHJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJzZXRyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsK
K30KKworc3ViIHBhcnNlRXhjZXB0aW9uTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICIoIikgeworICAgICAgICBteSBAZXhjZXB0aW9ucyA9ICgpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBfX0xJTkVfXyk7CisgICAg
ICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgcHVzaChAZXhjZXB0
aW9ucywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAZXhjZXB0aW9ucywgQHskc2Vs
Zi0+cGFyc2VJZGVudGlmaWVycygpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuIFxAZXhj
ZXB0aW9uczsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+
dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VSYWlzZXMKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAicmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOwor
fQorCitzdWIgcGFyc2VEZWZpbml0aW9uT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0RGVmaW5pdGlvbl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2Fs
bGJhY2tPckludGVyZmFjZU9sZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
InBhcnRpYWwiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsKHt9KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeU9sZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4
Y2VwdGlvbk9sZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFbnVtT2xkKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZVR5cGVkZWYoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm1vZHVsZSIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU1vZHVsZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoe30pOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJz
ZU1vZHVsZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtb2R1bGUiKSB7CisgICAg
ICAgIG15ICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVudCgpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm1vZHVsZSIsIF9fTElORV9fKTsKKyAg
ICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0
cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFs
dWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0aW9ucyA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25z
KCk7CisgICAgICAgIHB1c2goQHskZG9jdW1lbnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0i
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZU9wdGlvbmFsU2VtaWNvbG9uKCk7Cisg
ICAgICAgIHJldHVybiAkZG9jdW1lbnQ7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJh
Y2tPckludGVyZmFjZU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFj
ayIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJjYWxsYmFjayIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxi
YWNrUmVzdE9ySW50ZXJmYWNlKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VPbGQo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBu
ZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5
KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRh
dGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNl
cHRpb24oMCk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5w
YXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICBteSAkaW50ZXJmYWNlTWVt
YmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFjZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVf
Xyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJz
KTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCh7fSk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvck9sZCgpOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9uYXJ5IiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVy
T2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgJHNlbGYt
PnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RB
bGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZURlZmF1bHQoKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iiwg
X19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhj
ZXB0aW9uT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsK
KyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZXhjZXB0aW9uIiwgX19MSU5FX18p
OworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50
aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOwor
ICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFO
b2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsK
KyAgICAgICAgbXkgJGV4Y2VwdGlvbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1i
ZXJzKCk7CisgICAgICAgICMkc2VsZi0+cGFyc2VFeGNlcHRpb25NZW1iZXJzKCk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9f
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7
IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0
aW9uTWVtYmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9k
ZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KKworc3ViIHBhcnNlRW51bU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJlbnVtIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgImVudW0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAg
ICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVy
YXRpb25Pckl0ZXJhdG9yT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlh
bGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyKHt9KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9u
T3JJdGVyYXRvcl8xLykgeworICAgICAgICBteSAkcXVhbGlmaWVyID0gJHNlbGYtPnBhcnNlUXVh
bGlmaWVyKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9y
T3BlcmF0aW9uUmVzdE9sZCgpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSAmJiAk
cXVhbGlmaWVyIGVxICJzdGF0aWMiKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPmlzU3RhdGlj
KDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPbGRfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9sZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmli
dXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VPcGVyYXRpb25Pckl0ZXJhdG9yKHt9KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRy
aWJ1dGVPck9wZXJhdGlvblJlc3RPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRy
aWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iiwg
X19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgp
ID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVP
ck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFy
c2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJh
dGlvblJlc3Qoe30pOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAg
ICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAgICAgICB9
CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0
cmlidXRlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
T2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVyaXQoKTsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3RPbGQoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VBdHRyaWJ1dGVSZXN0T2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
QXR0cmlidXRlUmVzdF8xLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0
cmlidXRlKCk7CisgICAgICAgIGlmICgkc2VsZi0+cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJlYWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAg
ICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImF0dHJpYnV0ZSIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAg
ICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAg
ICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4p
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkp
OworICAgICAgICBteSAkZ2V0UmVmID0gJHNlbGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChk
ZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRl
ckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsiZ2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1
c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFp
c2VzIn19KTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5v
ZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVl
KCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW4iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiaW4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiaW4iOworICAgIH0K
KyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsU2VtaWNvbG9uCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICB9Cit9CisKK3N1
YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
bWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVtIChAeyRtZW1iZXJzfSkgeworICAg
ICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikgeworICAgICAgICAgICAgcHVz
aChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUNvbnN0YW50IikgeworICAg
ICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwgJGl0ZW0pOworICAgICAgICAg
ICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tRnVuY3Rp
b24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9LCAkaXRlbSk7
CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorfQorCitzdWIgYXBwbHlFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBpZiAoZGVmaW5lZCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFO
b2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
KG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5u
YW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBwdXNoKEB7
JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNv
bnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1
Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVj
dG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUg
PSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3
IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUo
Ik5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgbXkgJWF0
dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9
fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICglYXR0cmlidXRlcyk7CisgICAg
ICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5c1swXTsKKyAgICAgICAgcHVz
aChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJpYnV0ZXN7JGNvbnN0cnVjdG9y
TmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0cnVj
dG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9y
KCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisxOworCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApp
bmRleCAwY2Y2NzY1OTljNjNiZjEyNWMxZDQ5YmNhYTBjODMzYzg1MzE4MTNjLi41MzE4MWQ0YTkw
NTIzZjI1NGM4MjVlNTY5YzdhZmQwODg4NjhiOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKQEAg
LTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VW5zaWduZWRTaG9ydEF0
dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIpCiAgICAgaW1wbCgpLT5zZXRV
bnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLWxvbmcgbG9uZyBX
ZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01UZXN0T2JqOjpsb25nQXR0cigp
IGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdBdHRyKCk7CiB9CiAK
LXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcgbmV3QXR0cikKK3ZvaWQgV2Vi
RE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRyKQogewogICAgIGlmICghaW1w
bCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNldEF0dHIobmV3QXR0cik7Cisg
ICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIGxvbmcgbG9uZyBXZWJE
T01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1LDkgKzQyNSw3IEBAIHZvaWQg
V2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50IG5ld0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNldEF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgd2Vi
RE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihlYykpOworICAg
IGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24o
KSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdTdHJpCiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
bmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJET01SYWlzZUVy
cm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAgaW1wbCgpLT5z
ZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NzcsMjggKzY3MywyOCBAQCB2b2lkIFdlYkRP
TVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9pZE1ldGhvZCgpOwogfQogCi12
b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25z
dCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQordm9p
ZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdl
YkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+dm9pZE1ldGhvZFdp
dGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAgaW1wbCgpLT52b2lk
TWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CiB9CiAK
LWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50IFdlYkRPTVRlc3RPYmo6Omxv
bmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdNZXRob2Qo
KTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZFdpdGhBcmdzKGxvbmcgbG9u
ZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBv
YmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJn
LCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJn
KQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBp
bXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7Cisg
ICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgdG9X
ZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1l
dGhvZCgpCkBAIC03MDksMTIgKzcwNSwxMiBAQCBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6
Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+b2Jq
TWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpvYmpNZXRob2RX
aXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3Qg
V2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpvYmpN
ZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNv
bnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAg
cmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0
cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5vYmpNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOwogfQogCiBXZWJE
T01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJv
d3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFy
ZykKQEAgLTkwMiwzNiArODk4LDM2IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6b3ZlcmxvYWRlZE1l
dGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQogCiAjZW5kaWYKIAotdm9pZCBXZWJET01U
ZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNv
bnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSgpKTsKKyAgICBpbXBs
KCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6
OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDIo
Y29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29u
dmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVy
dDQoY29uc3QgV2ViRE9NZCYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NChjb25zdCBX
ZWJET01kJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0NCh0
b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NShjb25z
dCBXZWJET01lJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUm
IHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBs
KCktPmNvbnZlcnQ1KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQ1KHRvV2ViQ29y
ZSh2YWx1ZSkpOwogfQogCiBXZWJET01TVkdQb2ludCBXZWJET01UZXN0T2JqOjptdXRhYmxlUG9p
bnRGdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCmluZGV4IGQ1NWZmNzg2NTUxZWJkM2M3NGFkMWE5
Njg4MzJkMjAyOWJjYWM1MjcuLjVkOWE5YWMwMDI4MWRjOTA4OTMwMWQ2ZTdhNWI1Mjc4ZjRkYWFk
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC03Nyw4ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFNob3J0QXR0cihzaG9ydCk7CiAgICAgdW5zaWduZWQgc2hvcnQgdW5zaWduZWRTaG9ydEF0
dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFVuc2lnbmVkU2hvcnRBdHRyKHVuc2lnbmVkIHNob3J0
KTsKLSAgICBsb25nIGxvbmcgQXR0cigpIGNvbnN0OwotICAgIHZvaWQgc2V0QXR0cihsb25nIGxv
bmcpOworICAgIGludCBsb25nQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0TG9uZ0F0dHIoaW50
KTsKICAgICBsb25nIGxvbmcgbG9uZ0xvbmdBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMb25n
TG9uZ0F0dHIobG9uZyBsb25nKTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRMb25n
TG9uZ0F0dHIoKSBjb25zdDsKQEAgLTE0NywxMSArMTQ3LDExIEBAIHB1YmxpYzoKICAgICBpbnQg
cmVwbGFjZWFibGVBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHZvaWQgdm9pZE1ldGhvZCgpOwot
ICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0
cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwotICAgIGxvbmcgbG9u
ZyBNZXRob2QoKTsKLSAgICBsb25nIGxvbmcgTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywg
Y29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7
CisgICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0
cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIGludCBsb25n
TWV0aG9kKCk7CisgICAgaW50IGxvbmdNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3Qg
V2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CiAgICAg
V2ViRE9NVGVzdE9iaiBvYmpNZXRob2QoKTsKLSAgICBXZWJET01UZXN0T2JqIG9iak1ldGhvZFdp
dGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBX
ZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFy
Z3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RPYmogbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyhjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKTsKICAgICB2b2lkIHNlcmlhbGl6ZWRWYWx1ZShjb25zdCBXZWJET01TdHJp
bmcmIHNlcmlhbGl6ZWRBcmcpOwogICAgIHZvaWQgaWRiS2V5KGNvbnN0IFdlYkRPTUlEQktleSYg
a2V5KTsKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKICAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSk7
CiAjZW5kaWYKLSAgICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmICk7Ci0gICAgdm9pZCBj
b252ZXJ0Mihjb25zdCBXZWJET01iJiApOwotICAgIHZvaWQgY29udmVydDQoY29uc3QgV2ViRE9N
ZCYgKTsKLSAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmICk7CisgICAgdm9pZCBjb252
ZXJ0MShjb25zdCBXZWJET01hJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJE
T01iJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChjb25zdCBXZWJET01kJiB2YWx1ZSk7Cisg
ICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2YWx1ZSk7CiAgICAgV2ViRE9NU1ZHUG9p
bnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBXZWJET01TVkdQb2ludCBpbW11dGFibGVQ
b2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHAKaW5kZXggMTIwNGRmYjUwZGJkM2RjOWE0MjNjYTFkNWFhYjU3MzE4MzVlYjkz
OC4uMmQwM2RhZTlhOGRiZmE3MDVhMWU0ZGM1OGI2NTYzOTIxMDhiNzg1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBlbnVtIHsKICAgICBQ
Uk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAgIFBST1BfU0hPUlRfQVRUUiwKICAgICBQ
Uk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJPUF9BVFRSLAorICAgIFBST1BfTE9OR19B
VFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAgICAgUFJPUF9VTlNJR05FRF9MT05HX0xP
TkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApAQCAtMTc5LDYgKzE3OSwxMCBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZFNob3J0QXR0
cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAg
IGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAgY29yZVNlbGYtPnNldExvbmdBdHRyKChn
X3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7CiAgICAgICAgIGNvcmVTZWxmLT5zZXRV
bnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRfdWludDY0KHZhbHVlKSkpOwogICAgICAg
ICBicmVhazsKQEAgLTIyOCw4ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJ
T046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGNv
cmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1
ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbigo
Z192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNh
c2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjogewpAQCAtMjM4LDggKzI0MSw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
UFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFs
dWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfU1RSSU5HX0FUVFJf
V0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjksOCArMzMxLDggQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCBjb3JlU2VsZi0+dW5z
aWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFBST1Bf
QVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2NCh2YWx1ZSwgY29yZVNlbGYtPmF0dHIo
KSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAgICAgICBnX3ZhbHVlX3NldF9sb25n
KHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAgLTU5MywxMiArNTk1LDEyIEBAIEdfTUFY
VUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQVRUUiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQ2NCgiYXR0ciIsIC8q
IG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdp
dGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTklOVDY0LCAvKiBtaW4gKi8K
LUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfbG9u
Zy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRl
c3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRv
YyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcsIC8qIG1h
eCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCkBAIC05MzEsNyAr
OTMzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJLaXRET01UZXN0T2Jq
KiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3Ry
QXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRf
bWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBj
b25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC05NDQsMjEgKzk0NiwyMSBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0
aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjbwogICAg
ICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwogICAgIH0KLSAgICBpdGVtLT52b2lkTWV0
aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CisgICAg
aXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVy
dGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRo
b2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChz
ZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
V2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnaW50NjQg
cmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01l
dGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0
X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcs
IGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK2dsb25nCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTcxLDcgKzk3Myw3IEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktp
dDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRP
YmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kV2l0aEFy
Z3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CisgICAgZ2xvbmcgcmVz
dWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywg
Y29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC05ODcsNyArOTg5
LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRo
b2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdj
aGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK3dlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9u
Z0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQogewog
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTEwMDAsNyArMTAwMiw3IEBAIHdlYmtpdF9kb21fdGVz
dF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0
IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcp
OwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAg
IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0
UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0
ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9
IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0
ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogcmVzdWx0ID0g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
QEAgLTEzNDQsNjMgKzEzNDYsNjMgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVkX21l
dGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01hKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmEqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0MShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01iKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpiKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDIoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICkKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6
ZCogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktp
dDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZCogY29udmVydGVkVmFsdWUgPSAw
OworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29y
ZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAg
IH0KLSAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ0KGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01lKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKQogewog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRl
ZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsK
LSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwodmFsdWUpOworICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAo
dmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwor
ICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRl
bS0+Y29udmVydDUoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWRWYWx1
ZSk7CiB9CiAKIFdlYktpdERPTVNWR1BvaW50KgpAQCAtMTUyMSwyMyArMTUyMywyMyBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9ydF9hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGd1c2hvcnQgdmFsdQogICAgIGl0ZW0tPnNldFVuc2lnbmVkU2hvcnRBdHRyKHZhbHVl
KTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwg
MCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2ludDY0IHJlc3Vs
dCA9IGl0ZW0tPmF0dHIoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nQXR0cigpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0
dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKQord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQog
ewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgaXRlbS0+c2V0QXR0cih2YWx1ZSk7CisgICAgaXRlbS0+c2V0TG9uZ0F0
dHIodmFsdWUpOwogfQogCiBnaW50NjQKQEAgLTE4NjUsMTcgKzE4NjcsMTIgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgR0Vycm8KIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93
aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUs
IEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRl
cl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19z
ZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIp
LCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbih2YWx1ZSk7CiB9CiAKIGdsb25nCkBAIC0xOTE0LDE5ICsxOTExLDE0
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2Vw
dGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90
ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBX
ZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdfcmV0dXJu
X2lmX2ZhaWwodmFsdWUpOwogICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpT
dHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRW
YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJv
ciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNj
Lm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIGdjaGFyKgpAQCAtMjAxNyw3ICsyMDA5LDcgQEAgd2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET01UZXN0T2JqKiBzZWwKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtMjAyOCwxMiArMjAyMCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgICAgICAgIGNv
bnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZf
ZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252
ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJh
bChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwg
ZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKgpAQCAtMjA1
Myw3ICsyMDQwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRl
X3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdl
YktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjA2NCwxMiArMjA1
MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRl
ZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVy
cm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rl
c2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioK
QEAgLTIxMTUsNyArMjA5Nyw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiB9CiAKIHZvaWQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2Fu
ZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0
dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMTI2LDEyICsyMTA4LDcgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9z
dGF0ZV9hdHRyaWJ1dGUKICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFs
dWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRW
YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJv
ciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNj
Lm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0
RE9NVGVzdE9iaioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCAzOTVmYTc3YTY5
MTQ0ZDIwODZkZWI1NDMyYWM2MDliMmU0Y2NkOTY2Li45ZDkwNWFkMmIxOTgxMjk5ZDllZjViYTM0
MGRhNzUyMjI2NGIyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCkBAIC01OCw3
ICs1OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9h
cmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAor
ICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzog
QSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTY2LDMwICs2NiwzMCBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogICoKICoqLwogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBX
ZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhv
ZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3Qg
Z2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX21ldGhvZDoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRo
b2Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgog
KiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2QoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2xvbmdfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJnczoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9u
Z19tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBB
cmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hh
cgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgog
KiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9h
cmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJB
cmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZDoKQEAgLTEw
NCw3ICsxMDQsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRo
X2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzogQSAjZ2ludDY0
CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAgKiBAb2JqQXJn
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtMTEyLDcgKzExMiw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdF
QktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhv
ZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2No
YXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9u
Z0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAog
LyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdz
X2FuZF90aHJvd3M6CkBAIC00MDAsNDYgKzQwMCw0NiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292
ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlw
ZQogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxOgogICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWEKKyAqIEB2YWx1ZTogQSAjV2ViS2l0
RE9NYQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSog
KTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NYSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVy
dDI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYgor
ICogQHZhbHVlOiBBICNXZWJLaXRET01iCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBXZWJLaXRET01iKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0
X2RvbV90ZXN0X29ial9jb252ZXJ0NDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0g
KiBAOiBBICNXZWJLaXRET01kCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWQKICAqCiAgKiBSZXR1
cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZl
cnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICk7Cit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqIHZhbHVl
KTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1OgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWUKKyAqIEB2YWx1ZTogQSAjV2Vi
S2l0RE9NZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
ZSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NZSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbXV0
YWJsZV9wb2ludF9mdW5jdGlvbjoKQEAgLTU1OCwyNSArNTU4LDI1IEBAIFdFQktJVF9BUEkgdm9p
ZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0cihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHVlKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyOgogICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VC
S0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgotICogd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cjoK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAdmFsdWU6IEEgI2dpbnQ2NAorICog
QHZhbHVlOiBBICNnbG9uZwogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2ludDY0IHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfbG9uZ19sb25nX2F0dHI6CkBAIC05MDgsMTMgKzkwOCwxMiBAQCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBHRXJybwogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRl
cl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBB
ICNnbG9uZwotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9l
eGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9u
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTk1MywxMyAr
OTUyLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVy
X2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnY2hhcgotICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtMTA0
MCwxMyArMTAzOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0
ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICogd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAq
IEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAq
Ki8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKQEAg
LTEwNjMsMTMgKzEwNjAsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9y
YWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJL
aXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9y
KTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9i
aiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlOgpAQCAtMTEwNywx
MyArMTEwMywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRp
b25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICogd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9h
dHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1
ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVz
dE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dp
dGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3Jh
aXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAK
IC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYW5kX3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNlc19hdHRyaWJ1dGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmlu
ZGV4IGY0OGE5YzgzMzcwZjUzNGNmNTA4YWEzY2ZlY2FlMjU5NzY2N2VjNjcuLjQ5YTJmYzdkMGYx
ZTg3OWQ4OGY5OTk1Mzk3Yzk5NWVhZjMwM2NiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC04Niw3ICs4Niw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0K
ICAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJl
YWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJz
aG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0QXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RP
YmpTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRTaG9ydEF0dHIiLCBE
b250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialVu
c2lnbmVkU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIkF0dHIiLCBEb250RGVsZXRl
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0ciwgTm9JbnRyaW5zaWMgfSwKKyAg
ICB7ICJsb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibG9uZ0xvbmdBdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0xvbmdB
dHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgRG9udERl
bGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNp
Z25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzdHJpbmdBdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialN0cmluZ0F0dHIs
IE5vSW50cmluc2ljIH0sCkBAIC0yNjYsOCArMjY2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIkNPTlNUX0pB
VkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVNDUklQVCksIChp
bnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInZvaWRNZXRob2QiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRy
aW5zaWMgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpG
dW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJp
bnNpYyB9LAotICAgIHsgIk1ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiTWV0aG9kV2l0
aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdz
KSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ01ldGhvZCIsIERvbnRE
ZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCksIChpbnRwdHJfdCkwLCBO
b0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBK
U0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJt
ZXRob2RXaXRoU2VxdWVuY2VBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LApAQCAt
NDYzLDEyICs0NjMsMTIgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmEKIH0KIAogCi1KU1ZhbHVl
IGpzVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0
eU5hbWUpCitKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5hdHRy
KCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ0F0dHIoKSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTAwMSwxMiArMTAwMSwxMiBAQCB2b2lkIHNldEpT
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNP
YmplY3QsIEpTVmFsdQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGltcGwt
PnNldEF0dHIoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2YWx1ZS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbXBsLT5zZXRMb25nQXR0cih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0x
MTU5LDkgKzExNTksNyBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsCiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+
c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSwgZWMpOwotICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKIApAQCAtMTE4MSw5ICsxMTc5LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IHZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUu
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogfQogCiAKQEAgLTEyMzEsOSArMTIyNyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPCiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRv
VGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoo
dmFsdWUpKTsKIH0KIAogCkBAIC0xMjQyLDEyICsxMjM2LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVj
LCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRleHQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsK
IH0KIAogCkBAIC0xMjY4LDEyICsxMjYwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVj
KTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2Ny
aXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTQ1MSw3ICsxNDQxLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nh
c3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0xNDYwLDExICsxNDUwLDEx
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9i
aihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcs
IHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXBsLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
c3RyQXJnLCBvYmpBcmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDczLDEx
ICsxNDYzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBp
bXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAKLSAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bWV0aG9kKCkpOworICAgIEpTQzo6
SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nTWV0aG9kKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDg3LDcgKzE0NzcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFyZ3MoRXhlY1N0YXRlKgogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxv
bmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCku
dG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE0OTcsNyArMTQ4Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QXJncyhFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVl
IHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpB
cmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ01ldGhv
ZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xNTI0LDcgKzE1MTQsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFy
Z3MoRXhlY1N0YQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRl
Z2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE1MzQsNyArMTUyNCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJn
cyhFeGVjU3RhCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGlt
cGwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKSk7CisgICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdU
Rjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJn
KSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTU2NSwx
MSArMTU1NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRQogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFy
ZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmco
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0lu
dDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+bWV0
aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpz
QXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwtPm1ldGhvZFJldHVy
bmluZ1NlcXVlbmNlKGxvbmdBcmcpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKQEAgLTIxNDQsMTAgKzIxMzQsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAK
LSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBp
bXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsKKyAgICBpbXBsLT5vdmVybG9hZGVk
TWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIApAQCAtMjE3OCwxMCArMjE2OCwxMCBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2Q0KAogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2Vy
KGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChBcmcpOworICAgIGltcGwtPm92ZXJsb2Fk
ZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtMjQ4NSwxMCArMjQ3NSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVj
KQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgYSogKHRvYShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CisgICAgYSogdmFsdWUodG9hKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgaW1wbC0+Y29udmVydDEoKTsKKyAgICBpbXBsLT5jb252ZXJ0MSh2YWx1ZSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUwMiwxMCArMjQ5
MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgYiogKHRvYihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgYiogdmFs
dWUodG9iKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDIoKTsKKyAgICBp
bXBsLT5jb252ZXJ0Mih2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIApAQCAtMjUxOSwxMCArMjUwOSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBl
eGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgZCogKHRvZChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CisgICAgZCogdmFsdWUodG9kKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0gICAgaW1wbC0+Y29udmVydDQoKTsKKyAgICBpbXBsLT5jb252ZXJ0NCh2YWx1ZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUzNiwxMCAr
MjUyNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgZSogKHRvZShNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgZSog
dmFsdWUodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDUoKTsKKyAg
ICBpbXBsLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDEyMzI3MjQwNTJhZGYyMGViOGE2OTA2YTAyMTE5
NTM1M2QxYTExY2YuLmY4MTBkODAwMTYwNGI4NmE0MjlmYTg4YjU1NGZiYmU1OTAxOGU3MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0ZWQ6CiAKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QoSlND
OjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNT
dGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdp
dGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTIyOCw4ICsyMjgsOCBAQCBKU0M6OkpTVmFs
dWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZQogdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpV
bnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwotSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9iakxvbmdM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwog
SlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggNmE5
MDk5MTFjYzhiYjBhYzAzMWM3MDEyOWE0MTkxNjJkNjVlZWNhZS4uOTU2MzM1OTFlN2ZiMzcwYjhk
ZGI2MGFhNzY0NTEyN2RkZDdjYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNzAsNyArNzAsNyBAQCBl
bnVtIHsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01UZXN0T2JqICpyZWFkT25seVRl
c3RPYmpBdHRyOwogQHByb3BlcnR5IHNob3J0IHNob3J0QXR0cjsKIEBwcm9wZXJ0eSB1bnNpZ25l
ZCBzaG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKLUBwcm9wZXJ0eSBsb25nIGxvbmcgQXR0cjsKK0Bw
cm9wZXJ0eSBpbnQgbG9uZ0F0dHI7CiBAcHJvcGVydHkgbG9uZyBsb25nIGxvbmdMb25nQXR0cjsK
IEBwcm9wZXJ0eSB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRMb25nTG9uZ0F0dHI7CiBAcHJv
cGVydHkoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHI7CkBAIC0xMTcsMTggKzExNywxOCBAQCBl
bnVtIHsKIEBwcm9wZXJ0eSBpbnQgcmVwbGFjZWFibGVBdHRyaWJ1dGU7CiAKIC0gKHZvaWQpdm9p
ZE1ldGhvZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwotLSAobG9u
ZyBsb25nKU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
Ky0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5n
ICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKGludClsb25nTWV0aG9k
OworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmlu
ZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICop
b2JqTWV0aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcp
QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
OworLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERPTVRl
c3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1
ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAq
KWtleTsKIC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9N
RGljdGlvbmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQp
Y3VzdG9tTWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
Ky0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClhZGRFdmVu
dExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVy
PilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2
ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVu
ZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNj
cmlwdFN0YXRlVm9pZDsKQEAgLTE2NSwxMCArMTY1LDEwIEBAIGVudW0gewogLSAodm9pZClvdmVy
bG9hZGVkTWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogI2VuZGlmCiAtIChET01TVkdEb2N1bWVu
dCAqKWdldFNWR0RvY3VtZW50OwotLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKTsKLS0gKHZvaWQp
Y29udmVydDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZlcnQ0OihET01kICopOwotLSAodm9pZClj
b252ZXJ0NTooRE9NZSAqKTsKKy0gKHZvaWQpY29udmVydDE6KERPTWEgKil2YWx1ZTsKKy0gKHZv
aWQpY29udmVydDI6KERPTWIgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDQ6KERPTWQgKil2YWx1
ZTsKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1ZTsKIC0gKERPTVNWR1BvaW50ICopbXV0
YWJsZVBvaW50RnVuY3Rpb247CiAtIChET01TVkdQb2ludCAqKWltbXV0YWJsZVBvaW50RnVuY3Rp
b247CiAtICh2b2lkKW9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDhiMmJjZjAwYjFmOTY0MTNj
OTBjOTA5MDBkNTBmODhjOGVhZDZkNjIuLjNkZDBlN2FmMGNhNjc5YzgxYTc2ZmZjNjFkNDBhM2Nh
NmE5NTc2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMTQwLDE2ICsxNDAsMTYgQEAKICAgICBJTVBM
LT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLS0gKGxv
bmcgbG9uZylBdHRyCistIChpbnQpbG9uZ0F0dHIKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmF0dHIoKTsKKyAgICByZXR1cm4g
SU1QTC0+bG9uZ0F0dHIoKTsKIH0KIAotLSAodm9pZClzZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0
cgorLSAodm9pZClzZXRMb25nQXR0cjooaW50KW5ld0xvbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnNldEF0dHIobmV3QXR0cik7
CisgICAgSU1QTC0+c2V0TG9uZ0F0dHIobmV3TG9uZ0F0dHIpOwogfQogCiAtIChsb25nIGxvbmcp
bG9uZ0xvbmdBdHRyCkBAIC0zNDgsOSArMzQ4LDcgQEAKIC0gKHZvaWQpc2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihl
Yyk7CisgICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pOwogfQogCiAtIChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTM3
OSw5ICszNzcsNyBAQAogLSAodm9pZClzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjoo
TlNTdHJpbmcgKiluZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihu
ZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNl
T25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChOU1N0cmluZyAq
KXN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC00NTAsOSArNDQ2LDcgQEAKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29y
ZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6
cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAog
LSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2Vz
CkBAIC00NjksOSArNDYzLDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwt
PnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29y
ZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlCkBAIC01MDIsOSArNDk0LDcgQEAKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwog
Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5l
d1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMp
LCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNv
cmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUKQEAgLTczOSwyMiArNzI5LDIyIEBACiAg
ICAgSU1QTC0+dm9pZE1ldGhvZCgpOwogfQogCi0tICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczoo
bG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9i
aiAqKW9iakFyZworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnZvaWRNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT52b2lkTWV0
aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQogCi0tIChsb25n
IGxvbmcpTWV0aG9kCistIChpbnQpbG9uZ01ldGhvZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+bWV0aG9kKCk7CisgICAgcmV0
dXJuIElNUEwtPmxvbmdNZXRob2QoKTsKIH0KIAotLSAobG9uZyBsb25nKU1ldGhvZFdpdGhBcmdz
Oihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnCistIChpbnQpbG9uZ01ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+
bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgcmV0dXJuIElN
UEwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9
CiAKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2QKQEAgLTc2MywxMCArNzUzLDEwIEBACiAgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2QoKSkpOwogfQogCi0tIChET01U
ZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmlu
ZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKERPTVRlc3RPYmogKilv
YmpNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBv
YmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKSkpOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmcKQEAgLTgxMCwxMCArODAwLDEwIEBACiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kKCk7CiB9CiAK
LS0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0
cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKHZvaWQpY3VzdG9t
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJn
LCBjb3JlKG9iakFyZykpOworICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihO
U1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1
c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUKQEAgLTEwMDUsMjggKzk5NSwyOCBAQAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVydDE6KERPTWEgKikKKy0gKHZvaWQpY29u
dmVydDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQx
KGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKQorLSAodm9pZClj
b252ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVy
dDIoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQ0OihET01kICopCistICh2b2lk
KWNvbnZlcnQ0OihET01kICopdmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDQoY29yZSgpKTsKKyAgICBJTVBMLT5jb252
ZXJ0NChjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVydDU6KERPTWUgKikKKy0gKHZv
aWQpY29udmVydDU6KERPTWUgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NShjb3JlKCkpOworICAgIElNUEwtPmNv
bnZlcnQ1KGNvcmUodmFsdWUpKTsKIH0KIAogLSAoRE9NU1ZHUG9pbnQgKiltdXRhYmxlUG9pbnRG
dW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCmluZGV4IGYyZDFmZTgxMGQxYmFlZDE3NDU2YzdiMTQwMWE5Nzg2NzFiZDNmYzMuLjMy
YjRmMTgwMTVhY2Q4MjVmODkyYjNhNGFjMTVjZTIzY2Q4ZTdhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTUxLDcgKzUxLDYg
QEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAg
ICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbVjhNZWFzdXJlQXM9VGVzdEZlYXR1
cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKLSAgICAgICAgSlMsIFY4CiAgICAgICAgIC8vIFdL
X3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCiAgICAgICAgIGF0dHJpYnV0
ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgWE1MT2JqQXR0cjsKICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICAgICAgICAgICBjcmVhdGU7CkBAIC0yMjYsMTAgKzIyNSwxMCBAQCBt
b2R1bGUgdGVzdCB7CiAgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gU1ZHRG9jdW1lbnQg
Z2V0U1ZHRG9jdW1lbnQoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBh
KTsKLSAgICAgICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1V
bmRlZmluZWRdIGIpOwotICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBkKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlKTsKKyAgICAgICAgdm9pZCBjb252
ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBhIHZhbHVlKTsKKyAgICAg
ICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRd
IGIgdmFsdWUpOworICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBkIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlIHZhbHVlKTsKIAogICAgICAg
ICBhdHRyaWJ1dGUgU1ZHUG9pbnQgbXV0YWJsZVBvaW50OwogICAgICAgICBhdHRyaWJ1dGUgW0lt
bXV0YWJsZV0gU1ZHUG9pbnQgaW1tdXRhYmxlUG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDUwMjQyOGE3
MTAwYzVmNzE2NjNjZjVjNjkxNTE2OWQ5NzIyMTU1MzUuLjgzOTBmMTA1ODE3MjNiMWRiY2MwZmIw
NTU3ZDBhMDBiZDUyMzBhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xNjEsMTkgKzE2MSwxOSBAQCBzdGF0
aWMgdm9pZCB1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2OAogICAgIHJldHVybjsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
bG9uZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouQXR0ci5f
Z2V0Iik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nQXR0ci5fZ2V0Iik7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBy
ZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5hdHRyKCkpKTsK
KyAgICByZXR1cm4gdjhJbnRlZ2VyKGltcC0+bG9uZ0F0dHIoKSwgaW5mby5HZXRJc29sYXRlKCkp
OwogfQogCi1zdGF0aWMgdm9pZCBBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCitzdGF0aWMgdm9pZCBsb25nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouQXR0ci5fc2V0Iik7Cisg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nQXR0ci5fc2V0Iik7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBsb25nIGxvbmcg
diA9IHRvSW50NjQodmFsdWUpOwotICAgIGltcC0+c2V0QXR0cihXVEY6OmdldFB0cih2KSk7Cisg
ICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldExvbmdBdHRyKHYpOwogICAg
IHJldHVybjsKIH0KIApAQCAtNDUxLDEwICs0NTEsNyBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
bwogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3Nl
dCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CiAgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAo
VU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0
ZSgpKTsKKyAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVy
bjsKIH0KIApAQCAtNDkzLDEwICs0OTAsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0
Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJh
bWV0ZXI8PiwgdiwgdmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+
c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VM
WShlYykpCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOwor
ICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJu
OwogfQogCkBAIC01ODIsMTMgKzU3NiwxMCBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzLl9z
ZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4
VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDog
MDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBT
Y3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybjsK
LSAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpn
ZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNl
cHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpnZXRQdHIodikpOwogICAgIGlmIChzdGF0ZS5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSwgaW5m
by5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybjsKQEAgLTYxMSwxMSArNjAyLDggQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsK
LSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8u
R2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47
CiB9CiAKQEAgLTY2NywxNCArNjU1LDExIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6
Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICgh
c3RhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGltcC0+c2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0
ZSwgc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFko
ZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAg
ICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9u
KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDY4LDMwICsxMDUzLDMw
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05f
QkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZvaWRN
ZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9kQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9u
Z01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5NZXRob2QiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxv
bmdNZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91Ymxl
PihpbXAtPk1ldGhvZCgpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2Qo
KSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhv
ZFdpdGhBcmdzIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kV2l0aEFy
Z3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9C
TE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9u
Z0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhW
OFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJn
LCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIs
IERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nh
c3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKSk7Cisg
ICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJB
cmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpA
QCAtMTEwOCwxMCArMTA5MywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1l
dGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywg
QXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0
ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZp
bmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDog
MCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
b2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0
b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdz
LkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kV2l0aFNlcXVlbmNlQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKQEAgLTExMzEsOCArMTExNiw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9u
ZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpOwotICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2UoQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9D
SyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0
dXJuaW5nU2VxdWVuY2UobG9uZ0FyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTE1MzgsOCArMTUyMyw4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChv
YmpBcmcpOwogICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2Qob2JqQXJnLCBBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50
MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OworICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVy
biB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNTYwLDggKzE1NDUsOCBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2QoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBp
bXAtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7
CiB9CiAKQEAgLTE3NDYsOCArMTczMSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
ZW5hYmxlZEF0UnVudGltZU1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBs
b25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDEoQXJnKTsK
KyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJs
ZWRBdFJ1bnRpbWVNZXRob2QxKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
fQogCkBAIC0xNzU3LDggKzE3NDIsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyKEFyZyk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVk
QXRSdW50aW1lTWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTc2OCw4ICsxNzUzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQ
ZXJDb250ZXh0TWV0aG9kMShsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTc3OSw4ICsxNzY0LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQ
ZXJDb250ZXh0TWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTgyNSw4ICsxODEwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252
ZXJ0MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihh
cmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBp
bXAtPmNvbnZlcnQxKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAg
ICBpbXAtPmNvbnZlcnQxKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApA
QCAtMTgzNiw4ICsxODIxLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0
MkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAt
PmNvbnZlcnQyKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBp
bXAtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAt
MTg0Nyw4ICsxODMyLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdl
dElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZCosICwgVjhkOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNv
bnZlcnQ0KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGQqLCB2YWx1ZSwgVjhkOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAt
PmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg1
OCw4ICsxODQzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZSosICwgVjhlOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZl
cnQ1KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGUqLCB2YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNv
bnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTkyNCw4
ICsxOTA5LDggQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJp
YnV0ZSBWOFRlc3RPYmpBdHRyc1tdID0gewogICAgIHsic2hvcnRBdHRyIiwgVGVzdE9ialY4SW50
ZXJuYWw6OnNob3J0QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkU2hv
cnRBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJ1bnNpZ25lZFNo
b3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0QXR0ckF0dHJHZXR0ZXIs
IFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8g
ZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3Rh
dGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFu
Y2UgKi99LAotICAgIC8vIEF0dHJpYnV0ZSAnQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0
dHI6ICcnKQotICAgIHsiQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpBdHRyQXR0ckdldHRlciwg
VGVzdE9ialY4SW50ZXJuYWw6OkF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAv
LyBBdHRyaWJ1dGUgJ2xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisg
ICAgeyJsb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJHZXR0ZXIsIFRl
c3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAg
IC8vIEF0dHJpYnV0ZSAnbG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
JycpCiAgICAgeyJsb25nTG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0xvbmdBdHRy
QXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJTZXR0ZXIsIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndW5zaWduZWRMb25nTG9uZ0F0dHInIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKQEAgLTIwNDAsNyArMjAyNSw3IEBAIHN0YXRp
YyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2JqQXR0
cnNbXSA9IHsKIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENhbGxi
YWNrIFY4VGVzdE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1ldGhvZCIsIFRlc3RPYmpW
OEludGVybmFsOjp2b2lkTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiTWV0aG9kIiwgVGVzdE9ialY4
SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bG9uZ01ldGhvZENhbGxiYWNrfSwKICAgICB7Im9iak1ldGhvZCIsIFRlc3RPYmpW
OEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFja30sCiAgICAgeyJtZXRob2RSZXR1cm5pbmdTZXF1
ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNr
fSwKICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVk
VmFsdWVDYWxsYmFja30sCkBAIC0yMTgwLDExICsyMTY1LDExIEBAIHN0YXRpYyB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6
OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiB2b2lkTWV0aG9kV2l0aEFyZ3NT
aWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJn
Yywgdm9pZE1ldGhvZFdpdGhBcmdzQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woInZvaWRNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3
KFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmlu
ZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0b20gU2ln
bmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAgICBjb25zdCBpbnQgTWV0aG9kV2l0aEFyZ3NBcmdj
ID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBNZXRob2RXaXRoQXJn
c0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpH
ZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBNZXRob2RX
aXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBNZXRob2RXaXRoQXJn
c0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woIk1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVz
dE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIE1l
dGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9uZ01l
dGhvZFdpdGhBcmdzJworICAgIGNvbnN0IGludCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsK
KyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFyZ3NB
cmd2W2xvbmdNZXRob2RXaXRoQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6
OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxvbmdN
ZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25nTWV0
aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+U2V0
KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibG9uZ01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlv
blRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxi
YWNrLCB2OFVuZGVmaW5lZCgpLCBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAg
IC8vIEN1c3RvbSBTaWduYXR1cmUgJ29iak1ldGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBv
YmpNZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165914</attachid>
            <date>2012-09-26 19:04:33 -0700</date>
            <delta_ts>2012-09-26 23:17:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120927110350.patch</filename>
            <type>text/plain</type>
            <size>179541</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWExZTYxN2UwM2U4MTA2
MGM0YmUzNTZlZDUwYjA5ZjEwNzNmN2JjMS4uM2M4OTJlM2RiNDU0MTRlYjMzYWEwYmJiOTk0NGE5
YjljMGM2MGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNSBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBLZW50YXJvIEhhcmEuCisKKyAgICAgICAgUmVjcmVhdGVkIGEgbmV3
IElETFBhcnNlciBiYXNlZCBvbiB0aGUgV2ViSURMIHNwZWM6CisgICAgICAgIGh0dHA6Ly9kZXYu
dzMub3JnLzIwMDYvd2ViYXBpL1dlYklETC8KKworICAgICAgICBGaXJzdGx5IG1lcmdlcyB0d28g
Z3JhbW1hcnMgKGVkaXRvcnMgZHJhZnQgYW5kIFdlYktpdCBjdXJyZW50IElETCkgYW5kCisgICAg
ICAgIGdlbmVyYXRlcyBJREwgcGFyc2VyIGJ5IHVzaW5nIHB5dGhvbiBzY3JpcHQuIFRoZSBnZW5l
cmF0ZWQgcGFyc2VyIGlzCisgICAgICAgIG1vZGlmaWVkIHRvIGdlbmVyYXRlIHRoZSBzYW1lIG91
dHB1dHMgYXMgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4KKyAgICAgICAgVGhlIG5ldyBJRExQ
YXJzZXIucG0gY2FuIHBhcnNlIGJvdGggV2ViSURMIGdyYW1tYXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBUZXN0ZWQgYnkgY29tcGFyaW5nIHdpdGggc291cmNlcyBnZW5lcmF0ZWQgYnkKKyAg
ICAgICAgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAobmV3KToKKyAgICAgICAgKGFzc2VydFRva2Vu
VmFsdWUpOgorICAgICAgICAoYXNzZXJ0VG9rZW5UeXBlKToKKyAgICAgICAgKGFzc2VydFVuZXhw
ZWN0ZWRUb2tlbik6CisgICAgICAgIChQYXJzZSk6CisgICAgICAgIEEgbWV0aG9kIHRvIHN0YXJ0
IHBhcnNpbmcgYSBJREwgZmlsZS4gQXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzIGFyZQorICAg
ICAgICB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtJ3MgUGFyc2UgbWV0aG9k
LgorICAgICAgICAobmV4dFRva2VuKToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gc2VlIGEgbmV4
dCB0b2tlbiwgYmVjYXVzZSBvZiBMTCgxKS4KKyAgICAgICAgKGdldFRva2VuKToKKyAgICAgICAg
UmV0dXJucyBjdXJyZW50IHRva2VuLCBhbmQgdXBkYXRlIG5leHQgYW5kIGN1cnJlbnQgdG9rZW4u
CisgICAgICAgIChnZXRUb2tlbkludGVybmFsKToKKyAgICAgICAgQWNjb3JkaW5nIHRvIHRoZSBy
ZWd1bGFyIGV4cHJlc3Npb25zIGRlZmluZWQgaW4gV2ViSURMIHNwZWMsIGV4dHJhY3RzCisgICAg
ICAgIG9uZSBuZXcgdG9rZW4gZnJvbSBhIHRleHQgc3RyaW5nLiBUaGUgb3JkZXIgb2YgdGhlIHJl
Z3VsYXIgZXhwcmVzc2lvbnMKKyAgICAgICAgdG8gYmUgdGVzdGVkIGlzIGltcG9ydGFudCwgaS5l
LiAiMC4iIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGEgZmxvYXQKKyAgICAgICAgdG9rZW4sIGJ1
dCBpZiBmaXJzdGx5IGNoZWNrcyB0aGUgaW50ZWdlciByZWd1bGFyIGV4cHJlc3Npb24sICIwLiIg
aXMKKyAgICAgICAgY29uc2lkZXJlZCBhcyAiMCIgYW5kICIuIi4KKyAgICAgICAgKHBhcnNlRGVm
aW5pdGlvbik6CisgICAgICAgIChwYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2UpOgorICAgICAgICAo
cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZSk6
CisgICAgICAgIChwYXJzZVBhcnRpYWwpOgorICAgICAgICAocGFyc2VQYXJ0aWFsRGVmaW5pdGlv
bik6CisgICAgICAgIChwYXJzZVBhcnRpYWxJbnRlcmZhY2UpOgorICAgICAgICAocGFyc2VJbnRl
cmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKHBhcnNl
RGljdGlvbmFyeU1lbWJlcik6CisgICAgICAgIChwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5KToKKyAg
ICAgICAgKHBhcnNlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uKToKKyAg
ICAgICAgKHBhcnNlRXhjZXB0aW9uTWVtYmVycyk6CisgICAgICAgIChwYXJzZUVudW0pOgorICAg
ICAgICAocGFyc2VFbnVtVmFsdWVMaXN0KToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tSZXN0KToK
KyAgICAgICAgKHBhcnNlVHlwZWRlZik6CisgICAgICAgIChwYXJzZUltcGxlbWVudHNTdGF0ZW1l
bnQpOgorICAgICAgICAocGFyc2VDb25zdCk6CisgICAgICAgIChwYXJzZUNvbnN0VmFsdWUpOgor
ICAgICAgICAocGFyc2VCb29sZWFuTGl0ZXJhbCk6CisgICAgICAgIChwYXJzZUZsb2F0TGl0ZXJh
bCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcik6CisgICAg
ICAgIChwYXJzZVNlcmlhbGl6ZXIpOgorICAgICAgICAocGFyc2VTZXJpYWxpemF0aW9uUGF0dGVy
bik6CisgICAgICAgIChwYXJzZVF1YWxpZmllcik6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9y
T3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChwYXJz
ZUF0dHJpYnV0ZVJlc3QpOgorICAgICAgICAocGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU3BlY2lhbE9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVNwZWNpYWwpOgor
ICAgICAgICAocGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdCk6CisgICAgICAgIChwYXJzZUl0
ZXJhdG9yUmVzdCk6CisgICAgICAgIChwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9i
amVjdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvblJlc3QpOgorICAgICAgICAocGFyc2VBcmd1
bWVudHMpOgorICAgICAgICAocGFyc2VBcmd1bWVudCk6CisgICAgICAgIChwYXJzZU9wdGlvbmFs
T3JSZXF1aXJlZEFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnROYW1lKToKKyAgICAg
ICAgKHBhcnNlRXhjZXB0aW9uTWVtYmVyKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uRmllbGQp
OgorICAgICAgICAocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QpOgorICAgICAgICAocGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDIp
OgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWVLZXl3b3JkKToKKyAgICAgICAgKHBhcnNlVHlw
ZSk6CisgICAgICAgIChwYXJzZVNpbmdsZVR5cGUpOgorICAgICAgICAocGFyc2VVbmlvblR5cGUp
OgorICAgICAgICAocGFyc2VOb25BbnlUeXBlKToKKyAgICAgICAgKHBhcnNlUHJpbWl0aXZlVHlw
ZSk6CisgICAgICAgIChwYXJzZVVucmVzdHJpY3RlZEZsb2F0VHlwZSk6CisgICAgICAgIChwYXJz
ZUZsb2F0VHlwZSk6CisgICAgICAgIChwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUpOgorICAgICAg
ICAocGFyc2VOdWxsKToKKyAgICAgICAgKHBhcnNlR2V0KToKKyAgICAgICAgKHBhcnNlSW5oZXJp
dHNHZXR0ZXIpOgorICAgICAgICAocGFyc2VTZXRHZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VH
ZXRSYWlzZXMyKToKKyAgICAgICAgKHBhcnNlU2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlU2V0
UmFpc2VzMyk6CisgICAgICAgIChwYXJzZURlZmluaXRpb25PbGQpOgorICAgICAgICAocGFyc2VN
b2R1bGUpOgorICAgICAgICAocGFyc2VJbnRlcmZhY2VPbGQpOgorICAgICAgICAocGFyc2VJbnRl
cmZhY2VNZW1iZXJPbGQpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5T2xkKToKKyAgICAgICAg
KHBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk9sZCk6
CisgICAgICAgIChwYXJzZUVudW1PbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPck9wZXJh
dGlvbk9ySXRlcmF0b3JPbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJl
c3RPbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPbGQpOgorICAgICAgICAocGFyc2VJbik6
CisgICAgICAgIChwYXJzZU9wdGlvbmFsU2VtaWNvbG9uKToKKyAgICAgICAgKGFwcGx5TWVtYmVy
TGlzdCk6CisgICAgICAgIChhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkRPTVRlc3RPYmo6OmxvbmdBdHRyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnNldExvbmdB
dHRyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyk6CisgICAg
ICAgIChXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6
OmxvbmdNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpvYmpNZXRob2RX
aXRoQXJncyk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0MSk6CisgICAgICAgIChX
ZWJET01UZXN0T2JqOjpjb252ZXJ0Mik6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0
Myk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0NCk6CisgICAgICAgIChXZWJET01U
ZXN0T2JqOjpjb252ZXJ0NSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eSk6Cisg
ICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9sb25nX21ldGhvZCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xv
bmdfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9t
ZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEp
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0Mik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
Y29udmVydDQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NSk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVm9pZE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2Q0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0NSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmogbG9uZ0F0dHJdKToKKyAgICAgICAg
KC1bRE9NVGVzdE9iaiBzZXRMb25nQXR0cjpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiB2b2lk
TWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBs
b25nTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogbG9uZ01ldGhvZFdpdGhBcmdzOnN0
ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBjdXN0b21NZXRob2RXaXRo
QXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQxOl0p
OgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQyOl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIGNvbnZlcnQzOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQ0Ol0pOgorICAg
ICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQ1Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgUmVtb3ZlZCB0aGUgbGluZSB3aGljaCBoYXMg
b25seSAiSlNDLCBWOCIuCisgICAgICAgIEFkZGVkIGFyZ3VtZW50IHRvIGNvbnZlcnQxLCAuLi4g
Y29udmVydDUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJT
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RX
aXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjps
b25nTWV0aG9kQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kMkNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0
aG9kNENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFi
bGVkQXRSdW50aW1lTWV0aG9kMUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjplbmFibGVkQXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZFBlckNvbnRl
eHRNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQ0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQ1Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgorICAgICAgICBBcyBvbmx5IHJlc3RyaWN0ZWQg
ZXh0ZW5kZWQgYXR0cmlidXRlIHN5bnRheCBpcyBzdXBwb3J0ZWQsIG1vZGlmeSB0aGUKKyAgICAg
ICAgaWRsIGZyb20gWy4uLl0gWy4uLl0gdG8gWy4uLiwgLi4uXS4KKwogMjAxMi0wOS0yNiAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gQ29w
eSBUaW1lSW5wdXRUeXBlLntjcHAsaH0gdG8gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUue2NwcCxofQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCmluZGV4IDQxNTk2OTI3YTFiNTAwNGQ3
ZmNjODA5MzNlN2ExZjBlZTJmOGIyZDkuLjcxNGQxNDkyZTU2YjRmNDE4MjQwNmNlNjIwMTY2ZmIw
MjIzOGY5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKQEAgLTQ1LDcgKzQ1LDcgQEAgbW9kdWxlIGF1
ZGlvIHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gbG9vcGluZzsgLy8gVGhpcyBpcyBhbiBh
bGlhcyBmb3IgdGhlIC5sb29wIGF0dHJpYnV0ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHku
CiAKICAgICAgICAgW1Y4TWVhc3VyZUFzPVdlYkF1ZGlvU3RhcnRdIHZvaWQgc3RhcnQoaW4gZG91
YmxlIHdoZW4pOwotICAgICAgICBbVjhNZWFzdXJlQXM9V2ViQXVkaW9TdGFydF0gW0ltcGxlbWVu
dGVkQXM9c3RhcnRHcmFpbl0gdm9pZCBzdGFydChpbiBkb3VibGUgd2hlbiwgaW4gZG91YmxlIGdy
YWluT2Zmc2V0LCBpbiBkb3VibGUgZ3JhaW5EdXJhdGlvbik7CisgICAgICAgIFtWOE1lYXN1cmVB
cz1XZWJBdWRpb1N0YXJ0LCBJbXBsZW1lbnRlZEFzPXN0YXJ0R3JhaW5dIHZvaWQgc3RhcnQoaW4g
ZG91YmxlIHdoZW4sIGluIGRvdWJsZSBncmFpbk9mZnNldCwgaW4gZG91YmxlIGdyYWluRHVyYXRp
b24pOwogICAgICAgICB2b2lkIHN0b3AoaW4gZG91YmxlIHdoZW4pOwogCiAjaWYgZGVmaW5lZChF
TkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJiYgRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KaW5kZXggMDU3YzAzZDZj
NmEyYjkxZjkzYmRlYTVjMDJiNzQ5NjFiZmI4OWQ0MS4uNjM0YjdkZjA4MDJkMDVlZjliOTU0ZGM3
MDViNDEzMDcxMzBhYTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExQYXJzZXIucG0KQEAgLTIxLDQ1MSArMjEsMjMwNiBAQAogCiBwYWNrYWdlIElETFBhcnNlcjsK
IAordXNlIENsYXNzOjpTdHJ1Y3Q7CisKIHVzZSBzdHJpY3Q7Ci11c2UgcmUgJ2V2YWwnOwogCiB1
c2UgSVBDOjpPcGVuMjsKIHVzZSBJRExTdHJ1Y3R1cmU7CiB1c2UgcHJlcHJvY2Vzc29yOwogCi11
c2UgY29uc3RhbnQgTU9ERV9VTkRFRiAgICA9PiAwOyAjIERlZmF1bHQgbW9kZS4KLQotdXNlIGNv
bnN0YW50IE1PREVfTU9EVUxFICA9PiAxMDsgIyAnbW9kdWxlJyBzZWN0aW9uCi11c2UgY29uc3Rh
bnQgTU9ERV9JTlRFUkZBQ0UgID0+IDExOyAjICdpbnRlcmZhY2UnIHNlY3Rpb24KLXVzZSBjb25z
dGFudCBNT0RFX0VYQ0VQVElPTiAgPT4gMTI7ICMgJ2V4Y2VwdGlvbicgc2VjdGlvbgordXNlIGNv
bnN0YW50IFN0cmluZ1Rva2VuID0+IDA7Cit1c2UgY29uc3RhbnQgSW50ZWdlclRva2VuID0+IDE7
Cit1c2UgY29uc3RhbnQgRmxvYXRUb2tlbiA9PiAyOwordXNlIGNvbnN0YW50IElkZW50aWZpZXJU
b2tlbiA9PiAzOwordXNlIGNvbnN0YW50IE90aGVyVG9rZW4gPT4gNDsKK3VzZSBjb25zdGFudCBF
bXB0eVRva2VuID0+IDU7CisKK3N0cnVjdCggVG9rZW4gPT4geworICAgIHR5cGUgPT4gJyQnLCAj
IHR5cGUgb2YgdG9rZW4KKyAgICB2YWx1ZSA9PiAnJCcgIyB2YWx1ZSBvZiB0b2tlbgorfSk7CisK
K3N1YiBuZXcgeworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworCisgICAgbXkgJGVtcHR5VG9rZW4g
PSBUb2tlbi0+bmV3KCk7CisgICAgJGVtcHR5VG9rZW4tPnR5cGUoRW1wdHlUb2tlbik7CisgICAg
JGVtcHR5VG9rZW4tPnZhbHVlKCJlbXB0eSIpOworCisgICAgbXkgJHNlbGYgPSB7CisgICAgICAg
IERvY3VtZW50Q29udGVudCA9PiAiIiwKKyAgICAgICAgRW1wdHlUb2tlbiA9PiAkZW1wdHlUb2tl
biwKKyAgICAgICAgTmV4dFRva2VuID0+ICRlbXB0eVRva2VuLAorICAgICAgICBUb2tlbiA9PiAk
ZW1wdHlUb2tlbiwKKyAgICAgICAgTGluZSA9PiAiIiwKKyAgICAgICAgTGluZU51bWJlciA9PiAx
CisgICAgfTsKKyAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKK30KIAotIyBIZWxwZXIg
dmFyaWFibGVzCi1teSBAdGVtcG9yYXJ5Q29udGVudDsKK3N1YiBhc3NlcnRUb2tlblZhbHVlCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAk
dmFsdWUgPSBzaGlmdDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRtc2cgPSAiTmV4
dCB0b2tlbiBzaG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgp
IC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAoJGxpbmUpKSB7Cisg
ICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAuICRsaW5lOworICAgIH0KKyAgICBkaWUg
JG1zZyB1bmxlc3MgJHRva2VuLT52YWx1ZSgpIGVxICR2YWx1ZTsKK30KIAotbXkgJHBhcnNlTW9k
ZTsKLW15ICRwcmVzZXJ2ZWRQYXJzZU1vZGU7CitzdWIgYXNzZXJ0VG9rZW5UeXBlCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgIGRpZSAiTmV4dCB0b2tlbidzIHR5cGUgc2hvdWxkIGJlICIgLiAkdHlwZSAu
ICIsIGJ1dCAiIC4gJHRva2VuLT50eXBlKCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9IHVubGVz
cyAkdG9rZW4tPnR5cGUoKSBlcSAkdHlwZTsKK30KIAotbXkgJGJlUXVpZXQ7ICMgU2hvdWxkIG5v
dCBkaXNwbGF5IGFueXRoaW5nIG9uIFNURE9VVD8KLW15ICRkb2N1bWVudDsgIyBXaWxsIGhvbGQg
dGhlIHJlc3VsdGluZyAnaWRsRG9jdW1lbnQnCi1teSAkcGFyZW50c09ubHk7ICMgSWYgMSwgcGFy
c2Ugb25seSBlbm91Z2ggdG8gcG9wdWxhdGUgcGFyZW50cyBsaXN0CitzdWIgYXNzZXJ0VW5leHBl
Y3RlZFRva2VuCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlm
dDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCB0b2tl
biAiIC4gJHRva2VuIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAo
JGxpbmUpKSB7CisgICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAuICRsaW5lOworICAg
IH0KKyAgICBkaWUgJG1zZzsKK30KIAotc3ViIEluaXRpYWxpemVHbG9iYWxEYXRhCitzdWIgUGFy
c2UKIHsKLSAgICBAdGVtcG9yYXJ5Q29udGVudCA9ICIiOworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGZpbGVOYW1lID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKKyAg
ICBteSAkcHJlcHJvY2Vzc29yID0gc2hpZnQ7CisKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsK
KworICAgIG15IEBsaW5lcyA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMs
ICRwcmVwcm9jZXNzb3IpOworICAgICRzZWxmLT57TGluZX0gPSAkbGluZXNbMF07CisgICAgJHNl
bGYtPntEb2N1bWVudENvbnRlbnR9ID0gam9pbignICcsIEBsaW5lcyk7CisKKyAgICAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICBldmFsIHsKKyAgICAgICAgbXkgJHJlc3VsdCA9ICRzZWxmLT5wYXJz
ZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQGRlZmluaXRpb25zLCBAeyRyZXN1bHR9KTsK
KworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkbmV4dCwgRW1wdHlUb2tlbik7CisgICAgfTsKKyAgICBkaWUgJEAg
LiAiIGluICRmaWxlTmFtZSIgaWYgJEA7CisKKyAgICBkaWUgIk5vIGRvY3VtZW50IGZvdW5kIiB1
bmxlc3MgQGRlZmluaXRpb25zOworCisgICAgbXkgJGRvY3VtZW50OworICAgIGlmICgkI2RlZmlu
aXRpb25zID09IDAgJiYgcmVmKCRkZWZpbml0aW9uc1swXSkgZXEgImlkbERvY3VtZW50Iikgewor
ICAgICAgICAkZG9jdW1lbnQgPSAkZGVmaW5pdGlvbnNbMF07CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgJGRvY3VtZW50ID0gbmV3IGlkbERvY3VtZW50KCk7CisgICAgICAgICRkb2N1bWVudC0+bW9k
dWxlKCIiKTsKKyAgICAgICAgcHVzaChAeyRkb2N1bWVudC0+Y2xhc3Nlc30sIEBkZWZpbml0aW9u
cyk7CisgICAgfQogCi0gICAgJHBhcnNlTW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgJHByZXNlcnZl
ZFBhcnNlTW9kZSA9IE1PREVfVU5ERUY7CisgICAgJGRvY3VtZW50LT5maWxlTmFtZSgkZmlsZU5h
bWUpOworICAgIHJldHVybiAkZG9jdW1lbnQ7Cit9CiAKLSAgICAkZG9jdW1lbnQgPSAwOwotICAg
ICRwYXJlbnRzT25seSA9IDA7CitzdWIgbmV4dFRva2VuCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICByZXR1cm4gJHNlbGYtPntOZXh0VG9rZW59OwogfQogCi0jIERlZmF1bHQgQ29uc3Ry
dWN0b3IKLXN1YiBuZXcKK3N1YiBnZXRUb2tlbgogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
LSAgICBteSAkcmVmZXJlbmNlID0geyB9OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgJHNl
bGYtPntUb2tlbn0gPSAkc2VsZi0+e05leHRUb2tlbn07CisgICAgJHNlbGYtPntOZXh0VG9rZW59
ID0gJHNlbGYtPmdldFRva2VuSW50ZXJuYWwoKTsKKyAgICByZXR1cm4gJHNlbGYtPntUb2tlbn07
Cit9CiAKLSAgICBJbml0aWFsaXplR2xvYmFsRGF0YSgpOworbXkgJHdoaXRlc3BhY2VUb2tlblBh
dHRlcm4gPSAnXltcdFxuXHIgXSpbXG5ccl0nOworbXkgJGZsb2F0VG9rZW5QYXR0ZXJuID0gJ14o
LT8oKFswLTldK1wuWzAtOV0qfFswLTldKlwuWzAtOV0rKShbRWVdWystXT9bMC05XSspP3xbMC05
XStbRWVdWystXT9bMC05XSspKSc7CitteSAkaW50ZWdlclRva2VuUGF0dGVybiA9ICdeKC0/WzEt
OV1bMC05XSp8LT8wW1h4XVswLTlBLUZhLWZdK3wtPzBbMC03XSopJzsKK215ICRzdHJpbmdUb2tl
blBhdHRlcm4gPSAnXihcIlteXCJdKlwiKSc7CitteSAkaWRlbnRpZmllclRva2VuUGF0dGVybiA9
ICdeKFtBLVpfYS16XVswLTlBLVpfYS16XSopJzsKK215ICRvdGhlclRva2VuUGF0dGVybiA9ICde
KDo6fFwuXC5cLnxbXlx0XG5cciAwLTlBLVpfYS16XSknOwogCi0gICAgJGJlUXVpZXQgPSBzaGlm
dDsKK3N1YiBnZXRUb2tlbkludGVybmFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAg
IGlmICgkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gLyR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJu
LykgeworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8oJHdoaXRlc3BhY2VU
b2tlblBhdHRlcm4pLy87CisgICAgICAgIG15ICRza2lwcGVkID0gJDE7CisgICAgICAgICRzZWxm
LT57TGluZU51bWJlcn0rKyB3aGlsZSAoJHNraXBwZWQgPX4gL1xuL2cpOworICAgICAgICBpZiAo
JHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC9eKFteXG5ccl0rKS8pIHsKKyAgICAgICAgICAg
ICRzZWxmLT57TGluZX0gPSAkc2VsZi0+e0xpbmVOdW1iZXJ9IC4gIjoiIC4gJDE7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkc2VsZi0+e0xpbmV9ID0gIlVua25vd24iOworICAgICAg
ICB9CisgICAgfQorICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzL14oW1x0XG5cciBd
KykvLzsKKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9IGVxICIiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+e0VtcHR5VG9rZW59OworICAgIH0KIAotICAgIGJsZXNzKCRyZWZlcmVu
Y2UsICRvYmplY3QpOwotICAgIHJldHVybiAkcmVmZXJlbmNlOworICAgIG15ICR0b2tlbiA9IFRv
a2VuLT5uZXcoKTsKKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kZmxvYXRU
b2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAg
ICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9
fiBzLyRmbG9hdFRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0K
KyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaW50ZWdlclRva2VuUGF0dGVy
bi8pIHsKKyAgICAgICAgJHRva2VuLT50eXBlKEludGVnZXJUb2tlbik7CisgICAgICAgICR0b2tl
bi0+dmFsdWUoJDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaW50
ZWdlclRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBp
ZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kc3RyaW5nVG9rZW5QYXR0ZXJuLykgewor
ICAgICAgICAkdG9rZW4tPnR5cGUoU3RyaW5nVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVl
KCQxKTsKKyAgICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJHN0cmluZ1Rva2Vu
UGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kaWRlbnRpZmllclRva2VuUGF0dGVybi8pIHsKKyAgICAg
ICAgJHRva2VuLT50eXBlKElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUo
JDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRv
a2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNl
bGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kb3RoZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAg
ICR0b2tlbi0+dHlwZShPdGhlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7Cisg
ICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8v
OworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBkaWUgIkZhaWxlZCBpbiB0b2tl
bml6aW5nIGF0ICIgLiAkc2VsZi0+e0xpbmV9OwogfQogCi0jIFJldHVybnMgdGhlIHBhcnNlZCAn
aWRsRG9jdW1lbnQnCi1zdWIgUGFyc2UKK215ICRuZXh0QXR0cmlidXRlT2xkXzEgPSAnXihhdHRy
aWJ1dGV8aW5oZXJpdHxyZWFkb25seSkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14o
aW50fGxvbmd8c2hvcnR8dW5zaWduZWQpJCc7CitteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICde
KGRvdWJsZXxmbG9hdHx1bnJlc3RyaWN0ZWQpJCc7CitteSAkbmV4dFNldEdldFJhaXNlczJfMSA9
ICdeKDt8Z2V0cmFpc2VzfHNldHJhaXNlcykkJzsKK215ICRuZXh0QXJndW1lbnRMaXN0XzEgPSAn
XihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91Ymxl
fGZsb2F0fGlufGludHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1
bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dE5vbkFueVR5cGVfMSA9ICdeKGJvb2xl
YW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2N0ZXR8c2hvcnR8dW5yZXN0cmljdGVkfHVu
c2lnbmVkKSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRfMSA9ICdeKFwofEJ5dGVTdHJp
bmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxl
dGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2Jq
ZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRp
Y3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0T3B0
aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0XzEgPSAnXig7fD0pJCc7CitteSAkbmV4dEF0
dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xID0gJ14oc3RhdGljfHN0cmluZ2lmaWVyKSQn
OworbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMiA9ICdeKFwofEJ5dGVT
dHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91
YmxlfGZsb2F0fGdldHRlcnxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVl
bmNlfHNldHRlcnxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0
VW5yZXN0cmljdGVkRmxvYXRUeXBlXzEgPSAnXihkb3VibGV8ZmxvYXQpJCc7CitteSAkbmV4dEV4
dGVuZGVkQXR0cmlidXRlUmVzdDNfMSA9ICdeKCx8XF0pJCc7CitteSAkbmV4dEV4Y2VwdGlvbkZp
ZWxkXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8
ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3Ry
aWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dFR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2JqZWN0fG9j
dGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0U3Bl
Y2lhbHNfMSA9ICdeKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikk
JzsKK215ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxl
eGNlcHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhjZXB0aW9u
TWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVh
bnxieXRlfGNvbnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8
c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRBdHRyaWJ1
dGVSZXN0XzEgPSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7CitteSAkbmV4dFNpbmdsZVR5cGVf
MSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9h
dHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2ln
bmVkKSQnOworbXkgJG5leHRHZXRfMSA9ICdeKDt8Z2V0cmFpc2VzfGdldHRlcnxzZXRyYWlzZXN8
c2V0dGVyKSQnOworbXkgJG5leHRBcmd1bWVudE5hbWVfMSA9ICdeKGF0dHJpYnV0ZXxjYWxsYmFj
a3xjb25zdHxjcmVhdG9yfGRlbGV0ZXJ8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxnZXR0ZXJ8
aW1wbGVtZW50c3xpbmhlcml0fGludGVyZmFjZXxsZWdhY3ljYWxsZXJ8cGFydGlhbHxzZXJpYWxp
emVyfHNldHRlcnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlwZWRlZnx1bnJlc3RyaWN0ZWQpJCc7Citt
eSAkbmV4dENvbnN0VmFsdWVfMSA9ICdeKGZhbHNlfHRydWUpJCc7CitteSAkbmV4dENvbnN0VmFs
dWVfMiA9ICdeKC18SW5maW5pdHl8TmFOKSQnOworbXkgJG5leHREZWZpbml0aW9uXzEgPSAnXihj
YWxsYmFja3xpbnRlcmZhY2UpJCc7CitteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8x
ID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVk
fHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dFVuc2lnbmVkSW50ZWdlclR5cGVfMSA9ICdeKGlu
dHxsb25nfHNob3J0KSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHxCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNy
ZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNhbGxl
cnxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxz
aG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7Citt
eSAkbmV4dERlZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0eXxOYU58ZmFsc2V8bnVsbHx0cnVl
KSQnOworCitzdWIgcGFyc2VEZWZpbml0aW9ucwogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
LSAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKLSAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OwotICAg
IG15ICRwcmVwcm9jZXNzb3IgPSBzaGlmdDsKLSAgICAkcGFyZW50c09ubHkgPSBzaGlmdDsKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBkZWZpbml0aW9ucyA9ICgpOworCisgICAgd2hp
bGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAg
IG15ICRkZWZpbml0aW9uOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7Cisg
ICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICAgICAkZGVmaW5pdGlvbiA9ICRzZWxmLT5wYXJz
ZURlZmluaXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4
dERlZmluaXRpb25zXzEvKSB7CisgICAgICAgICAgICAkZGVmaW5pdGlvbiA9ICRzZWxmLT5wYXJz
ZURlZmluaXRpb25PbGQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGRlZmluZWQgKCRkZWZpbml0aW9uKSkgeworICAgICAgICAg
ICAgcHVzaChAZGVmaW5pdGlvbnMsICRkZWZpbml0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICByZXR1cm4gXEBkZWZpbml0aW9uczsKK30KIAotICAgIHByaW50ICIgfCAqKiogU3RhcnRpbmcg
dG8gcGFyc2UgJGZpbGVOYW1lLi4uXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgbXkgQGRv
Y3VtZW50Q29udGVudCA9IGFwcGx5UHJlcHJvY2Vzc29yKCRmaWxlTmFtZSwgJGRlZmluZXMsICRw
cmVwcm9jZXNzb3IpOworc3ViIHBhcnNlRGVmaW5pdGlvbgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgbXkgJGRh
dGFBdmFpbGFibGUgPSAwOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHREZWZpbml0aW9uXzEvKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlRW51bSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlVHlwZWRlZigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VJbXBsZW1lbnRzU3RhdGVtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICAjIFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAgICBmb3JlYWNoIChAZG9jdW1l
bnRDb250ZW50KSB7Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUgPSAkb2JqZWN0LT5EZXRlcm1p
bmVQYXJzZU1vZGUoJF8pOworc3ViIHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZQoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owog
Ci0gICAgICAgIGlmICgkbmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIHsKLSAgICAgICAgICAg
IGlmICgkZGF0YUF2YWlsYWJsZSBlcSAwKSB7Ci0gICAgICAgICAgICAgICAgJGRhdGFBdmFpbGFi
bGUgPSAxOyAjIFN0YXJ0IG5vZGUgYnVpbGRpbmcuLi4KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24oKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQorICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY2FsbGJhY2siLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2Ui
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAjIFVwZGF0ZSBkZXRlY3RlZCBkYXRh
IHN0cmVhbSBtb2RlLi4uCi0gICAgICAgIGlmICgkbmV3UGFyc2VNb2RlIG5lIE1PREVfVU5ERUYp
IHsKLSAgICAgICAgICAgICRwYXJzZU1vZGUgPSAkbmV3UGFyc2VNb2RlOwotICAgICAgICB9Citz
dWIgcGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgIHB1c2go
QHRlbXBvcmFyeUNvbnRlbnQsICRfKTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgICMgQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgcmVtYWluaW5n
IHRvIHBhcnNlLi4uCi0gICAgaWYgKCgkcGFyc2VNb2RlIG5lIE1PREVfVU5ERUYpIGFuZCAoJCN0
ZW1wb3JhcnlDb250ZW50ID4gMCkpIHsKLSAgICAgICAgJG9iamVjdC0+UHJvY2Vzc1NlY3Rpb24o
KTsKK3N1YiBwYXJzZUludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7Cisg
ICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsIF9fTElORV9fKTsK
KyAgICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRpbnRlcmZhY2VOYW1lVG9rZW4sIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZVRva2VuLT52
YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBh
cnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1i
ZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9f
KTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMp
OworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOwogICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CiAKLSAgICBwcmludCAiIHwgKioqIEZpbmlzaGVkIHBhcnNpbmchXG4iIHVubGVzcyAkYmVRdWll
dDsKLSAKLSAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CitzdWIgcGFyc2VQYXJ0
aWFsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0ID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gJGRvY3VtZW50OworICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJwYXJ0
aWFsIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbERlZmlu
aXRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIFBhcnNl
TW9kdWxlCitzdWIgcGFyc2VQYXJ0aWFsRGVmaW5pdGlvbgogewotICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNl
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbEludGVyZmFjZSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0
aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbERpY3Rpb25hcnko
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlUGFydGlh
bEludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIiwgX19MSU5F
X18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJ
ZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUludGVyZmFj
ZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQogCi0gICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgbW9kdWxlLi4uXG4iIHVu
bGVzcyAkYmVRdWlldDsKK3N1YiBwYXJzZUludGVyZmFjZU1lbWJlcnMKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15IEBpbnRlcmZhY2VNZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAo
MSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkg
JGludGVyZmFjZU1lbWJlcjsKKworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7
CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAgICAgICAkaW50ZXJmYWNlTWVtYmVyID0gJHNl
bGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEvKSB7CisgICAgICAgICAgICAkaW50ZXJm
YWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyT2xkKCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVk
ICRpbnRlcmZhY2VNZW1iZXIpIHsKKyAgICAgICAgICAgIHB1c2goQGludGVyZmFjZU1lbWJlcnMs
ICRpbnRlcmZhY2VNZW1iZXIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQGludGVy
ZmFjZU1lbWJlcnM7Cit9CiAKLSAgICBteSAkZGF0YSA9IGpvaW4oIiIsIEB0ZW1wb3JhcnlDb250
ZW50KTsKLSAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6bW9kdWxlU2VsZWN0b3IvOworc3Vi
IHBhcnNlSW50ZXJmYWNlTWVtYmVyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICBteSAkbW9kdWxlTmFtZSA9IChk
ZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbiki
KSk7Ci0gICAgJGRhdGFOb2RlLT5tb2R1bGUoJG1vZHVsZU5hbWUpOworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dEludGVyZmFjZU1lbWJlck9sZF8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2Vu
KCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBwcmludCAiICB8LS0tLT4gTW9k
dWxlOyBOQU1FIFwiJG1vZHVsZU5hbWVcIlxuIHwtXG4gfFxuIiB1bmxlc3MgJGJlUXVpZXQ7Citz
dWIgcGFyc2VEaWN0aW9uYXJ5Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFy
eSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdGFu
Y2UoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVycygp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0i
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAK
LXN1YiBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVycwog
ewotICAgIG15ICRwYWRTdHIgPSBzaGlmdDsKLSAgICBteSAkYXR0cnMgPSBzaGlmdDsKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsK
KyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QoKTsKKyAgICAgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlN
ZW1iZXIoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIH0gZWxzaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2Vw
dGlvbkZpZWxkXzEvKSB7CisgICAgICAgICAgICAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5TWVtYmVy
T2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9Cisg
ICAgfQorfQogCi0gICAgaWYgKCEleyRhdHRyc30pIHsKLSAgICAgICAgcmV0dXJuICIiOworc3Vi
IHBhcnNlRGljdGlvbmFyeU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8
ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgICRz
ZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVs
dCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgbXkg
QHRlbXA7Ci0gICAgd2hpbGUgKChteSAkbmFtZSwgbXkgJHZhbHVlKSA9IGVhY2goJXskYXR0cnN9
KSkgewotICAgICAgICBwdXNoKEB0ZW1wLCAiJG5hbWU9JHZhbHVlIik7CitzdWIgcGFyc2VQYXJ0
aWFsRGljdGlvbmFyeQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImRpY3Rpb25hcnkiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUo
JHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgcmV0dXJuICRwYWRTdHIgLiAiWyIg
LiBqb2luKCIsICIsIEB0ZW1wKSAuICJdIjsKK3N1YiBwYXJzZURlZmF1bHQKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRGVmYXVsdFZhbHVlKCk7CisgICAgfQogfQogCi1zdWIgcGFyc2VFeHRlbmRlZEF0
dHJpYnV0ZXMKK3N1YiBwYXJzZURlZmF1bHRWYWx1ZQogewotICAgIG15ICRzdHIgPSBzaGlmdDsK
LSAgICAkc3RyID1+IHMvXFtccyooLiopXHMqXF0vJDEvZzsKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IEZsb2F0VG9rZW4gfHwgJG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RGVmYXVsdFZhbHVlXzEvKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VDb25zdFZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IFN0cmluZ1Rva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUo
KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgbXkgJWF0dHJzID0gKCk7CitzdWIgcGFyc2VFeGNlcHRp
b24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICBteSAkZGF0YU5vZGUg
PSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJleGNlcHRpb24iLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleGNlcHRp
b25OYW1lVG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVHlwZSgkZXhjZXB0aW9uTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAk
ZGF0YU5vZGUtPm5hbWUoJGV4Y2VwdGlvbk5hbWVUb2tlbi0+dmFsdWUoKSk7CisgICAgICAgICRk
YXRhTm9kZS0+aXNFeGNlcHRpb24oMSk7CisgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPnBhcmVu
dHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICBt
eSAkZXhjZXB0aW9uTWVtYmVycyA9ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcnMoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19M
SU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkZGF0YU5vZGUsICRl
eGNlcHRpb25NZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0dHJpYnV0ZUxpc3QoJGRh
dGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRkYXRhTm9k
ZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgd2hpbGUgKCRzdHIgIX4gL15ccyokLykgewotICAgICAg
ICAjIFBhcnNlIG5hbWUKLSAgICAgICAgaWYgKCRzdHIgIX4gL15ccyooW1x3XGRdKykvKSB7Ci0g
ICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwot
ICAgICAgICB9Ci0gICAgICAgIG15ICRuYW1lID0gJDE7Ci0gICAgICAgICRzdHIgPX4gcy9eXHMq
KFtcd1xkXSspLy87Ci0KLSAgICAgICAgaWYgKCRzdHIgPX4gL15ccyo9LykgewotICAgICAgICAg
ICAgJHN0ciA9fiBzL15ccyo9Ly87Ci0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIk5hbWVkQ29u
c3RydWN0b3IiKSB7Ci0gICAgICAgICAgICAgICAgIyBQYXJzZSAnPScgbmFtZSAnKCcgYXJndW1l
bnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yTmFtZTsKLSAgICAg
ICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXHdcZF0rKS8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgJGNvbnN0cnVjdG9yTmFtZSA9ICQxOwotICAgICAgICAgICAgICAgICAgICAkc3RyID1+
IHMvXlxzKihbXHdcZF0rKS8vOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICgkc3RyID1+IC9eXHMqXCgvKSB7
Ci0gICAgICAgICAgICAgICAgICAgICMgUGFyc2UgJygnIGFyZ3VtZW50cyAnKScgJywnPwotICAg
ICAgICAgICAgICAgICAgICAkc3RyID1+IHMvXlxzKlwoLy87Ci0gICAgICAgICAgICAgICAgICAg
IGlmICgkc3RyID1+IC9eKFteKV0qKVwpLD8vKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBt
eSAkc2lnbmF0dXJlID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAkc2lnbmF0dXJlID1+
IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9
ID0geyJDb25zdHJ1Y3Rvck5hbWUiID0+ICRjb25zdHJ1Y3Rvck5hbWUsICJTaWduYXR1cmUiID0+
ICRzaWduYXR1cmV9OwotICAgICAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL14oW14pXSop
XCksPy8vOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccyos
Py8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0b3JO
YW1lIiA9PiAkY29uc3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAiIn07Ci0gICAgICAgICAg
ICAgICAgICAgICRzdHIgPX4gcy9eXHMqLD8vLzsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0
cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgIyBQYXJzZSAnPScgdmFsdWUgJywnPwotICAgICAgICAgICAgICAgIGlmICgkc3Ry
ID1+IC9eXHMqKFteLF0qKSw/LykgewotICAgICAgICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9
ID0gJDE7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPX4gcy9eKC4qPylccyok
LyQxLzsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW14sXSopLD8vLzsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUoIkludmFsaWQg
ZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAg
ICAgIyBQYXJzZSAnKCcgYXJndW1lbnRzICcpJyAnLCc/Ci0gICAgICAgICAgICAkc3RyID1+IHMv
XlxzKlwoLy87Ci0gICAgICAgICAgICBpZiAoJHN0ciA9fiAvXihbXildKilcKSw/LykgewotICAg
ICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAkMTsKLSAgICAgICAgICAgICAgICAkYXR0cnN7
JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAgICAgICAgICAgJHN0ciA9fiBzL14o
W14pXSopXCksPy8vOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBkaWUo
IkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAgICAgICAjIFBhcnNl
ICcnIHwgJywnCi0gICAgICAgICAgICBpZiAoJG5hbWUgZXEgIkNvbnN0cnVjdG9yIikgewotICAg
ICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSAiIjsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKK3N1YiBw
YXJzZUV4Y2VwdGlvbk1lbWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBt
ZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbk1lbWJlcnNfMS8pIHsKKyAg
ICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRl
ZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICAgICAjbXkgJG1lbWJlciA9ICRz
ZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAg
ICAgICAgIG15ICRtZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICBpZiAoZGVmaW5lZCAoJG1lbWJlcikpIHsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkbWVtYmVyKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICRzdHIgPX4gcy9eXHMqLD8vLzsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGRpZSgiSW52YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7CisgICAgICAg
ICAgICBsYXN0OwogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBcQG1lbWJlcnM7Cit9CisK
K3N1YiBwYXJzZUluaGVyaXRhbmNlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBA
cGFyZW50ID0gKCk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOiIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJHRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRv
a2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICBwdXNoKEBwYXJlbnQsICR0b2tlbi0+dmFs
dWUoKSk7CisgICAgICAgICMgTXVsdGlwbGUgaW5oZXJpdGFuY2U/CisgICAgICAgIHB1c2goQHBh
cmVudCwgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVycygpfSk7CisgICAgfQorICAgIHJldHVybiBc
QHBhcmVudDsKK30KKworc3ViIHBhcnNlRW51bQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVudW0i
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRv
a2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RW51bVZhbHVlTGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBf
X0xJTkVfXyk7Cit9CiAKLSAgICByZXR1cm4gXCVhdHRyczsKK3N1YiBwYXJzZUVudW1WYWx1ZUxp
c3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2VuKTsK
KyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlcygpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKIH0KIAotc3ViIHBhcnNlUGFyYW1ldGVycworc3ViIHBhcnNlRW51bVZhbHVlcwogewot
ICAgIG15ICRuZXdEYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRtZXRob2RTaWduYXR1cmUgPSBz
aGlmdDsKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIiwgX19MSU5FX18pOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBTdHJpbmdUb2tl
bik7CisgICAgICAgICRzZWxmLT5wYXJzZUVudW1WYWx1ZXMoKTsKKyAgICB9Cit9CiAKLSAgICAj
IFNwbGl0IGFyZ3VtZW50cyBhdCBjb21tYXMgYnV0IG9ubHkgaWYgdGhlIGNvbW1hCi0gICAgIyBp
cyBub3Qgd2l0aGluIGF0dHJpYnV0ZSBicmFja2V0cywgZXhwcmVzc2VkIGhlcmUKLSAgICAjIGFz
IGJlaW5nIGZvbGxvd2VkIGJ5IGEgJ10nIHdpdGhvdXQgYSBwcmVjZWRpbmcgJ1snLgotICAgICMg
Tm90ZSB0aGF0IHRoaXMgYXNzdW1lcyB0aGF0IGF0dHJpYnV0ZXMgZG9uJ3QgbmVzdC4KLSAgICBt
eSBAcGFyYW1zID0gc3BsaXQoLywoPyFbXltdKlxdKS8sICRtZXRob2RTaWduYXR1cmUpOwotICAg
IGZvcmVhY2ggKEBwYXJhbXMpIHsKLSAgICAgICAgbXkgJGxpbmUgPSAkXzsKK3N1YiBwYXJzZUNh
bGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBfX0xJTkVfXyk7
CisgICAgICAgICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgJGxpbmUgPX4gLyRJ
RExTdHJ1Y3R1cmU6OmludGVyZmFjZVBhcmFtZXRlclNlbGVjdG9yLzsKLSAgICAgICAgbXkgJHBh
cmFtRGlyZWN0aW9uID0gJDE7Ci0gICAgICAgIG15ICRwYXJhbUV4dGVuZGVkQXR0cmlidXRlcyA9
IChkZWZpbmVkKCQyKSA/ICQyIDogIiAiKTsgY2hvcCgkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMp
OwotICAgICAgICBteSAkcGFyYW1UeXBlID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgbXkgJHBhcmFtVHlwZVN1
ZmZpeCA9IGRlZmluZWQoJDQpID8gJDQgOiAiIjsKLSAgICAgICAgbXkgJHBhcmFtTmFtZSA9IChk
ZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbiki
KSk7CitzdWIgcGFyc2VUeXBlZGVmCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidHlwZWRlZiIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7
CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBteSAkaXNOdWxsYWJsZSA9ICRw
YXJhbVR5cGVTdWZmaXggZXEgIj8iOworc3ViIHBhcnNlSW1wbGVtZW50c1N0YXRlbWVudAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW1wbGVtZW50cyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KIAotICAgICAgICBteSAkcGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKLSAg
ICAgICAgJHBhcmFtRGF0YU5vZGUtPmRpcmVjdGlvbigkcGFyYW1EaXJlY3Rpb24pOwotICAgICAg
ICAkcGFyYW1EYXRhTm9kZS0+bmFtZSgkcGFyYW1OYW1lKTsKLSAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPnR5cGUoJHBhcmFtVHlwZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVz
KSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKCRpc051bGxhYmxlKTsKK3N1
YiBwYXJzZUNvbnN0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICBteSAkbmV3
RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjb25zdCIsIF9fTElORV9fKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT50eXBlKCRzZWxmLT5wYXJzZUNvbnN0VHlwZSgpKTsKKyAgICAgICAgbXkgJGNv
bnN0TmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJGNvbnN0TmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3
RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnZhbHVlKCRzZWxmLT5wYXJzZUNvbnN0VmFsdWUoKSk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KIAotICAgICAgICBteSAkYXJyYXlSZWYgPSAkbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnM7Ci0g
ICAgICAgIHB1c2goQCRhcnJheVJlZiwgJHBhcmFtRGF0YU5vZGUpOworc3ViIHBhcnNlQ29uc3RW
YWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMS8p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUJvb2xlYW5MaXRlcmFsKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibnVsbCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJudWxsIiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gIm51bGwiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dENvbnN0VmFsdWVfMi8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0TGl0ZXJhbCgpOworICAgIH0KKyAgICAjIGJhY2t3YXJk
IGNvbXBhdGliaWxpdHkKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICBwcmludCAiICB8
ICAgfD4gIFBhcmFtOyBUWVBFIFwiJHBhcmFtVHlwZVwiIE5BTUUgXCIkcGFyYW1OYW1lXCIiIC4g
Ci0gICAgICAgICAgICBkdW1wRXh0ZW5kZWRBdHRyaWJ1dGVzKCJcbiAgfCAgICAgICAgICAgICAg
IiwgJHBhcmFtRGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4iIHVubGVzcyAkYmVR
dWlldDsgICAgICAgICAgCitzdWIgcGFyc2VCb29sZWFuTGl0ZXJhbAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAi
dHJ1ZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZmFsc2UiKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZmFsc2UiLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZmFsc2UiOwogICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBQ
YXJzZUludGVyZmFjZQorc3ViIHBhcnNlRmxvYXRMaXRlcmFsCiB7Ci0gICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRzZWN0aW9uTmFtZSA9
IHNoaWZ0OwotCi0gICAgbXkgJGRhdGEgPSBqb2luKCIiLCBAdGVtcG9yYXJ5Q29udGVudCk7Ci0K
LSAgICAjIExvb2sgZm9yIGVuZC1vZi1pbnRlcmZhY2UgbWFyawotICAgICRkYXRhID1+IC99Oy9n
OwotICAgICRkYXRhID0gc3Vic3RyKCRkYXRhLCBpbmRleCgkZGF0YSwgJHNlY3Rpb25OYW1lKSwg
cG9zKCRkYXRhKSAtIGxlbmd0aCgkZGF0YSkpOwotCi0gICAgJGRhdGEgPX4gcy9bXG5ccl0vIC9n
OwotCi0gICAgIyBCZWdpbm5pbmcgb2YgdGhlIHJlZ2V4cCBwYXJzaW5nIG1hZ2ljCi0gICAgaWYg
KCRzZWN0aW9uTmFtZSBlcSAiaW50ZXJmYWNlIiB8fCAkc2VjdGlvbk5hbWUgZXEgImV4Y2VwdGlv
biIpIHsKLSAgICAgICAgcHJpbnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgaW50ZXJmYWNlLi4uXG4i
IHVubGVzcyAkYmVRdWlldDsKLQotICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICIiOwotICAg
ICAgICBteSAkaW50ZXJmYWNlRGF0YSA9ICIiOwotCi0gICAgICAgICMgTWF0Y2ggaWRlbnRpZmll
ciBvZiB0aGUgaW50ZXJmYWNlLCBhbmQgZW5jbG9zZWQgZGF0YS4uLgotICAgICAgICAkZGF0YSA9
fiAvJElETFN0cnVjdHVyZTo6aW50ZXJmYWNlU2VsZWN0b3IvOwotCi0gICAgICAgIG15ICRpc0V4
Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICgkMSBlcSAnZXhjZXB0aW9uJykgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkgJGludGVyZmFjZUV4
dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQyKSA/ICQyIDogIiAiKTsgY2hvcCgkaW50ZXJm
YWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgJGludGVyZmFjZU5hbWUgPSAoZGVmaW5l
ZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwot
ICAgICAgICBteSAkaW50ZXJmYWNlQmFzZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogIiIpOwotICAg
ICAgICAkaW50ZXJmYWNlRGF0YSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVy
cm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0KLSAgICAgICAgIyBGaWxsIGluIGtub3duIHBh
cnRzIG9mIHRoZSBkb21DbGFzcyBkYXRhc3RydWN0dXJlIG5vdy4uLgotICAgICAgICAkZGF0YU5v
ZGUtPmlzRXhjZXB0aW9uKCRpc0V4Y2VwdGlvbik7Ci0gICAgICAgICRkYXRhTm9kZS0+bmFtZSgk
aW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBwYXJzZUV4
dGVuZGVkQXR0cmlidXRlcygkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAg
aWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9KSB7Ci0gICAg
ICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiQ29uc3RydWN0b3IiKTsKLSAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVk
QXR0cmlidXRlcyk7Ci0gICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAk
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pOwotICAgICAgICAgICAgJGV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOwotICAg
ICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOwotICAgICAgICB9
IGVsc2lmIChkZWZpbmVkICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9
KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAg
ICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0g
ICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3Rv
ciIpOwotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygk
bmV3RGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9LT57
IlNpZ25hdHVyZSJ9KTsKLSAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRD
b25zdHJ1Y3RvciJ9ID0gJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn17
IkNvbnN0cnVjdG9yTmFtZSJ9OwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3Rvcigk
bmV3RGF0YU5vZGUpOwotICAgICAgICB9Ci0gICAgICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZXMpOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICItIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIi0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiSW5maW5pdHkiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiLUlu
ZmluaXR5IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJJbmZpbml0eSIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJJbmZp
bml0eSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJJbmZpbml0eSI7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiTmFOIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIk5hTiIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICJOYU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15IEBpbnRlcmZh
Y2VQYXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAgIGZvcmVhY2go
QGludGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87Ci0gICAgICAg
ICAgICAkbGluZSA9fiBzL1xzKi8vZzsKK3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJ
dGVyYXRvcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUt
PnBhcmVudHM7Ci0gICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRsaW5lKTsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNl
cmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemVyKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEvKSB7CisgICAgICAgIG15ICRxdWFs
aWZpZXIgPSAkc2VsZi0+cGFyc2VRdWFsaWZpZXIoKTsKKyAgICAgICAgbXkgJG5ld0RhdGFOb2Rl
ID0gJHNlbGYtPnBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCgkbmV3RGF0YU5vZGUpICYmICRxdWFsaWZpZXIg
ZXEgInN0YXRpYyIpIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNTdGF0aWMoMSk7CiAg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQXR0cmlidXRlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkg
PX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIvKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVNlcmlhbGl6ZXIKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAg
ICAgICByZXR1cm4gaWYgJHBhcmVudHNPbmx5OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXJpYWxpemVy
IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2VyaWFsaXplclJlc3Qo
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAgICAkaW50ZXJm
YWNlRGF0YSA9fiBzL1tcblxyXS8gL2c7Ci0gICAgICAgIG15IEBpbnRlcmZhY2VNZXRob2RzID0g
c3BsaXQoLzsvLCAkaW50ZXJmYWNlRGF0YSk7CitzdWIgcGFyc2VTZXJpYWxpemVyUmVzdAorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNo
aWZ0OwogCi0gICAgICAgIGZvcmVhY2ggbXkgJGxpbmUgKEBpbnRlcmZhY2VNZXRob2RzKSB7Ci0g
ICAgICAgICAgICBuZXh0IGlmICRsaW5lID1+IC9eXHMqJC87Ci0gICAgICAgICAgICBpZiAoJGxp
bmUgPX4gL1xXYXR0cmlidXRlXFcvKSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExT
dHJ1Y3R1cmU6OmludGVyZmFjZUF0dHJpYnV0ZVNlbGVjdG9yLzsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuKCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KK30KIAotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRlZmluZWQoJDEpOwotICAg
ICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gKGRlZmluZWQoJDIpID8gJDIgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDMpID8gJDMgOiAiICIp
OyBjaG9wKCRhdHRyaWJ1dGVFeHRlbmRlZEF0dHJpYnV0ZXMpOworc3ViIHBhcnNlU2VyaWFsaXph
dGlvblBhdHRlcm4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAieyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybk1hcCgpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlsiLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5wYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTGlzdCgpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYt
PmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQogCi0gICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZURhdGFUeXBlID0gKGRlZmluZWQo
JDQpID8gJDQgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAg
ICAgICAgICAgICAgICBteSAkYXR0cmlidXRlRGF0YU5hbWUgPSAoZGVmaW5lZCgkNSkgPyAkNSA6
IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwotICAKLSAgICAgICAg
ICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdleHAg
bWF0Y2hpbmcKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTWFwCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXQi
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCk7CisgICAg
fQorfQogCi0gICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmdldHRlclJh
aXNlc1NlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkZ2V0dGVyRXhjZXB0aW9uID0gKGRl
ZmluZWQoJDEpID8gJDEgOiAiIik7CitzdWIgcGFyc2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSWRlbnRpZmll
cnMoKTsKKyAgICB9Cit9CiAKLSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVy
ZTo6c2V0dGVyUmFpc2VzU2VsZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJFeGNl
cHRpb24gPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIiKTsKK3N1YiBwYXJzZUlkZW50aWZpZXJzCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAaWRlbnRzID0gKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIiwgX19MSU5FX18pOworICAgICAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlk
ZW50cywgJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxh
c3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAaWRlbnRzOworfQogCi0gICAgICAg
ICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkYXR0cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAg
ICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CitzdWIgcGFyc2VRdWFs
aWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAgICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJGF0dHJpYnV0ZURhdGFOYW1lKTsKLSAgICAgICAgICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkYXR0cmlidXRlRGF0YVR5cGUpOwot
ICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcykp
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAic3RhdGljIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInN0YXRpYyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzdGF0
aWMiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0cmlu
Z2lmaWVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInN0cmluZ2lmaWVyIjsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQogCi0gICAgICAgICAgICAgICAgbXkgJGFycmF5UmVmID0gJGRhdGFOb2RlLT5hdHRy
aWJ1dGVzOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJlZiwgJG5ld0RhdGFOb2RlKTsK
K3N1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAg
ICAgICAgcHJpbnQgIiAgfCAgfD4gIEF0dHJpYnV0ZTsgU1RBVElDPyBcIiRpc1N0YXRpY1wiIFRZ
UEUgXCIkYXR0cmlidXRlVHlwZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwiIERB
VEEgVFlQRSBcIiRhdHRyaWJ1dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRlckV4
Y2VwdGlvblwiIFNFVCBFWENFUFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAgICAg
ICAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAg
ICAiLCAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIg
dW5sZXNzICRiZVF1aWV0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0
XzEvKSB7CisgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgp
OworICAgICAgICBteSAkZGF0YU5vZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSkgewor
ICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgICAg
ICAgICAgICAgICRnZXR0ZXJFeGNlcHRpb24gPX4gcy9ccysvL2c7Ci0gICAgICAgICAgICAgICAg
JHNldHRlckV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdEYXRh
Tm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRnZXR0ZXJFeGNlcHRpb24pOwot
ICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25zfSA9IHNwbGl0
KC8sLywgJHNldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkbGluZSAhfiAv
XlxzKigkSURMU3RydWN0dXJlOjpleHRlbmRlZEF0dHJpYnV0ZVN5bnRheCApP2NvbnN0XHMrLykg
ewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VNZXRo
b2RTZWxlY3Rvci8gb3IgZGllICJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiOwor
c3ViIHBhcnNlQXR0cmlidXRlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKLSAgICAgICAgICAgICAgICBteSAkbWV0aG9k
RXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRo
b2RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRl
ZmluZWQoJDIpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmluZWQoJDMp
ID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAg
ICAgICAgICAgICBteSAkbWV0aG9kTmFtZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1l
dGhvZFNpZ25hdHVyZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGxpbmVcbikiKSk7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAg
ICAgICAkc2VsZi0+cGFyc2VJbmhlcml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VB
dHRyaWJ1dGVSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAg
ICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBSZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciBy
ZWdleHAgbWF0Y2hpbmcKK3N1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBk
b21BdHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKKyAg
ICAgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIp
OworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiYXR0cmlidXRlIiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOworICAgICAgICBteSAkdG9rZW4gPSAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0
b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VHZXQoKTsK
KyAgICAgICAgaWYgKGRlZmluZWQgJGdldFJlZikgeworICAgICAgICAgICAgcHVzaChAeyRuZXdE
YXRhTm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlZi0+eyJnZXRyYWlzZXMifX0pOwor
ICAgICAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7JGdl
dFJlZi0+eyJzZXRyYWlzZXMifX0pOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0g
ICAgICAgICAgICAgICAgJGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OnJhaXNlc1NlbGVjdG9yLzsK
LSAgICAgICAgICAgICAgICBteSAkbWV0aG9kRXhjZXB0aW9uID0gKGRlZmluZWQoJDEpID8gJDEg
OiAiIik7CitzdWIgcGFyc2VJbmhlcml0Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiaW5oZXJpdCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
ICAgIHJldHVybiAwOworfQogCi0gICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3
IGRvbUZ1bmN0aW9uKCk7CitzdWIgcGFyc2VSZWFkT25seQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJyZWFkb25seSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJyZWFkb25seSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAgICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5pc1N0YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoJG1ldGhvZE5hbWUpOwotICAgICAgICAgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRtZXRob2RUeXBlKTsKLSAgICAgICAgICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVzKCRtZXRob2RFeHRlbmRlZEF0dHJpYnV0ZXMpKTsKK3N1YiBwYXJzZU9wZXJhdGlv
bk9ySXRlcmF0b3IKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICAgICAgICAgIHByaW50ICIgIHwgIHwtICBN
ZXRob2Q7IFNUQVRJQz8gXCIkaXNTdGF0aWNcIiBUWVBFIFwiJG1ldGhvZFR5cGVcIiBOQU1FIFwi
JG1ldGhvZE5hbWVcIiBFWENFUFRJT04/IFwiJG1ldGhvZEV4Y2VwdGlvblwiIiAuCi0gICAgICAg
ICAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAi
LCAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5s
ZXNzICRiZVF1aWV0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTcGVjaWFsc18xLykgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlU3BlY2lhbE9wZXJhdGlvbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xLykgeworICAgICAgICBt
eSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRh
dGFOb2RlID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvclJlc3QoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAg
ICAgICAkZGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgICAgICAgICAg
ICAgJG1ldGhvZEV4Y2VwdGlvbiA9fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICBAeyRuZXdE
YXRhTm9kZS0+cmFpc2VzRXhjZXB0aW9uc30gPSBzcGxpdCgvLC8sICRtZXRob2RFeGNlcHRpb24p
Oworc3ViIHBhcnNlU3BlY2lhbE9wZXJhdGlvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNp
YWxzXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgJHNlbGYt
PnBhcnNlU3BlY2lhbHMoKTsKKyAgICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VS
ZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlv
blJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0
YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJu
VHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgICAgICAgICAgICAgcGFyc2VQYXJhbWV0ZXJzKCRuZXdEYXRhTm9kZSwgJG1ldGhv
ZFNpZ25hdHVyZSk7CitzdWIgcGFyc2VTcGVjaWFscworeworICAgIG15ICRzZWxmID0gc2hpZnQ7
CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmZ1bmN0aW9uczsK
LSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpj
b25zdGFudFNlbGVjdG9yLzsKLSAgICAgICAgICAgICAgICBteSAkY29uc3RFeHRlbmRlZEF0dHJp
YnV0ZXMgPSAoZGVmaW5lZCgkMSkgPyAkMSA6ICIgIik7IGNob3AoJGNvbnN0RXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKLSAgICAgICAgICAgICAgICBteSAkY29uc3RUeXBlID0gKGRlZmluZWQoJDIpID8g
JDIgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAg
ICAgICAgICBteSAkY29uc3ROYW1lID0gKGRlZmluZWQoJDMpID8gJDMgOiBkaWUoIlBhcnNpbmcg
ZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAgICAgICAgICAgICBteSAkY29uc3RW
YWx1ZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxu
JGxpbmVcbikiKSk7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTcGVjaWFs
c18xLykgeworICAgICAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbCgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gW107
Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQ29uc3RhbnQo
KTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPm5hbWUoJGNvbnN0TmFtZSk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRjb25zdFR5cGUpOwotICAgICAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+dmFsdWUoJGNvbnN0VmFsdWUpOwotICAgICAgICAgICAgICAgICRu
ZXdEYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVzKCRj
b25zdEV4dGVuZGVkQXR0cmlidXRlcykpOworc3ViIHBhcnNlU3BlY2lhbAoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICBy
ZXR1cm4gImdldHRlciI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVy
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
InNldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY3JlYXRvciIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuICJjcmVhdG9yIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJkZWxldGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImRlbGV0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZGVsZXRlciI7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImxlZ2FjeWNh
bGxlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJsZWdhY3ljYWxsZXIiOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmNvbnN0
YW50czsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRuZXdEYXRhTm9kZSk7Citz
dWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgICAgICAg
ICAgcHJpbnQgIiAgfCAgIHw+ICBDb25zdGFudDsgVFlQRSBcIiRjb25zdFR5cGVcIiBOQU1FIFwi
JGNvbnN0TmFtZVwiIFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJhdG9yIikgeworICAgICAgICByZXR1
cm4gJHNlbGYtPnBhcnNlSXRlcmF0b3JSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZh
bHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAgICAgcHJpbnQg
IiAgfC0tLS0+IEludGVyZmFjZTsgTkFNRSBcIiRpbnRlcmZhY2VOYW1lXCIiIC4KLSAgICAgICAg
ICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAgICAiLCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcykgLiAiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWll
dDsKK3N1YiBwYXJzZUl0ZXJhdG9yUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpdGVyYXRvciIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpdGVy
YXRvciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlT3B0aW9uYWxJdGVyYXRvcklu
dGVyZmFjZU9yT2JqZWN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybjsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3ViIERldGVy
bWluZVBhcnNlTW9kZQorc3ViIHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0
CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OyAgCi0gICAgbXkgJGxpbmUgPSBzaGlmdDsKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKIAotICAgIG15ICRtb2RlID0gTU9ERV9VTkRFRjsKLSAgICBpZiAoJF8gPX4gL21vZHVsZS8p
IHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX01PRFVMRTsKLSAgICB9IGVsc2lmICgkXyA9fiAvaW50
ZXJmYWNlLykgewotICAgICAgICAkbW9kZSA9IE1PREVfSU5URVJGQUNFOwotICAgIH0gZWxzaWYg
KCRfID1+IC9leGNlcHRpb24vKSB7Ci0gICAgICAgICRtb2RlID0gTU9ERV9FWENFUFRJT047Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dE9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9iamVjdF8xLykgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZSgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKICAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3Qi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
b2JqZWN0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlT3B0aW9uYWxJdGVyYXRvckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgcmV0dXJuICRt
b2RlOworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgIH0KIH0KIAotIyBJ
bnRlcm5hbCBoZWxwZXIKLXN1YiBQcm9jZXNzU2VjdGlvbgorc3ViIHBhcnNlT3BlcmF0aW9uUmVz
dAogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgCi0gICAgaWYgKCRwYXJzZU1vZGUgZXEg
TU9ERV9NT0RVTEUpIHsKLSAgICAgICAgZGllICgiVHdvIG1vZHVsZXMgaW4gb25lIGZpbGUhIEZh
dGFsIGVycm9yIVxuIikgaWYgKCRkb2N1bWVudCBuZSAwKTsKLSAgICAgICAgJGRvY3VtZW50ID0g
bmV3IGlkbERvY3VtZW50KCk7Ci0gICAgICAgICRvYmplY3QtPlBhcnNlTW9kdWxlKCRkb2N1bWVu
dCk7Ci0gICAgfSBlbHNpZiAoJHBhcnNlTW9kZSBlcSBNT0RFX0lOVEVSRkFDRSB8fCAkcGFyc2VN
b2RlIGVxIE1PREVfRVhDRVBUSU9OKSB7Ci0gICAgICAgIG15ICRub2RlID0gbmV3IGRvbUNsYXNz
KCk7Ci0gICAgICAgIG15ICRzZWN0aW9uTmFtZSA9ICRwYXJzZU1vZGUgZXEgTU9ERV9JTlRFUkZB
Q0UgPyAiaW50ZXJmYWNlIiA6ICJleGNlcHRpb24iOwotICAgICAgICAkb2JqZWN0LT5QYXJzZUlu
dGVyZmFjZSgkbm9kZSwgJHNlY3Rpb25OYW1lKTsKLSAgICAKLSAgICAgICAgZGllICgiTm8gbW9k
dWxlIHNwZWNpZmllZCEgRmF0YWwgRXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IGVxIDApOwotICAg
ICAgICBteSAkYXJyYXlSZWYgPSAkZG9jdW1lbnQtPmNsYXNzZXM7Ci0gICAgICAgIHB1c2goQCRh
cnJheVJlZiwgJG5vZGUpOworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rp
b24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgp
KTsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKTsK
KyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJG5hbWUpOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAkbmFtZSwgX19M
SU5FX18pOworICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskc2Vs
Zi0+cGFyc2VBcmd1bWVudExpc3QoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHB1c2goQHskbmV3
RGF0YU5vZGUtPnJhaXNlc0V4Y2VwdGlvbnN9LCBAeyRzZWxmLT5wYXJzZVJhaXNlcygpfSk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9f
TElORV9fKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9k
ZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgQHRlbXBvcmFyeUNvbnRlbnQgPSAiIjsKK3N1YiBwYXJz
ZU9wdGlvbmFsSWRlbnRpZmllcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuKSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAg
ICAgICByZXR1cm4gJHRva2VuLT52YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gIiI7CiB9CiAK
LTE7CitzdWIgcGFyc2VBcmd1bWVudExpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAgICAgICAgcHVzaChAYXJndW1lbnRz
LCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCBAeyRz
ZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgfQorICAgIHJldHVybiBcQGFyZ3VtZW50czsK
K30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikg
eworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICIsIiwgX19MSU5FX18pOworICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+cGFy
c2VBcmd1bWVudCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQorCitzdWIgcGFyc2VBcmd1
bWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dEFyZ3VtZW50TGlzdF8xLykgeworICAgICAgICBteSAkaW4g
PSAkc2VsZi0+cGFyc2VJbigpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0g
JHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBt
eSAkYXJndW1lbnQgPSAkc2VsZi0+cGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgJGFyZ3VtZW50LT5kaXJlY3Rpb24oJHNlbGYt
PnBhcnNlSW4oKSk7CisgICAgICAgIHJldHVybiAkYXJndW1lbnQ7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRw
YXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOworICAgICRwYXJhbURhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9wdGlv
bmFsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIm9wdGlvbmFsIiwgX19MSU5FX18pOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJz
ZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRhTm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/
Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9cPyQvKSB7CisgICAgICAgICAgICAkcGFyYW1EYXRh
Tm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRwYXJh
bURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVtb3ZlIGFs
bCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgorICAgICAg
ICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7
CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZSgp
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICByZXR1cm4gJHBhcmFt
RGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAg
ICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRhTm9kZSBj
YW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9cPyQvKSB7
CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAg
ICB9CisgICAgICAgICMgUmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/
IiAtPiAib2JqZWN0W10iLgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgICRzZWxmLT5wYXJzZUVsbGlwc2lzKCk7
CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZSgp
KTsKKyAgICAgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBw
YXJzZUFyZ3VtZW50TmFtZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEFy
Z3VtZW50TmFtZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXJndW1lbnROYW1l
S2V5d29yZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUVsbGlwc2lzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIi4uLiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICIuLi4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVyCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uRmllbGQoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsK
KworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRp
b25GaWVsZF8xLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRl
KCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7Cisg
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1YiBw
YXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSB7
fTsKKyAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZSgpOwor
ICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdC0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQorICAg
ICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAgICAgICBm
b3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmli
dXRlTGlzdC0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQorICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybiAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0OworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHt9OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9fKTsKKyAgICAgICAgICAgIG15ICRhdHRyID0gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKCk7CisgICAgICAgICAgICBmb3IgbXkgJGtleSAo
a2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qt
Pnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICR0
b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgfQorICAgICMgYmFja3dh
cmQgY29tcGF0aWJpbGl0eS4gU3BlYyBkb2VzbicgYWxsb3cgIltdIi4gQnV0IFdlYktpdCByZXF1
aXJlcy4KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgJ10nKSB7CisgICAgICAgIHJldHVybiB7
fTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZTIKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICByZXR1cm4ge307
Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkYXR0cnMgPSB7fTsKKworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICIoIiwgX19MSU5FX18pOworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAkc2VsZi0+cGFy
c2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJGF0dHJzOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIj0iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPSIsIF9fTElORV9fKTsKKyAgICAgICAg
JGF0dHJzLT57JG5hbWV9ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MigpOwor
ICAgICAgICByZXR1cm4gJGF0dHJzOworICAgIH0KKworICAgIGlmICgkbmFtZSBlcSAiQ29uc3Ry
dWN0b3IiKSB7CisgICAgICAgICRhdHRycy0+eyRuYW1lfSA9IFtdOworICAgIH0gZWxzZSB7Cisg
ICAgICAgICRhdHRycy0+eyRuYW1lfSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICB9CisgICAg
cmV0dXJuICRhdHRyczsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Mgorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15
ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MygkdG9rZW4tPnZhbHVlKCkpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNl
bGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MworeworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiJiIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICImIiwgX19MSU5FX18p
OworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVy
biAkbmFtZSAuICImIiAuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJ8IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgInwiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gInwiIC4gJHRva2VuLT52YWx1ZSgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIG15ICRh
dHRyID0ge307CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKCIsIF9fTElORV9fKTsKKyAgICAgICAgJGF0dHItPnskbmFtZX0gPSAkc2VsZi0+cGFy
c2VBcmd1bWVudExpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICIpIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJGF0dHI7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSA9fiAvJG5leHRFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzXzEvKSB7CisgICAgICAgIG15IEBu
YW1lcyA9ICgpOworICAgICAgICBwdXNoKEBuYW1lcywgJG5hbWUpOworICAgICAgICBwdXNoKEBu
YW1lcywgQHskc2VsZi0+cGFyc2VJZGVudGlmaWVyTGlzdCgpfSk7CisgICAgICAgIHJldHVybiBq
b2luKCcgJywgQG5hbWVzKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUlkZW50aWZpZXJMaXN0Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbmFtZXMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7
CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgICAgIHB1c2goQG5hbWVz
LCAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBcQG5hbWVzOworfQorCitz
dWIgcGFyc2VBcmd1bWVudE5hbWVLZXl3b3JkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImF0dHJpYnV0ZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1
ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNhbGxiYWNrIikgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjcmVhdG9y
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGVsZXRlciIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiZXhjZXB0aW9uIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRv
a2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVy
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW1wbGVtZW50cyIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFs
dWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJsZWdhY3ljYWxsZXIiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2VyaWFsaXplciIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tl
bigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0YXRpYyIp
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1
ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInVucmVzdHJpY3RlZCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsK
KyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25UeXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVR5
cGVTdWZmaXgoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0VHlwZV8xLykg
eworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2luZ2xlVHlwZSgpOworICAgIH0KKyAgICAk
c2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9
CisKK3N1YiBwYXJzZVNpbmdsZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
YW55IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImFueSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJhbnkiIC4gJHNlbGYtPnBhcnNl
VHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVU
eXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAg
fQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElO
RV9fKTsKK30KKworc3ViIHBhcnNlVW5pb25UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIigiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiKCIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJU
eXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAib3IiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgp
OworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVuaW9uTWVtYmVyVHlwZQor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+cGFy
c2VVbmlvblR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYW55IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImFueSIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICJbIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVT
dWZmaXgoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8x
LykgeworICAgICAgICAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFy
c2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBl
cygpOworICAgIH0KK30KKworc3ViIHBhcnNlTm9uQW55VHlwZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJCeXRlU3RyaW5nIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkJ5dGVTdHJpbmciLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAiQnl0ZVN0cmluZyIgLiAkc2VsZi0+cGFyc2VUeXBlU3Vm
Zml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiRE9NU3RyaW5nIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkRPTVN0
cmluZyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJET01TdHJpbmciIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcXVl
bmNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgInNlcXVlbmNlIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICR0eXBlID0g
JHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIj4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAic2VxdWVuY2U8
IiAuICR0eXBlIC4gIj4iIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJvYmplY3QiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
biAib2JqZWN0IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJEYXRlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkRhdGUiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAi
RGF0ZSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKSAuICRzZWxmLT5wYXJz
ZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VDb25zdFR5cGUKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHROb25BbnlUeXBlXzEvKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VQcmltaXRpdmVUeXBlKCkgLiAkc2VsZi0+cGFyc2VOdWxsKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAg
ICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tl
bi0+dmFsdWUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VQcmltaXRpdmVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0UHJp
bWl0aXZlVHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVW5zaWduZWRJbnRl
Z2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0UHJpbWl0
aXZlVHlwZV8yLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVW5yZXN0cmljdGVkRmxv
YXRUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYm9vbGVhbiIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJib29s
ZWFuIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImJvb2xlYW4iOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgImJ5dGUiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYnl0ZSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICJieXRlIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvY3RldCIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvY3Rl
dCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJvY3RldCI7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlVW5yZXN0cmljdGVkRmxvYXRUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInVucmVzdHJpY3RlZCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ1bnJlc3RyaWN0ZWQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJl
dHVybiAidW5yZXN0cmljdGVkIiAuICRzZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0VW5yZXN0cmljdGVkRmxvYXRUeXBlXzEvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VGbG9hdFR5cGUoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VGbG9hdFR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZmxv
YXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiZmxvYXQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZmxvYXQiOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkb3VibGUiLCBfX0xJTkVfXyk7CisgICAg
ICAgIHJldHVybiAiZG91YmxlIjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbnNpZ25lZElu
dGVnZXJUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInVuc2lnbmVkIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVuc2ln
bmVkIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInVuc2lnbmVkICIgLiAkc2VsZi0+cGFy
c2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
VW5zaWduZWRJbnRlZ2VyVHlwZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50
ZWdlclR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlZ2VyVHlwZQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzaG9ydCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzaG9ydCIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuICJzaG9ydCI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImludCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJpbnQiOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImxvbmciKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibG9uZyIsIF9fTElORV9fKTsKKyAgICAgICAgaWYgKCRz
ZWxmLT5wYXJzZU9wdGlvbmFsTG9uZygpKSB7CisgICAgICAgICAgICByZXR1cm4gImxvbmcgbG9u
ZyI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJsb25nIjsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VPcHRpb25hbExvbmcKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9u
ZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJsb25nIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJu
IDA7Cit9CisKK3N1YiBwYXJzZVR5cGVTdWZmaXgKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJbIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiW10iIC4g
JHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiPyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICI/IiAuICRzZWxmLT5wYXJzZVR5
cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheSgpOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisK
K3N1YiBwYXJzZVR5cGVTdWZmaXhTdGFydGluZ1dpdGhBcnJheQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIHJldHVybiAiIjsK
K30KKworc3ViIHBhcnNlTnVsbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI/Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj8i
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiPyI7CisgICAgfQorICAgIHJldHVybiAiIjsK
K30KKworc3ViIHBhcnNlUmV0dXJuVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJ2b2lkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgInZvaWQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAidm9pZCI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUdldAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0cyIpIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAg
ICAgICAgJHNlbGYtPnBhcnNlSW5oZXJpdHNHZXR0ZXIoKTsKKyAgICAgICAgJGF0dHItPnsiaW5o
ZXJpdHMifSA9IDE7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gW107CisgICAgICAg
ICRhdHRyLT57InNldHJhaXNlcyJ9ID0gJHNlbGYtPnBhcnNlU2V0UmFpc2VzKCk7CisgICAgICAg
IHJldHVybiAkYXR0cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEdl
dF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2V0R2V0UmFpc2VzKCk7CisgICAg
fQorfQorCitzdWIgcGFyc2VJbmhlcml0c0dldHRlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJpbmhlcml0cyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpbmhlcml0cyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigk
bmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VTZXRHZXRSYWlzZXMKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRhdHRyID0ge307CisgICAgJGF0dHItPnsi
aW5oZXJpdHMifSA9IDA7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIpIHsKKyAgICAgICAgJGF0dHItPnsic2V0
cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsKKyAgICAgICAgJGF0dHItPnsiZ2V0
cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VHZXRSYWlzZXMyKCk7CisgICAgICAgIHJldHVybiAkYXR0
cjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAg
ICRhdHRyLT57InNldHJhaXNlcyJ9ID0gW107CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9
ID0gJHNlbGYtPnBhcnNlR2V0UmFpc2VzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdldFJhaXNlczJfMS8pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNldEdldFJhaXNlczIoKTsKKyAgICB9CisgICAgJHNl
bGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQor
CitzdWIgcGFyc2VHZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJn
ZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VH
ZXRSYWlzZXMyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIiwgX19MSU5F
X18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3Vi
IHBhcnNlU2V0UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHRlciIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJz
ZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAicmFpc2VzIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVNldEdldFJh
aXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRTZXRHZXRSYWlzZXMy
XzEvKSB7CisgICAgICAgIG15ICRhdHRyID0ge307CisgICAgICAgICRhdHRyLT57ImluaGVyaXRz
In0gPSAwOworICAgICAgICAkYXR0ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJh
aXNlczMoKTsKKyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRS
YWlzZXMzKCk7CisgICAgICAgIHJldHVybiAkYXR0cjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VHZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHJhaXNlcyIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJn
ZXRyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRp
b25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlU2V0UmFpc2Vz
MworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXRyYWlzZXMiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAic2V0cmFpc2VzIiwg
X19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOwor
ICAgIH0KKyAgICByZXR1cm4gW107Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbkxpc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgbXkgQGV4Y2VwdGlvbnMg
PSAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICIoIiwgX19MSU5FX18pOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgIHB1c2goQGV4Y2VwdGlvbnMsICR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIHB1
c2goQGV4Y2VwdGlvbnMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKX0pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7
CisgICAgICAgIHJldHVybiBcQGV4Y2VwdGlvbnM7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
UmFpc2VzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInJhaXNlcyIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMiLCBf
X0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7Cisg
ICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlRGVmaW5pdGlvbk9sZAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dERlZmluaXRpb25fMS8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlUGFydGlhbCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGlj
dGlvbmFyeSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnlPbGQoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRW51bU9s
ZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VUeXBlZGVmKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJtb2R1bGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VNb2R1
bGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50KHt9KTsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VNb2R1bGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAibW9kdWxlIikgeworICAgICAgICBteSAkZG9jdW1lbnQgPSBuZXcgaWRsRG9jdW1lbnQo
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJt
b2R1bGUiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAk
c2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15
ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAkZG9jdW1l
bnQtPm1vZHVsZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZGVmaW5pdGlvbnMgPSAk
c2VsZi0+cGFyc2VEZWZpbml0aW9ucygpOworICAgICAgICBwdXNoKEB7JGRvY3VtZW50LT5jbGFz
c2VzfSwgQHskZGVmaW5pdGlvbnN9KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VP
cHRpb25hbFNlbWljb2xvbigpOworICAgICAgICByZXR1cm4gJGRvY3VtZW50OworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CisKK3N1YiBwYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiY2FsbGJhY2siKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY2FsbGJhY2siLCBfX0xJTkVfXyk7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSh7fSk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlSW50ZXJmYWNlT2xkKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZXJm
YWNlT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKKyAg
ICAgICAgbXkgJGRhdGFOb2RlID0gbmV3IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW50ZXJmYWNlIiwgX19MSU5FX18pOwor
ICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0
VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZp
ZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAg
ICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKDApOworICAgICAgICBwdXNoKEB7JGRhdGFOb2Rl
LT5wYXJlbnRzfSwgQHskc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAg
ICAgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJz
KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBseU1lbWJlckxpc3QoJGRhdGFO
b2RlLCAkaW50ZXJmYWNlTWVtYmVycyk7CisgICAgICAgIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVybiAk
ZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlSW50ZXJmYWNlTWVtYmVyT2xkCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPnBhcnNlQ29uc3Qoe30pOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0SW50ZXJmYWNlTWVtYmVy
T2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlv
bk9ySXRlcmF0b3JPbGQoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5T2xk
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxs
b3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tl
bigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgp
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsi
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3Vi
IHBhcnNlRGljdGlvbmFyeU1lbWJlck9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxk
XzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAk
c2VsZi0+cGFyc2VEZWZhdWx0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUV4Y2VwdGlvbk9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFz
cygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImV4Y2VwdGlvbiIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAg
ICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkZGF0YU5vZGUtPm5h
bWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigxKTsK
KyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJp
dGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0gJHNl
bGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAjJHNlbGYtPnBhcnNlRXhjZXB0
aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJM
aXN0KCRkYXRhTm9kZSwgJGV4Y2VwdGlvbk1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVk
QXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAg
ICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUVudW1PbGQKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIiwgX19MSU5FX18pOworICAg
ICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJU
b2tlbik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRW51bVZhbHVlTGlzdCgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBf
X0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvck9sZAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJzZXJpYWxpemVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlU2VyaWFsaXplcih7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMS8pIHsKKyAgICAgICAgbXkgJHF1YWxp
ZmllciA9ICRzZWxmLT5wYXJzZVF1YWxpZmllcigpOworICAgICAgICBteSAkZGF0YU5vZGUgPSAk
c2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RPbGQoKTsKKyAgICAgICAgaWYgKGRl
ZmluZWQgKCRkYXRhTm9kZSkgJiYgJHF1YWxpZmllciBlcSAic3RhdGljIikgeworICAgICAgICAg
ICAgJGRhdGFOb2RlLT5pc1N0YXRpYygxKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRh
dGFOb2RlOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
T2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPbGQoKTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8yLykgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uT3JJdGVyYXRvcih7fSk7CisgICAgfQor
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25SZXN0T2xkCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgeworICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdE9sZCgpOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIjsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEvKSB7CisgICAgICAgIG15ICRy
ZXR1cm5UeXBlID0gJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAgICAgICBteSAkZGF0YU5v
ZGUgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KHt9KTsKKyAgICAgICAgaWYgKGRlZmluZWQg
KCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRy
ZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUF0dHJpYnV0ZU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZU9sZF8xLykgeworICAgICAgICAkc2VsZi0+cGFyc2VJbmhl
cml0KCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlUmVzdE9sZAoreworICAgIG15ICRzZWxm
ID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3RfMS8pIHsKKyAgICAgICAgbXkgJG5l
d0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOworICAgICAgICBpZiAoJHNlbGYtPnBhcnNl
UmVhZE9ubHkoKSkgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCJyZWFkb25seSBh
dHRyaWJ1dGUiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
dHlwZSgiYXR0cmlidXRlIik7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhdHRyaWJ1dGUiLCBfX0xJTkVfXyk7CisgICAgICAg
IG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBk
b21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRz
ZWxmLT5wYXJzZVR5cGUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0
b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
Pm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgbXkgJGdldFJlZiA9ICRzZWxmLT5wYXJz
ZUdldCgpOworICAgICAgICBpZiAoZGVmaW5lZCAkZ2V0UmVmKSB7CisgICAgICAgICAgICBwdXNo
KEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSwgQHskZ2V0UmVmLT57ImdldHJhaXNl
cyJ9fSk7CisgICAgICAgICAgICBwdXNoKEB7JG5ld0RhdGFOb2RlLT5zZXR0ZXJFeGNlcHRpb25z
fSwgQHskZ2V0UmVmLT57InNldHJhaXNlcyJ9fSk7CisgICAgICAgIH0KKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUluCit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluIikgeworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluIiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gImluIjsKKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgcGFyc2VPcHRp
b25hbFNlbWljb2xvbgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJ
TkVfXyk7CisgICAgfQorfQorCitzdWIgYXBwbHlNZW1iZXJMaXN0Cit7CisgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJG1lbWJlcnMgPSBzaGlmdDsKKworICAgIGZvciBteSAkaXRl
bSAoQHskbWVtYmVyc30pIHsKKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUF0dHJpYnV0
ZSIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9LCAkaXRlbSk7
CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgICAgIGlmIChyZWYoJGl0ZW0pIGVx
ICJkb21Db25zdGFudCIpIHsKKyAgICAgICAgICAgIHB1c2goQHskZGF0YU5vZGUtPmNvbnN0YW50
c30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJl
ZigkaXRlbSkgZXEgImRvbUZ1bmN0aW9uIikgeworICAgICAgICAgICAgcHVzaChAeyRkYXRhTm9k
ZS0+ZnVuY3Rpb25zfSwgJGl0ZW0pOworICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgfQorICAg
IH0KK30KKworc3ViIGFwcGx5RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0Cit7CisgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisg
ICAgaWYgKGRlZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9KSB7
CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3
RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGV4dGVu
ZGVkQXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1Y3RvciJ9fSk7CisgICAgICAgICRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QtPnsiQ29uc3RydWN0b3IifSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICAg
ICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOworICAgIH0gZWxzaWYgKGRl
ZmluZWQgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKKyAg
ICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKCJOYW1lZENvbnN0cnVjdG9yIik7CisgICAgICAgICRuZXdE
YXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgICAgIG15ICVhdHRyaWJ1dGVzID0gJXskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
LT57Ik5hbWVkQ29uc3RydWN0b3IifX07CisgICAgICAgIG15IEBhdHRyaWJ1dGVLZXlzID0ga2V5
cyAoJWF0dHJpYnV0ZXMpOworICAgICAgICBteSAkY29uc3RydWN0b3JOYW1lID0gJGF0dHJpYnV0
ZUtleXNbMF07CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnBhcmFtZXRlcnN9LCBAeyRh
dHRyaWJ1dGVzeyRjb25zdHJ1Y3Rvck5hbWV9fSk7CisgICAgICAgICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGNvbnN0cnVjdG9yTmFtZTsKKyAgICAgICAg
JGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOworICAgIH0KKyAgICAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKK30KKworMTsK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9D
UFAvV2ViRE9NVGVzdE9iai5jcHAKaW5kZXggMGNmNjc2NTk5YzYzYmYxMjVjMWQ0OWJjYWEwYzgz
M2M4NTMxODEzYy4uNTMxODFkNGE5MDUyM2YyNTRjODI1ZTU2OWM3YWZkMDg4ODY4YjhlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01U
ZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQ
L1dlYkRPTVRlc3RPYmouY3BwCkBAIC0xNTMsMjAgKzE1MywyMCBAQCB2b2lkIFdlYkRPTVRlc3RP
Ymo6OnNldFVuc2lnbmVkU2hvcnRBdHRyKHVuc2lnbmVkIHNob3J0IG5ld1Vuc2lnbmVkU2hvcnRB
dHRyKQogICAgIGltcGwoKS0+c2V0VW5zaWduZWRTaG9ydEF0dHIobmV3VW5zaWduZWRTaG9ydEF0
dHIpOwogfQogCi1sb25nIGxvbmcgV2ViRE9NVGVzdE9iajo6QXR0cigpIGNvbnN0CitpbnQgV2Vi
RE9NVGVzdE9iajo6bG9uZ0F0dHIoKSBjb25zdAogewogICAgIGlmICghaW1wbCgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIHJldHVybiBpbXBsKCktPmF0dHIoKTsKKyAgICByZXR1cm4gaW1w
bCgpLT5sb25nQXR0cigpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6OnNldEF0dHIobG9uZyBs
b25nIG5ld0F0dHIpCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldExvbmdBdHRyKGludCBuZXdMb25n
QXR0cikKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgp
LT5zZXRBdHRyKG5ld0F0dHIpOworICAgIGltcGwoKS0+c2V0TG9uZ0F0dHIobmV3TG9uZ0F0dHIp
OwogfQogCiBsb25nIGxvbmcgV2ViRE9NVGVzdE9iajo6bG9uZ0xvbmdBdHRyKCkgY29uc3QKQEAg
LTQyNSw5ICs0MjUsNyBAQCB2b2lkIFdlYkRPTVRlc3RPYmo6OnNldEF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKGludCBuZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikKICAgICBpZiAoIWltcGwoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgaW1wbCgpLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbiwgZWMpOwotICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3RhdGljX2Nhc3Q8V2ViRE9NRXhj
ZXB0aW9uQ29kZT4oZWMpKTsKKyAgICBpbXBsKCktPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogaW50IFdlYkRPTVRlc3RPYmo6OmF0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uKCkgY29uc3QKQEAgLTQ2NCw5ICs0NjIsNyBAQCB2b2lkIFdl
YkRPTVRlc3RPYmo6OnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKGNvbnN0IFdlYkRP
TVN0cmluZyYgbmV3U3RyaQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNldFN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBl
Yyk7Ci0gICAgd2ViRE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2Rl
PihlYykpOworICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiBXZWJET01TdHJpbmcgV2ViRE9N
VGVzdE9iajo6c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oKSBjb25zdApAQCAtNjc3LDI4
ICs2NzMsMjggQEAgdm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kKCkKICAgICBpbXBsKCkt
PnZvaWRNZXRob2QoKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFy
Z3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRP
TVRlc3RPYmomIG9iakFyZykKK3ZvaWQgV2ViRE9NVGVzdE9iajo6dm9pZE1ldGhvZFdpdGhBcmdz
KGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpbXBsKCktPnZvaWRNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgdG9XZWJDb3JlKG9iakFy
ZykpOworICAgIGltcGwoKS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgdG9X
ZWJDb3JlKG9iakFyZykpOwogfQogCi1sb25nIGxvbmcgV2ViRE9NVGVzdE9iajo6TWV0aG9kKCkK
K2ludCBXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kKCkKIHsKICAgICBpZiAoIWltcGwoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gaW1wbCgpLT5tZXRob2QoKTsKKyAgICByZXR1
cm4gaW1wbCgpLT5sb25nTWV0aG9kKCk7CiB9CiAKLWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpN
ZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywg
Y29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQoraW50IFdlYkRPTVRlc3RPYmo6OmxvbmdNZXRo
b2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0
IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICByZXR1cm4gaW1wbCgpLT5tZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
dG9XZWJDb3JlKG9iakFyZykpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKTsKIH0KIAogV2ViRE9NVGVzdE9i
aiBXZWJET01UZXN0T2JqOjpvYmpNZXRob2QoKQpAQCAtNzA5LDEyICs3MDUsMTIgQEAgV2ViRE9N
VGVzdE9iaiBXZWJET01UZXN0T2JqOjpvYmpNZXRob2QoKQogICAgIHJldHVybiB0b1dlYktpdChX
VEY6OmdldFB0cihpbXBsKCktPm9iak1ldGhvZCgpKSk7CiB9CiAKLVdlYkRPTVRlc3RPYmogV2Vi
RE9NVGVzdE9iajo6b2JqTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywgY29uc3QgV2ViRE9N
U3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKK1dlYkRPTVRlc3RP
YmogV2ViRE9NVGVzdE9iajo6b2JqTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdl
YkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiBXZWJET01UZXN0T2JqKCk7CiAKLSAgICByZXR1
cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0
ckFyZywgdG9XZWJDb3JlKG9iakFyZykpKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0
UHRyKGltcGwoKS0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUo
b2JqQXJnKSkpKTsKIH0KIAogV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjptZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25z
dCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCkBAIC05MDIsMzYgKzg5OCwzNiBAQCB2b2lkIFdlYkRP
TVRlc3RPYmo6Om92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSkKIAog
I2VuZGlmCiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDEoY29uc3QgV2ViRE9NYSYgKQor
dm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiB2YWx1ZSkKIHsKICAg
ICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0MSh0
b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0MSh0b1dlYkNvcmUodmFsdWUpKTsKIH0K
IAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0Mihjb25zdCBXZWJET01iJiApCit2b2lkIFdl
YkRPTVRlc3RPYmo6OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImIHZhbHVlKQogewogICAgIGlmICgh
aW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQyKHRvV2ViQ29y
ZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQyKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lk
IFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQmICkKK3ZvaWQgV2ViRE9NVGVz
dE9iajo6Y29udmVydDQoY29uc3QgV2ViRE9NZCYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+Y29udmVydDQodG9XZWJDb3JlKCkpOwor
ICAgIGltcGwoKS0+Y29udmVydDQodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9N
VGVzdE9iajo6Y29udmVydDUoY29uc3QgV2ViRE9NZSYgKQordm9pZCBXZWJET01UZXN0T2JqOjpj
b252ZXJ0NShjb25zdCBXZWJET01lJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaW1wbCgpLT5jb252ZXJ0NSh0b1dlYkNvcmUoKSk7CisgICAgaW1w
bCgpLT5jb252ZXJ0NSh0b1dlYkNvcmUodmFsdWUpKTsKIH0KIAogV2ViRE9NU1ZHUG9pbnQgV2Vi
RE9NVGVzdE9iajo6bXV0YWJsZVBvaW50RnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAppbmRleCBk
NTVmZjc4NjU1MWViZDNjNzRhZDFhOTY4ODMyZDIwMjliY2FjNTI3Li41ZDlhOWFjMDAyODFkYzkw
ODkzMDFkNmU3YTViNTI3OGY0ZGFhZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAtNzcsOCArNzcs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG9ydEF0dHIoc2hvcnQpOwogICAgIHVuc2lnbmVk
IHNob3J0IHVuc2lnbmVkU2hvcnRBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRVbnNpZ25lZFNo
b3J0QXR0cih1bnNpZ25lZCBzaG9ydCk7Ci0gICAgbG9uZyBsb25nIEF0dHIoKSBjb25zdDsKLSAg
ICB2b2lkIHNldEF0dHIobG9uZyBsb25nKTsKKyAgICBpbnQgbG9uZ0F0dHIoKSBjb25zdDsKKyAg
ICB2b2lkIHNldExvbmdBdHRyKGludCk7CiAgICAgbG9uZyBsb25nIGxvbmdMb25nQXR0cigpIGNv
bnN0OwogICAgIHZvaWQgc2V0TG9uZ0xvbmdBdHRyKGxvbmcgbG9uZyk7CiAgICAgdW5zaWduZWQg
bG9uZyBsb25nIHVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkgY29uc3Q7CkBAIC0xNDcsMTEgKzE0Nywx
MSBAQCBwdWJsaWM6CiAgICAgaW50IHJlcGxhY2VhYmxlQXR0cmlidXRlKCkgY29uc3Q7CiAKICAg
ICB2b2lkIHZvaWRNZXRob2QoKTsKLSAgICB2b2lkIHZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxv
bmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYg
b2JqQXJnKTsKLSAgICBsb25nIGxvbmcgTWV0aG9kKCk7Ci0gICAgbG9uZyBsb25nIE1ldGhvZFdp
dGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBX
ZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGludCBs
b25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYg
b2JqQXJnKTsKKyAgICBpbnQgbG9uZ01ldGhvZCgpOworICAgIGludCBsb25nTWV0aG9kV2l0aEFy
Z3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9kKCk7Ci0gICAgV2Vi
RE9NVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01T
dHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKKyAgICBXZWJET01U
ZXN0T2JqIG9iak1ldGhvZFdpdGhBcmdzKGludCBsb25nQXJnLCBjb25zdCBXZWJET01TdHJpbmcm
IHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKTsKICAgICBXZWJET01UZXN0T2Jq
IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoY29uc3QgV2ViRE9NU3RyaW5nJiBz
dHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CiAgICAgdm9pZCBzZXJpYWxpemVk
VmFsdWUoY29uc3QgV2ViRE9NU3RyaW5nJiBzZXJpYWxpemVkQXJnKTsKICAgICB2b2lkIGlkYktl
eShjb25zdCBXZWJET01JREJLZXkmIGtleSk7CkBAIC0xODIsMTAgKzE4MiwxMCBAQCBwdWJsaWM6
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAgICAgdm9pZCBvdmVybG9hZGVkTWV0aG9kMShjb25z
dCBXZWJET01TdHJpbmcmIHR5cGUpOwogI2VuZGlmCi0gICAgdm9pZCBjb252ZXJ0MShjb25zdCBX
ZWJET01hJiApOwotICAgIHZvaWQgY29udmVydDIoY29uc3QgV2ViRE9NYiYgKTsKLSAgICB2b2lk
IGNvbnZlcnQ0KGNvbnN0IFdlYkRPTWQmICk7Ci0gICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJE
T01lJiApOworICAgIHZvaWQgY29udmVydDEoY29uc3QgV2ViRE9NYSYgdmFsdWUpOworICAgIHZv
aWQgY29udmVydDIoY29uc3QgV2ViRE9NYiYgdmFsdWUpOworICAgIHZvaWQgY29udmVydDQoY29u
c3QgV2ViRE9NZCYgdmFsdWUpOworICAgIHZvaWQgY29udmVydDUoY29uc3QgV2ViRE9NZSYgdmFs
dWUpOwogICAgIFdlYkRPTVNWR1BvaW50IG11dGFibGVQb2ludEZ1bmN0aW9uKCk7CiAgICAgV2Vi
RE9NU1ZHUG9pbnQgaW1tdXRhYmxlUG9pbnRGdW5jdGlvbigpOwogICAgIHZvaWQgYmFuYW5hKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IDEyMDRkZmI1MGRiZDNkYzlh
NDIzY2ExZDVhYWI1NzMxODM1ZWI5MzguLjJkMDNkYWU5YThkYmZhNzA1YTFlNGRjNThiNjU2Mzky
MTA4Yjc4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0xMDYsNyAr
MTA2LDcgQEAgZW51bSB7CiAgICAgUFJPUF9SRUFEX09OTFlfVEVTVF9PQkpfQVRUUiwKICAgICBQ
Uk9QX1NIT1JUX0FUVFIsCiAgICAgUFJPUF9VTlNJR05FRF9TSE9SVF9BVFRSLAotICAgIFBST1Bf
QVRUUiwKKyAgICBQUk9QX0xPTkdfQVRUUiwKICAgICBQUk9QX0xPTkdfTE9OR19BVFRSLAogICAg
IFBST1BfVU5TSUdORURfTE9OR19MT05HX0FUVFIsCiAgICAgUFJPUF9TVFJJTkdfQVRUUiwKQEAg
LTE3OSw2ICsxNzksMTAgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgICAgICBjb3JlU2Vs
Zi0+c2V0VW5zaWduZWRTaG9ydEF0dHIoKGdfdmFsdWVfZ2V0X3VpbnQodmFsdWUpKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KKyAgICBjYXNlIFBST1BfTE9OR19BVFRSOiB7CisgICAgICAgIGNv
cmVTZWxmLT5zZXRMb25nQXR0cigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9VTlNJR05FRF9MT05HX0xPTkdfQVRUUjogewog
ICAgICAgICBjb3JlU2VsZi0+c2V0VW5zaWduZWRMb25nTG9uZ0F0dHIoKGdfdmFsdWVfZ2V0X3Vp
bnQ2NCh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CkBAIC0yMjgsOCArMjMyLDcgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wZXJ0eUlkLAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0FU
VFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OOiB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
KGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSwgZWMpOworICAgICAgICBjb3JlU2VsZi0+c2V0QXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT046
IHsKQEAgLTIzOCw4ICsyNDEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfU1RSSU5HX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBU
SU9OOiB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBj
b3JlU2VsZi0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oV1RGOjpTdHJpbmc6OmZy
b21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxm
LT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6ZnJvbVVURjgo
Z192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAg
Y2FzZSBQUk9QX1NUUklOR19BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjogewpAQCAtMzI5LDgg
KzMzMSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgZ192YWx1ZV9zZXRfdWlu
dCh2YWx1ZSwgY29yZVNlbGYtPnVuc2lnbmVkU2hvcnRBdHRyKCkpOwogICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgY2FzZSBQUk9QX0FUVFI6IHsKLSAgICAgICAgZ192YWx1ZV9zZXRfaW50NjQo
dmFsdWUsIGNvcmVTZWxmLT5hdHRyKCkpOworICAgIGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAg
ICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgY29yZVNlbGYtPmxvbmdBdHRyKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBQUk9QX0xPTkdfTE9OR19BVFRSOiB7CkBAIC01
OTMsMTIgKzU5NSwxMiBAQCBHX01BWFVJTlQsIC8qIG1heCAqLwogMCwgLyogZGVmYXVsdCAqLwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUk9QX0FUVFIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfaW50NjQoImF0dHIiLCAvKiBuYW1lICovCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9hdHRyIiwgLyogc2hv
cnQgZGVzY3JpcHRpb24gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdpbnQ2NCBUZXN0T2JqLmF0dHIiLCAv
KiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R19NSU5JTlQ2NCwgLyogbWluICovCi1HX01BWElOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfTE9OR19BVFRSLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoImxvbmctYXR0ciIsIC8qIG5h
bWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3Rfb2JqX2xvbmctYXR0ciIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZWFkLXdyaXRlICBnbG9uZyBUZXN0T2JqLmxvbmctYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxk
IGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTkxPTkcsIC8qIG1p
biAqLworR19NQVhMT05HLCAvKiBtYXggKi8KIDAsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpOwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29i
amVjdENsYXNzLApAQCAtOTMxLDcgKzkzMyw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9t
ZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0
IEFyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQord2Vi
a2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9i
aiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTQ0LDIxICs5NDYsMjEgQEAgd2Via2l0
X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2ludDY0IEFyZywgY28KICAgICAgICAgY29udmVydGVkT2JqQXJnID0gV2ViS2l0Ojpjb3Jl
KG9iakFyZyk7CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkT2JqQXJnKTsKICAg
ICB9Ci0gICAgaXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBj
b252ZXJ0ZWRPYmpBcmcpOworICAgIGl0ZW0tPnZvaWRNZXRob2RXaXRoQXJncyhsb25nQXJnLCBj
b252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CiB9CiAKLWdpbnQ2NAotd2Via2l0X2Rv
bV90ZXN0X29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK2dsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgZ2ludDY0IHJlc3VsdCA9IGl0ZW0tPk1ldGhvZCgpOworICAgIGdsb25n
IHJlc3VsdCA9IGl0ZW0tPmxvbmdNZXRob2QoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1n
aW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0
T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZF93aXRo
X2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIq
IHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQogewogICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKQEAgLTk3MSw3ICs5NzMsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2Fy
Z3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZwogICAgICAgICBj
b252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29udmVydGVkT2JqQXJnLCAwKTsKICAgICB9Ci0gICAgZ2ludDY0IHJlc3Vs
dCA9IGl0ZW0tPk1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0ZWRP
YmpBcmcpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPmxvbmdNZXRob2RXaXRoQXJncyhsb25n
QXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApAQCAtOTg3LDcgKzk4OSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhv
ZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogfQogCiBXZWJLaXRET01UZXN0T2JqKgotd2Via2l0
X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpB
cmcpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxmLCAwKTsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0xMDAwLDcgKzEw
MDIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbgogICAgICAgICBjb252ZXJ0ZWRPYmpBcmcg
PSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29u
dmVydGVkT2JqQXJnLCAwKTsKICAgICB9Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIGNv
bnZlcnRlZFN0ckFyZywgY29udmVydGVkT2JqQXJnKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRl
c3RPYmo+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5vYmpNZXRob2RXaXRoQXJn
cyhsb25nQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZykpOwogICAgIFdlYktp
dERPTVRlc3RPYmoqIHJlc3VsdCA9IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzQ0LDYzICsxMzQ2LDYzIEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb3ZlcmxvYWRlZF9tZXRob2QxKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSogKQord2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01hKiB2YWx1ZSkKIHsKICAg
ICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWQg
PSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVydGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0g
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHZhbHVlKTsKKyAgICBXZWJDb3JlOjphKiBjb252ZXJ0ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZh
bHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAg
ICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIGl0ZW0t
PmNvbnZlcnQxKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkVmFsdWUp
OwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWIqICkKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDIoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogdmFsdWUpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
X3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6YiogY29udmVydGVkID0gMDsKLSAgICBp
ZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktpdDo6Y29yZSgpOwotICAgICAgICBnX3Jl
dHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Cisg
ICAgV2ViQ29yZTo6YiogY29udmVydGVkVmFsdWUgPSAwOworICAgIGlmICh2YWx1ZSkgeworICAg
ICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBpdGVtLT5jb252ZXJ0Mihj
b252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01kKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWQqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmQqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmQqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDQoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZSog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01lKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjplKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjplKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQ1KGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDUoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01TVkdQb2ludCoKQEAgLTE1
MjEsMjMgKzE1MjMsMjMgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRf
YXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHUKICAgICBpdGVtLT5zZXRV
bnNpZ25lZFNob3J0QXR0cih2YWx1ZSk7CiB9CiAKLWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogewogICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIGdpbnQ2NCByZXN1bHQgPSBpdGVtLT5hdHRyKCk7CisgICAgZ2xvbmcgcmVzdWx0
ID0gaXRlbS0+bG9uZ0F0dHIoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiB2b2lkCi13ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2
YWx1ZSkKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0
T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPnNldEF0dHIodmFsdWUp
OworICAgIGl0ZW0tPnNldExvbmdBdHRyKHZhbHVlKTsKIH0KIAogZ2ludDY0CkBAIC0xODY1LDE3
ICsxODY3LDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhj
ZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvCiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdsb25nIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaXRlbS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUsIGVjKTsKLSAg
ICBpZiAoZWMpIHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVj
ZGVzYyhlYyk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJv
bV9zdHJpbmcoIldFQktJVF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9
CisgICAgaXRlbS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUpOwogfQogCiBnbG9u
ZwpAQCAtMTkxNCwxOSArMTkxMSwxNCBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9zdHJpbmdf
YXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZgogfQogCiB2
b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNl
cHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcikKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVy
X2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiB7
CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKICAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKICAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24oY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdf
c2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00i
KSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29udmVydGVkVmFsdWUpOwogfQogCiBnY2hhcioKQEAg
LTIwMTcsNyArMjAwOSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiB9CiAKIHZvaWQKLXdl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioq
IGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmli
dXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1
ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwMjgsMTIgKzIwMjAsNyBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbAogICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7
CiAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAg
ICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAg
ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJ
VF9ET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2Vi
S2l0RE9NVGVzdE9iaioKQEAgLTIwNTMsNyArMjA0MCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0
RE9NCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1
dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2Vi
S2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29i
al9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSkKIHsKICAgICBnX3Jl
dHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKQEAgLTIwNjQsMTIgKzIwNTEsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRo
X3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTQogICAg
ICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29yZSh2YWx1ZSk7CiAgICAgICAgIGdfcmV0
dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAgIH0KLSAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRWYWx1ZSk7CiB9
CiAKIFdlYktpdERPTVRlc3RPYmoqCkBAIC0yMTE1LDcgKzIwOTcsNyBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRl
X2F0dHJpYnV0ZQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Njcmlw
dF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2Vi
S2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVy
cm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRl
eHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjEyNiwx
MiArMjEwOCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlv
bl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiAgICAgICAgIGNvbnZlcnRlZFZh
bHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252
ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRy
aWJ1dGVSYWlzZXMoY29udmVydGVkVmFsdWUsIGVjKTsKLSAgICBpZiAoZWMpIHsKLSAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYyhlYyk7Ci0gICAgICAgIGdf
c2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00i
KSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKLSAgICB9CisgICAgaXRlbS0+c2V0V2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0
ZWRWYWx1ZSk7CiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
T2JqLmgKaW5kZXggMzk1ZmE3N2E2OTE0NGQyMDg2ZGViNTQzMmFjNjA5YjJlNGNjZDk2Ni4uOWQ5
MDVhZDJiMTk4MTI5OWQ5ZWY1YmEzNDBkYTc1MjIyNjRiMjdkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaApAQCAtNTgsNyArNTgsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRf
bWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2Jq
Ci0gKiBAQXJnOiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9uZwogICogQHN0ckFyZzog
QSAjZ2NoYXIKICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCkBAIC02NiwzMCAr
NjYsMzAgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJLaXRET01UZXN0T2Jq
KiBzZWxmKTsKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial92
b2lkX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywg
Y29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9k
b21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9i
akFyZyk7CiAKIC8qKgotICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Q6CisgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
ICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworV0VCS0lUX0FQSSBnbG9u
Zword2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxm
KTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX2FyZ3M6CisgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJnczoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01UZXN0T2JqCi0gKiBAQXJnOiBBICNnaW50NjQKKyAqIEBsb25nQXJnOiBBICNnbG9u
ZwogICogQHN0ckFyZzogQSAjZ2NoYXIKICAqIEBvYmpBcmc6IEEgI1dlYktpdERPTVRlc3RPYmoK
ICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VCS0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21f
dGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQg
QXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOworV0VC
S0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9sb25nX21ldGhvZF93aXRoX2FyZ3Mo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3QgZ2NoYXIqIHN0ckFy
ZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX29ial9tZXRob2Q6CkBAIC0xMDQsNyArMTA0LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9v
YmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogLyoqCiAgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJn
OiBBICNnY2hhcgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTExMiw3
ICsxMTIsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZik7CiAgKgogKiovCiBXRUJLSVRfQVBJIFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRf
ZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYs
IGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFy
Zyk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIGxvbmdBcmcsIGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERP
TVRlc3RPYmoqIG9iakFyZyk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rf
dGhhdF9yZXF1aXJlc19hbGxfYXJnc19hbmRfdGhyb3dzOgpAQCAtNDAwLDQ2ICs0MDAsNDYgQEAg
d2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVkX21ldGhvZDEoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9jb252
ZXJ0MToKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRET01h
CisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWEKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWEqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQyOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
LSAqIEA6IEEgI1dlYktpdERPTWIKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYgogICoKICAqIFJl
dHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY29u
dmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogKTsKK3dlYmtpdF9kb21f
dGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiogdmFs
dWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDQ6CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NZAorICogQHZhbHVlOiBBICNX
ZWJLaXRET01kCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRE
T01kKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NChXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBXZWJLaXRET01kKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9j
b252ZXJ0NToKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAOiBBICNXZWJLaXRE
T01lCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWUKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwog
V0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1KFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTWUqICk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKTsKIAogLyoqCiAgKiB3
ZWJraXRfZG9tX3Rlc3Rfb2JqX211dGFibGVfcG9pbnRfZnVuY3Rpb246CkBAIC01NTgsMjUgKzU1
OCwyNSBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Vuc2lnbmVk
X3Nob3J0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ3VzaG9ydCB2YWx1ZSk7CiAKIC8q
KgotICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2xvbmdfYXR0cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgogICog
UmV0dXJuczoKICAqCiAqKi8KLVdFQktJVF9BUEkgZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2dldF9hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworV0VCS0lUX0FQSSBnbG9uZword2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwog
CiAvKioKLSAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHI6CisgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF9sb25nX2F0dHI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICog
QHZhbHVlOiBBICNnaW50NjQKKyAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCiAgKiBSZXR1cm5zOgog
ICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCB2YWx1ZSk7Cit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9sb25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAv
KioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2xvbmdfbG9uZ19hdHRyOgpAQCAtOTA4LDEz
ICs5MDgsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNl
cHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0Vycm8KICAqIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERP
TVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjZ2xvbmcKLSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAq
IFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGds
b25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1
ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRoX3NldHRlcl9l
eGNlcHRpb246CkBAIC05NTMsMTMgKzk1MiwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9z
dHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZgog
ICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0
aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
LSAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJ
IHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4
Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJv
cioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0
dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfc2V0
dGVyX2V4Y2VwdGlvbjoKQEAgLTEwNDAsMTMgKzEwMzgsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2Jq
KiBzZWwKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJp
YnV0ZV9yYWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBB
ICNXZWJLaXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVz
dF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioK
ICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXM6CkBAIC0xMDYzLDEzICsxMDYwLDEyIEBAIHdlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMo
V2ViS2l0RE9NCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRp
b25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RP
YmoKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lk
Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9h
dHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoq
IHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3Nj
cmlwdF9leGVjdXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRl
X2F0dHJpYnV0ZToKQEAgLTExMDcsMTMgKzExMDMsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1
dGUKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxmOiBBICNXZWJL
aXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAqKi8KIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9u
X2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7Cit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2Ny
aXB0X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0
RE9NVGVzdE9iaiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dp
dGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfd2l0aF9zcGFjZXNf
YXR0cmlidXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBmNDhhOWM4MzM3MGY1MzRjZjUwOGFhM2NmZWNhZTI1
OTc2NjdlYzY3Li40OWEyZmM3ZDBmMWU4NzlkODhmOTk5NTM5N2M5OTVlYWYzMDNjYjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcApAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAicmVhZE9ubHlUZXN0T2JqQXR0ciIsIERvbnRE
ZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKSwgKGludHB0cl90KTAsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAic2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTaG9ydEF0dHIp
LCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsg
InVuc2lnbmVkU2hvcnRBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciksIChp
bnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ciwgTm9JbnRyaW5zaWMgfSwKLSAg
ICB7ICJBdHRyIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakF0
dHIsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ0F0dHIiLCBEb250RGVsZXRlLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakxvbmdB
dHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakxvbmdBdHRyLCBOb0ludHJpbnNpYyB9LAogICAg
IHsgImxvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90
KXNldEpTVGVzdE9iakxvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ1bnNpZ25l
ZExvbmdMb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIpLCAoaW50
cHRyX3Qpc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAg
ICAgeyAic3RyaW5nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0ciksIChpbnRwdHJfdClz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyLCBOb0ludHJpbnNpYyB9LApAQCAtMjY2LDggKzI2Niw4IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KICAgICB7ICJDT05TVF9KQVZBU0NSSVBUIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJ2
b2lkTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9k
KSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidm9pZE1ldGhvZFdpdGhBcmdz
IiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3Mp
LCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKLSAgICB7ICJNZXRob2QiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZCksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNp
YyB9LAotICAgIHsgIk1ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rpb24s
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAorICAg
IHsgImxvbmdNZXRob2QiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7ICJsb25nTWV0aG9kV2l0
aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRo
QXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm9iak1ldGhvZCIsIERv
bnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKSwgKGludHB0cl90KTAs
IE5vSW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwg
SlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIiwgRG9udERlbGV0ZSB8
IEpTQzo6RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAoaW50cHRyX3Qp
MSwgTm9JbnRyaW5zaWMgfSwKQEAgLTQ2MywxMiArNDYzLDEyIEBAIEpTVmFsdWUganNUZXN0T2Jq
VW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9w
ZXJ0eU5hCiB9CiAKIAotSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQorSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJh
c2UpKTsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRp
Y19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNOdW1iZXIoaW1wbC0+YXR0cigpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVy
KGltcGwtPmxvbmdBdHRyKCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTEwMDEsMTIg
KzEwMDEsMTIgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHUKIH0KIAogCi12b2lkIHNldEpTVGVz
dE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKLSAgICBpbXBsLT5zZXRBdHRyKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmFs
dWUudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW1wbC0+c2V0TG9uZ0F0dHIodmFsdWUudG9JbnQz
MihleGVjKSk7CiB9CiAKIApAQCAtMTE1OSw5ICsxMTU5LDcgQEAgdm9pZCBzZXRKU1Rlc3RPYmpB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2Jq
ZWN0LAogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGltcGwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLnRv
SW50MzIoZXhlYyksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGlt
cGwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlLnRvSW50MzIoZXhlYykpOwogfQog
CiAKQEAgLTExODEsOSArMTE3OSw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iCiAgICAgVU5V
U0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rl
c3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVz
dE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUuaXNFbXB0eSgp
ID8gU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyksIGVjKTsKLSAg
ICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFN0cmluZ0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKHZhbHVlLmlzRW1wdHkoKSA/IFN0cmluZygpIDogdmFsdWUudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKIH0KIAogCkBAIC0xMjMxLDkgKzEyMjcsNyBAQCB2b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzTwogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMoZXhlYywgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTI0MiwxMiArMTIzNiwx
MCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYgogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7
CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5p
bXBsKCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYg
KCFzY3JpcHRDb250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgdG9UZXN0T2Jq
KHZhbHVlKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+
c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4
dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTI2OCwxMiArMTI2MCwxMCBAQCB2b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRy
aWJ1dGVSYWlzZXMoRXhlY1N0YQogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNj
cmlwdENvbnRleHQgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFzY3JpcHRD
b250ZXh0KQogICAgICAgICByZXR1cm47Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCBzY3JpcHRDb250ZXh0
LCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsK
KyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSkpOwogfQog
CiAKQEAgLTE0NTEsNyArMTQ0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwog
ICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKLSAgICBs
b25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsKKyAgICBp
bnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBjb25zdCBT
dHJpbmcmIHN0ckFyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNV
bmRlZmluZWQpLmlzRW1wdHkoKSA/IFN0cmluZygpIDogTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwpAQCAtMTQ2MCwxMSArMTQ1MCwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZFdpdGhBcmdzKEV4ZWNTdAogICAgIFRl
c3RPYmoqIG9iakFyZyh0b1Rlc3RPYmooTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMiwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLT52
b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyk7CisgICAgaW1wbC0+dm9pZE1l
dGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25n
TWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMt
Pmhvc3RUaGlzVmFsdWUoKTsKICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2Jq
OjpzX2luZm8pKQpAQCAtMTQ3MywxMSArMTQ2MywxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsICZKU1Rlc3RPYmo6OnNf
aW5mbyk7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRU
aGlzLT5pbXBsKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwt
Pm1ldGhvZCgpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9u
Z01ldGhvZCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQXJncyhFeGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXhlYykKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsK
ICAgICBpZiAoIXRoaXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQpAQCAtMTQ4
Nyw3ICsxNDc3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSoKICAgICBUZXN0T2JqKiBpbXBs
ID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBB
cmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAw
LCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJn
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9J
bnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3Ry
QXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCku
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBE
ZWZhdWx0SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0xNDk3
LDcgKzE0ODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKgogICAgIGlmIChleGVjLT5oYWRF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIAotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5tZXRob2RXaXRo
QXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpz
TnVtYmVyKGltcGwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZykp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTUyNCw3ICsx
NTE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEV4ZWNTdGEKICAgICBUZXN0T2JqKiBpbXBsID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFy
Z3VtZW50Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihl
eGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkuaXNFbXB0
eSgpID8gU3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0xNTM0LDcgKzE1
MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YQogICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAot
ICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBXVEY6OmdldFB0cihpbXBsLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
b2JqQXJnKSkpOworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXBsLT5vYmpNZXRob2RXaXRoQXJncyhs
b25nQXJnLCBzdHJBcmcsIG9iakFyZykpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJl
c3VsdCk7CiB9CiAKQEAgLTE1NjUsMTEgKzE1NTUsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNl
KEUKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhl
YykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVj
KSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
Ci0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCksIGltcGwtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEFyZykpOworICAgIEpT
Qzo6SlNWYWx1ZSByZXN1bHQgPSBqc0FycmF5KGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBpbXBsLT5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShsb25nQXJnKSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0yMTQ0LDEwICsyMTM0LDEwIEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDIoCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgfQogCi0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25n
IGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBp
ZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIEFyZyk7
CisgICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTIxNzgsMTAgKzIxNjgs
MTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNCgKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGlj
X2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVj
KSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPm92ZXJsb2FkZWRNZXRob2QoQXJn
KTsKKyAgICBpbXBsLT5vdmVybG9hZGVkTWV0aG9kKGxvbmdBcmcpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI0ODUsMTAgKzI0NzUsMTAgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bnZlcnQxKEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291
bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGEqICh0b2EoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGEqIHZhbHVlKHRvYShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQxKCk7CisgICAgaW1wbC0+Y29u
dmVydDEodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKQEAgLTI1MDIsMTAgKzI0OTIsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwo
KSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwot
ICAgIGIqICh0b2IoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpOworICAgIGIqIHZhbHVlKHRvYihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVj
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGlt
cGwtPmNvbnZlcnQyKCk7CisgICAgaW1wbC0+Y29udmVydDIodmFsdWUpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKQEAgLTI1MTksMTAgKzI1MDksMTAg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQ0KEV4ZWNTdGF0ZSogZXhlYykKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGQqICh0b2QoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIGQqIHZhbHVlKHRv
ZChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPmNvbnZlcnQ0KCk7CisgICAgaW1wbC0+
Y29udmVydDQodmFsdWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKQEAgLTI1MzYsMTAgKzI1MjYsMTAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ1KEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykp
OwotICAgIGUqICh0b2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpOworICAgIGUqIHZhbHVlKHRvZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihl
eGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAg
IGltcGwtPmNvbnZlcnQ1KCk7CisgICAgaW1wbC0+Y29udmVydDUodmFsdWUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCAxMjMyNzI0
MDUyYWRmMjBlYjhhNjkwNmEwMjExOTUzNTNkMWExMWNmLi5mODEwZDgwMDE2MDRiODZhNDI5ZmE4
OGI1NTRmYmJlNTkwMThlNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0xNTQsOCArMTU0LDggQEAgcHJvdGVjdGVk
OgogCiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Wb2lkTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFy
Z3MoSlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEFyZ3MoSlNDOjpFeGVjU3RhdGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoSlNDOjpFeGVjU3Rh
dGUqKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0
aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0
ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0yMjgs
OCArMjI4LDggQEAgSlNDOjpKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUKIHZvaWQgc2V0SlNUZXN0T2JqU2hv
cnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CiBK
U0M6OkpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqVW5zaWdu
ZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKLUpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKK0pTQzo6SlNWYWx1ZSBqc1Rl
c3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25n
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwog
dm9pZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oCmluZGV4IDZhOTA5OTExY2M4YmIwYWMwMzFjNzAxMjlhNDE5MTYyZDY1ZWVj
YWUuLjk1NjMzNTkxZTdmYjM3MGI4ZGRiNjBhYTc2NDUxMjdkZGQ3Y2IxMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2Jq
LmgKQEAgLTcwLDcgKzcwLDcgQEAgZW51bSB7CiBAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikg
RE9NVGVzdE9iaiAqcmVhZE9ubHlUZXN0T2JqQXR0cjsKIEBwcm9wZXJ0eSBzaG9ydCBzaG9ydEF0
dHI7CiBAcHJvcGVydHkgdW5zaWduZWQgc2hvcnQgdW5zaWduZWRTaG9ydEF0dHI7Ci1AcHJvcGVy
dHkgbG9uZyBsb25nIEF0dHI7CitAcHJvcGVydHkgaW50IGxvbmdBdHRyOwogQHByb3BlcnR5IGxv
bmcgbG9uZyBsb25nTG9uZ0F0dHI7CiBAcHJvcGVydHkgdW5zaWduZWQgbG9uZyBsb25nIHVuc2ln
bmVkTG9uZ0xvbmdBdHRyOwogQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICpzdHJpbmdBdHRyOwpA
QCAtMTE3LDE4ICsxMTcsMTggQEAgZW51bSB7CiBAcHJvcGVydHkgaW50IHJlcGxhY2VhYmxlQXR0
cmlidXRlOwogCiAtICh2b2lkKXZvaWRNZXRob2Q7Ci0tICh2b2lkKXZvaWRNZXRob2RXaXRoQXJn
czoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZzsKLS0gKGxvbmcgbG9uZylNZXRob2Q7Ci0tIChsb25nIGxvbmcpTWV0aG9k
V2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczooaW50KWxv
bmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmc7CistIChpbnQpbG9uZ01ldGhvZDsKKy0gKGludClsb25nTWV0aG9kV2l0aEFyZ3M6KGludCls
b25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnOwogLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZDsKLS0gKERPTVRlc3RPYmogKilvYmpNZXRo
b2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFy
ZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKERPTVRlc3RPYmogKilvYmpNZXRob2RXaXRoQXJn
czooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RP
YmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICopbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0Fu
ZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwog
LSAodm9pZClzZXJpYWxpemVkVmFsdWU6KE5TU3RyaW5nICopc2VyaWFsaXplZEFyZzsKIC0gKHZv
aWQpaWRiS2V5OihET01JREJLZXkgKilrZXk7CiAtICh2b2lkKW9wdGlvbnNPYmplY3Q6KERPTURp
Y3Rpb25hcnkgKilvbyBvb286KERPTURpY3Rpb25hcnkgKilvb287CiAtICh2b2lkKW1ldGhvZFdp
dGhFeGNlcHRpb247CiAtICh2b2lkKWN1c3RvbU1ldGhvZDsKLS0gKHZvaWQpY3VzdG9tTWV0aG9k
V2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6
KERPTVRlc3RPYmogKilvYmpBcmc7CistICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQp
bG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9i
akFyZzsKIC0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVy
OihpZCA8RE9NRXZlbnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0
dXJlOwogLSAodm9pZClyZW1vdmVFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVu
ZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNh
cHR1cmU7CiAtICh2b2lkKXdpdGhTY3JpcHRTdGF0ZVZvaWQ7CkBAIC0xNjUsMTAgKzE2NSwxMCBA
QCBlbnVtIHsKIC0gKHZvaWQpb3ZlcmxvYWRlZE1ldGhvZDE6KE5TU3RyaW5nICopdHlwZTsKICNl
bmRpZgogLSAoRE9NU1ZHRG9jdW1lbnQgKilnZXRTVkdEb2N1bWVudDsKLS0gKHZvaWQpY29udmVy
dDE6KERPTWEgKik7Ci0tICh2b2lkKWNvbnZlcnQyOihET01iICopOwotLSAodm9pZCljb252ZXJ0
NDooRE9NZCAqKTsKLS0gKHZvaWQpY29udmVydDU6KERPTWUgKik7CistICh2b2lkKWNvbnZlcnQx
OihET01hICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQyOihET01iICopdmFsdWU7CistICh2b2lk
KWNvbnZlcnQ0OihET01kICopdmFsdWU7CistICh2b2lkKWNvbnZlcnQ1OihET01lICopdmFsdWU7
CiAtIChET01TVkdQb2ludCAqKW11dGFibGVQb2ludEZ1bmN0aW9uOwogLSAoRE9NU1ZHUG9pbnQg
KilpbW11dGFibGVQb2ludEZ1bmN0aW9uOwogLSAodm9pZClvcmFuZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpp
bmRleCA4YjJiY2YwMGIxZjk2NDEzYzkwYzkwOTAwZDUwZjg4YzhlYWQ2ZDYyLi4zZGQwZTdhZjBj
YTY3OWM4MWE3NmZmYzYxZDQwYTNjYTZhOTU3NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTE0MCwx
NiArMTQwLDE2IEBACiAgICAgSU1QTC0+c2V0VW5zaWduZWRTaG9ydEF0dHIobmV3VW5zaWduZWRT
aG9ydEF0dHIpOwogfQogCi0tIChsb25nIGxvbmcpQXR0cgorLSAoaW50KWxvbmdBdHRyCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBM
LT5hdHRyKCk7CisgICAgcmV0dXJuIElNUEwtPmxvbmdBdHRyKCk7CiB9CiAKLS0gKHZvaWQpc2V0
QXR0cjoobG9uZyBsb25nKW5ld0F0dHIKKy0gKHZvaWQpc2V0TG9uZ0F0dHI6KGludCluZXdMb25n
QXR0cgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJ
TVBMLT5zZXRBdHRyKG5ld0F0dHIpOworICAgIElNUEwtPnNldExvbmdBdHRyKG5ld0xvbmdBdHRy
KTsKIH0KIAogLSAobG9uZyBsb25nKWxvbmdMb25nQXR0cgpAQCAtMzQ4LDkgKzM0OCw3IEBACiAt
ICh2b2lkKXNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOihpbnQpbmV3QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICBXZWJD
b3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKTsKIH0KIAogLSAoaW50KWF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uCkBAIC0zNzksOSArMzc3LDcgQEAKIC0gKHZvaWQpc2V0U3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb246KE5TU3RyaW5nICopbmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0U3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVj
KTsKLSAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIElNUEwtPnNldFN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KTsKIH0KIAogLSAoTlNTdHJpbmcgKilzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbgpAQCAt
NDUwLDkgKzQ0Niw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwogCi0gICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0aFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcwpAQCAtNDY5LDkgKzQ2Myw3IEBACiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+
c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcykpOwogfQogCiAtIChET01UZXN0
T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZQpA
QCAtNTAyLDkgKzQ5NCw3IEBACiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwogICAgIEFTU0VSVChuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0
YXRlQXR0cmlidXRlUmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIElNUEwtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKSwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJv
cihlYyk7CisgICAgSU1QTC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAogLSAoRE9NVGVzdE9iaiAqKXdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlCkBA
IC03MzksMjIgKzcyOSwyMiBAQAogICAgIElNUEwtPnZvaWRNZXRob2QoKTsKIH0KIAotLSAodm9p
ZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKHZvaWQpdm9pZE1ldGhvZFdpdGhB
cmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVz
dE9iaiAqKW9iakFyZwogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBJTVBMLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJn
KSk7CisgICAgSU1QTC0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgY29yZShv
YmpBcmcpKTsKIH0KIAotLSAobG9uZyBsb25nKU1ldGhvZAorLSAoaW50KWxvbmdNZXRob2QKIHsK
ICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElN
UEwtPm1ldGhvZCgpOworICAgIHJldHVybiBJTVBMLT5sb25nTWV0aG9kKCk7CiB9CiAKLS0gKGxv
bmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICop
c3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZworLSAoaW50KWxvbmdNZXRob2RXaXRo
QXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRl
c3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgcmV0dXJuIElNUEwtPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBjb3JlKG9i
akFyZykpOworICAgIHJldHVybiBJTVBMLT5sb25nTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3Ry
QXJnLCBjb3JlKG9iakFyZykpOwogfQogCiAtIChET01UZXN0T2JqICopb2JqTWV0aG9kCkBAIC03
NjMsMTAgKzc1MywxMCBAQAogICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0
aG9kKCkpKTsKIH0KIAotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxv
bmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2Jq
QXJnCistIChET01UZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoV1RG
OjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJn
KSkpKTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPm9iak1ldGhvZFdpdGhBcmdz
KGxvbmdBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKSkpOwogfQogCiAtIChET01UZXN0T2JqICop
bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93czooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCkBAIC04MTAsMTAgKzgwMCwxMCBAQAogICAgIElNUEwt
PmN1c3RvbU1ldGhvZCgpOwogfQogCi0tICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihsb25n
IGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICop
b2JqQXJnCistICh2b2lkKWN1c3RvbU1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jdXN0b21NZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT5jdXN0b21N
ZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9CiAKIC0gKHZv
aWQpYWRkRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIGxpc3RlbmVyOihpZCA8RE9NRXZl
bnRMaXN0ZW5lcj4pbGlzdGVuZXIgdXNlQ2FwdHVyZTooQk9PTCl1c2VDYXB0dXJlCkBAIC0xMDA1
LDI4ICs5OTUsMjggQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0tICh2b2lkKWNvbnZlcnQx
OihET01hICopCistICh2b2lkKWNvbnZlcnQxOihET01hICopdmFsdWUKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDEoY29yZSgp
KTsKKyAgICBJTVBMLT5jb252ZXJ0MShjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVy
dDI6KERPTWIgKikKKy0gKHZvaWQpY29udmVydDI6KERPTWIgKil2YWx1ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0Mihjb3Jl
KCkpOworICAgIElNUEwtPmNvbnZlcnQyKGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252
ZXJ0NDooRE9NZCAqKQorLSAodm9pZCljb252ZXJ0NDooRE9NZCAqKXZhbHVlCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQ0KGNv
cmUoKSk7CisgICAgSU1QTC0+Y29udmVydDQoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNv
bnZlcnQ1OihET01lICopCistICh2b2lkKWNvbnZlcnQ1OihET01lICopdmFsdWUKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDUo
Y29yZSgpKTsKKyAgICBJTVBMLT5jb252ZXJ0NShjb3JlKHZhbHVlKSk7CiB9CiAKIC0gKERPTVNW
R1BvaW50ICopbXV0YWJsZVBvaW50RnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBmMmQxZmU4MTBkMWJhZWQxNzQ1NmM3
YjE0MDFhOTc4NjcxYmQzZmMzLi4zMmI0ZjE4MDE1YWNkODI1Zjg5MmIzYTRhYzE1Y2UyM2NkOGU3
YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCkBAIC01MSw3ICs1MSw2IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICAgICAgICAgICBzdHJpbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUg
W1Y4TWVhc3VyZUFzPVRlc3RGZWF0dXJlXSBUZXN0T2JqIHRlc3RPYmpBdHRyOwogCi0gICAgICAg
IEpTLCBWOAogICAgICAgICAvLyBXS191Y2ZpcnN0LCBXS19sY2ZpcnN0IGV4Y2VwdGlvbmFsIGNh
c2VzLgogICAgICAgICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIFhNTE9iakF0
dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgICAgY3JlYXRlOwpA
QCAtMjI2LDEwICsyMjUsMTAgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICBbQ2hlY2tTZWN1cml0
eUZvck5vZGVdIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJu
ZWROdWxsU3RyaW5nQXM9TnVsbF0gYSk7Ci0gICAgICAgIHZvaWQgY29udmVydDIoaW4gW1RyZWF0
UmV0dXJuZWROdWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0
NChpbiBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCk7Ci0gICAgICAgIHZvaWQgY29udmVydDUo
aW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmluZ10g
ZSk7CisgICAgICAgIHZvaWQgY29udmVydDEoaW4gW1RyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXM9
TnVsbF0gYSB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVydDIoaW4gW1RyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXM9VW5kZWZpbmVkXSBiIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NChp
biBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gZCB2YWx1ZSk7CisgICAgICAgIHZvaWQgY29udmVy
dDUoaW4gW1RyZWF0TnVsbEFzPU51bGxTdHJpbmcsIFRyZWF0VW5kZWZpbmVkQXM9TnVsbFN0cmlu
Z10gZSB2YWx1ZSk7CiAKICAgICAgICAgYXR0cmlidXRlIFNWR1BvaW50IG11dGFibGVQb2ludDsK
ICAgICAgICAgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1BvaW50IGltbXV0YWJsZVBvaW50Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcAppbmRleCA1MDI0MjhhNzEwMGM1ZjcxNjYzY2Y1YzY5MTUxNjlkOTcyMjE1NTM1Li44
MzkwZjEwNTgxNzIzYjFkYmNjMGZiMDU1N2QwYTAwYmQ1MjMwYTEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAt
MTYxLDE5ICsxNjEsMTkgQEAgc3RhdGljIHZvaWQgdW5zaWduZWRTaG9ydEF0dHJBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djgKICAgICByZXR1cm47CiB9
CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RB
VFMoIkRPTS5UZXN0T2JqLkF0dHIuX2dldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmou
bG9uZ0F0dHIuX2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHY4OjpOdW1iZXI6Ok5ldyhzdGF0aWNfY2FzdDxk
b3VibGU+KGltcC0+YXR0cigpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdBdHRy
KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHZvaWQgQXR0ckF0dHJTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3RhdGljIHZvaWQgbG9uZ0F0dHJBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLkF0dHIuX3NldCIpOworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoubG9uZ0F0dHIu
X3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7Ci0gICAgbG9uZyBsb25nIHYgPSB0b0ludDY0KHZhbHVlKTsKLSAgICBpbXAtPnNldEF0
dHIoV1RGOjpnZXRQdHIodikpOworICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgaW1w
LT5zZXRMb25nQXR0cih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ1MSwxMCArNDUxLDcgQEAg
c3RhdGljIHZvaWQgYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG8KICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIGludCB2ID0gdG9JbnQzMih2YWx1ZSk7Ci0g
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wLT5zZXRBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbih2LCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0RE9NRXhjZXB0
aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbih2KTsKICAgICByZXR1cm47CiB9CiAKQEAgLTQ5MywxMCArNDkwLDcgQEAgc3RhdGlj
IHZvaWQgc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouc3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24uX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQ
VElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPD4sIHYsIHZhbHVlKTsKLSAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYs
IGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMs
IGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKHYpOwogICAgIHJldHVybjsKIH0KIApAQCAtNTgyLDEzICs1NzYsMTAgQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpI
YXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
U2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6OmN1cnJlbnQoKTsKICAgICBpZiAoIXN0
YXRlKQogICAgICAgICByZXR1cm47Ci0gICAgaW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVj
KSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAg
aW1wLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIFdURjo6Z2V0UHRy
KHYpKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Io
c3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC02
MTEsMTEgKzYwMiw4IEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlUmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0CiAgICAgSU5DX1NUQVRTKCJE
T00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcy5fc2V0
Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKICAgICBUZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRl
c3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7
Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpbXAtPnNl
dFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQs
IFdURjo6Z2V0UHRyKHYpLCBlYyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGVjLCBpbmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCBXVEY6Omdl
dFB0cih2KSk7CiAgICAgcmV0dXJuOwogfQogCkBAIC02NjcsMTQgKzY1NSwxMSBAQCBzdGF0aWMg
dm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFp
c2VzQXR0clNldHRlcih2OAogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcy5fc2V0Iik7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBU
ZXN0T2JqKiB2ID0gVjhUZXN0T2JqOjpIYXNJbnN0YW5jZSh2YWx1ZSkgPyBWOFRlc3RPYmo6OnRv
TmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7Ci0gICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgU2NyaXB0U3RhdGUqIHN0YXRlID0gU2NyaXB0U3RhdGU6
OmN1cnJlbnQoKTsKICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm47CiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsKLSAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpLCBl
Yyk7Ci0gICAgaWYgKFVOTElLRUxZKGVjKSkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGVjLCBp
bmZvLkdldElzb2xhdGUoKSk7CisgICAgaW1wLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKHN0YXRlLCBzY3JpcHRDb250ZXh0LCBXVEY6
OmdldFB0cih2KSk7CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICB0aHJv
d0Vycm9yKHN0YXRlLmV4Y2VwdGlvbigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiAgICAgcmV0dXJu
OwpAQCAtMTA2OCwzMCArMTA1MywzMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZv
aWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMy
KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsK
ICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6
SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
IDogMCk7Ci0gICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyk7
CisgICAgaW1wLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpOwog
ICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IE1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouTWV0aG9kIik7CisgICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kIik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICByZXR1cm4gdjg6Ok51bWJlcjo6
TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2QoKSkpOworICAgIHJldHVybiB2OElu
dGVnZXIoaW1wLT5sb25nTWV0aG9kKCksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGxvbmdNZXRob2RX
aXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5NZXRob2RXaXRoQXJncyIpOworICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmoubG9uZ01ldGhvZFdpdGhBcmdzIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05f
QkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICByZXR1cm4gdjg6
Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5NZXRob2RXaXRoQXJncyhBcmcs
IHN0ckFyZywgb2JqQXJnKSkpOworICAgIHJldHVybiB2OEludGVnZXIoaW1wLT5sb25nTWV0aG9k
V2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9
CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqTWV0aG9kQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTExMDgsMTAgKzEwOTMsMTAgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiB0
aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQ
VElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGlu
dCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3Ms
IDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwg
b2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB0b1Y4KGltcC0+b2JqTWV0aG9k
V2l0aEFyZ3MoQXJnLCBzdHJBcmcsIG9iakFyZyksIGFyZ3MuSG9sZGVyKCksIGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKKyAgICByZXR1cm4gdG9WOChpbXAtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IHN0ckFyZywgb2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQog
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xMTMxLDggKzExMTYsOCBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFJldHVybmluZ1NlcXVlbmNlQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICByZXR1cm4gdjhB
cnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICByZXR1cm4g
djhBcnJheShpbXAtPm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmdBcmcpLCBhcmdzLkdldElz
b2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kVGhhdFJl
cXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CkBAIC0xNTM4LDggKzE1MjMsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJs
b2FkZWRNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgICAgICBp
bXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJnKTsKICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0g
ICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsKKyAgICBFWENFUFRJT05fQkxP
Q0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEs
IERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPm92ZXJsb2FkZWRNZXRob2Qob2JqQXJn
LCBsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTU2MCw4ICsx
NTQ1LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kNENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0
SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0g
ICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwg
bG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5vdmVybG9hZGVkTWV0aG9kKGxvbmdBcmcpOwogICAg
IHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNzQ2LDggKzE3MzEsOCBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGVuYWJsZWRBdFJ1bnRpbWVNZXRob2QxQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAg
RVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRB
dFJ1bnRpbWVNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywg
dG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSk7CisgICAgaW1wLT5lbmFibGVkQXRSdW50aW1lTWV0aG9kMShsb25nQXJnKTsKICAgICBy
ZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTc1Nyw4ICsxNzQyLDggQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVy
biB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVY
Q0VQVElPTl9CTE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkQXRS
dW50aW1lTWV0aG9kMihBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRv
SW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpOworICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDIobG9uZ0FyZyk7CiAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NjgsOCArMTc1Myw4IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRNZXRob2QxQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENF
UFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZFBlckNv
bnRleHRNZXRob2QxKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9J
bnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEobG9uZ0FyZyk7CiAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE3NzksOCArMTc2NCw4IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRNZXRob2QyQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4g
dGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENF
UFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZFBlckNv
bnRleHRNZXRob2QyKEFyZyk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9J
bnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSk7CisgICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIobG9uZ0FyZyk7CiAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MjUsOCArMTgxMCw4IEBAIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY29udmVydDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JM
T0NLKGEqLCAsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MSgpOworICAgIEVYQ0VQVElPTl9CTE9D
SyhhKiwgdmFsdWUsIFY4YTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGE6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0MSh2YWx1ZSk7CiAgICAgcmV0dXJu
IHY4VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4MzYsOCArMTgyMSw4IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gY29udmVydDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NL
KGIqLCAsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0MigpOworICAgIEVYQ0VQVElPTl9CTE9DSyhi
KiwgdmFsdWUsIFY4Yjo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGI6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0Mih2YWx1ZSk7CiAgICAgcmV0dXJuIHY4
VW5kZWZpbmVkKCk7CiB9CiAKQEAgLTE4NDcsOCArMTgzMiw4IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY29udmVydDRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdo
QXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGQq
LCAsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpIDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NCgpOworICAgIEVYQ0VQVElPTl9CTE9DSyhkKiwg
dmFsdWUsIFY4ZDo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOGQ6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NCh2YWx1ZSk7CiAgICAgcmV0dXJuIHY4VW5k
ZWZpbmVkKCk7CiB9CiAKQEAgLTE4NTgsOCArMTg0Myw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY29udmVydDVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAg
IGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGUqLCAs
IFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
IDogMCk7Ci0gICAgaW1wLT5jb252ZXJ0NSgpOworICAgIEVYQ0VQVElPTl9CTE9DSyhlKiwgdmFs
dWUsIFY4ZTo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkgPyBWOGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46
OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSkpIDogMCk7CisgICAgaW1wLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAgcmV0dXJuIHY4VW5kZWZp
bmVkKCk7CiB9CiAKQEAgLTE5MjQsOCArMTkwOSw4IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZp
Z3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2JqQXR0cnNbXSA9IHsKICAgICB7InNo
b3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6c2hvcnRBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8g
QXR0cmlidXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6
ICcnKQogICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWdu
ZWRTaG9ydEF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0
dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBBdHRyaWJ1dGUgJ0F0dHInIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7IkF0dHIiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpBdHRyQXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdsb25nQXR0cicgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsibG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
bG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2xvbmdMb25nQXR0cicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsibG9uZ0xvbmdBdHRyIiwgVGVzdE9ialY4
SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpsb25n
TG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Vu
c2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCkBAIC0y
MDQwLDcgKzIwMjUsNyBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVk
QXR0cmlidXRlIFY4VGVzdE9iakF0dHJzW10gPSB7CiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZp
Z3VyYXRpb246OkJhdGNoZWRDYWxsYmFjayBWOFRlc3RPYmpDYWxsYmFja3NbXSA9IHsKICAgICB7
InZvaWRNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhvZENhbGxiYWNrfSwKLSAg
ICB7Ik1ldGhvZCIsIFRlc3RPYmpWOEludGVybmFsOjpNZXRob2RDYWxsYmFja30sCisgICAgeyJs
b25nTWV0aG9kIiwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RDYWxsYmFja30sCiAgICAg
eyJvYmpNZXRob2QiLCBUZXN0T2JqVjhJbnRlcm5hbDo6b2JqTWV0aG9kQ2FsbGJhY2t9LAogICAg
IHsibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kUmV0
dXJuaW5nU2VxdWVuY2VDYWxsYmFja30sCiAgICAgeyJzZXJpYWxpemVkVmFsdWUiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6c2VyaWFsaXplZFZhbHVlQ2FsbGJhY2t9LApAQCAtMjE4MCwxMSArMjE2NSwx
MSBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3Vy
ZVY4VGVzdE9ialRlbXBsYXRlKHY4OjpQZXJzaQogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVy
ZT4gdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2Ms
IHZvaWRNZXRob2RXaXRoQXJnc0FyZ2MsIHZvaWRNZXRob2RXaXRoQXJnc0FyZ3YpOwogICAgIHBy
b3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJ2b2lkTWV0aG9kV2l0aEFyZ3MiKSwgdjg6
OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhvZFdpdGhB
cmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHZvaWRNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSkp
OwogCi0gICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnTWV0aG9kV2l0aEFyZ3MnCi0gICAgY29uc3Qg
aW50IE1ldGhvZFdpdGhBcmdzQXJnYyA9IDM7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gTWV0aG9kV2l0aEFyZ3NBcmd2W01ldGhvZFdpdGhBcmdzQXJnY10gPSB7IHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoKSB9OwotICAgIHY4OjpIYW5kbGU8
djg6OlNpZ25hdHVyZT4gTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpO
ZXcoZGVzYywgTWV0aG9kV2l0aEFyZ3NBcmdjLCBNZXRob2RXaXRoQXJnc0FyZ3YpOwotICAgIHBy
b3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVu
Y3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpNZXRob2RXaXRoQXJnc0NhbGxi
YWNrLCB2OFVuZGVmaW5lZCgpLCBNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSkpOworICAgIC8vIEN1
c3RvbSBTaWduYXR1cmUgJ2xvbmdNZXRob2RXaXRoQXJncycKKyAgICBjb25zdCBpbnQgbG9uZ01l
dGhvZFdpdGhBcmdzQXJnYyA9IDM7CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQXJndltsb25nTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07CisgICAgdjg6OkhhbmRs
ZTx2ODo6U2lnbmF0dXJlPiBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUgPSB2ODo6U2lnbmF0
dXJlOjpOZXcoZGVzYywgbG9uZ01ldGhvZFdpdGhBcmdzQXJnYywgbG9uZ01ldGhvZFdpdGhBcmdz
QXJndik7CisgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woImxvbmdNZXRob2RX
aXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjps
b25nTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgbG9uZ01ldGhvZFdpdGhB
cmdzU2lnbmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdvYmpNZXRob2RXaXRo
QXJncycKICAgICBjb25zdCBpbnQgb2JqTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165936</attachid>
            <date>2012-09-26 23:23:24 -0700</date>
            <delta_ts>2012-09-26 23:34:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120927152251.patch</filename>
            <type>text/plain</type>
            <size>181799</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWExZTYxN2UwM2U4MTA2
MGM0YmUzNTZlZDUwYjA5ZjEwNzNmN2JjMS4uM2M4OTJlM2RiNDU0MTRlYjMzYWEwYmJiOTk0NGE5
YjljMGM2MGU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwNSBAQAorMjAxMi0wOC0wOSAgVGFr
YXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgTW92ZSBJREwgZXh0
ZW5kZWQgYXR0cmlidXRlcyB0byB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGluIFdlYklETAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzOTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBLZW50YXJvIEhhcmEuCisKKyAgICAgICAgUmVjcmVhdGVkIGEgbmV3
IElETFBhcnNlciBiYXNlZCBvbiB0aGUgV2ViSURMIHNwZWM6CisgICAgICAgIGh0dHA6Ly9kZXYu
dzMub3JnLzIwMDYvd2ViYXBpL1dlYklETC8KKworICAgICAgICBGaXJzdGx5IG1lcmdlcyB0d28g
Z3JhbW1hcnMgKGVkaXRvcnMgZHJhZnQgYW5kIFdlYktpdCBjdXJyZW50IElETCkgYW5kCisgICAg
ICAgIGdlbmVyYXRlcyBJREwgcGFyc2VyIGJ5IHVzaW5nIHB5dGhvbiBzY3JpcHQuIFRoZSBnZW5l
cmF0ZWQgcGFyc2VyIGlzCisgICAgICAgIG1vZGlmaWVkIHRvIGdlbmVyYXRlIHRoZSBzYW1lIG91
dHB1dHMgYXMgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4KKyAgICAgICAgVGhlIG5ldyBJRExQ
YXJzZXIucG0gY2FuIHBhcnNlIGJvdGggV2ViSURMIGdyYW1tYXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBUZXN0ZWQgYnkgY29tcGFyaW5nIHdpdGggc291cmNlcyBnZW5lcmF0ZWQgYnkKKyAg
ICAgICAgdGhlIHByZXZpb3VzIElETFBhcnNlci5wbS4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtOgorICAgICAgICAobmV3KToKKyAgICAgICAgKGFzc2VydFRva2Vu
VmFsdWUpOgorICAgICAgICAoYXNzZXJ0VG9rZW5UeXBlKToKKyAgICAgICAgKGFzc2VydFVuZXhw
ZWN0ZWRUb2tlbik6CisgICAgICAgIChQYXJzZSk6CisgICAgICAgIEEgbWV0aG9kIHRvIHN0YXJ0
IHBhcnNpbmcgYSBJREwgZmlsZS4gQXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzIGFyZQorICAg
ICAgICB0aGUgc2FtZSBhcyB0aGUgcHJldmlvdXMgSURMUGFyc2VyLnBtJ3MgUGFyc2UgbWV0aG9k
LgorICAgICAgICAobmV4dFRva2VuKToKKyAgICAgICAgSW1wbGVtZW50ZWQgdG8gc2VlIGEgbmV4
dCB0b2tlbiwgYmVjYXVzZSBvZiBMTCgxKS4KKyAgICAgICAgKGdldFRva2VuKToKKyAgICAgICAg
UmV0dXJucyBjdXJyZW50IHRva2VuLCBhbmQgdXBkYXRlIG5leHQgYW5kIGN1cnJlbnQgdG9rZW4u
CisgICAgICAgIChnZXRUb2tlbkludGVybmFsKToKKyAgICAgICAgQWNjb3JkaW5nIHRvIHRoZSBy
ZWd1bGFyIGV4cHJlc3Npb25zIGRlZmluZWQgaW4gV2ViSURMIHNwZWMsIGV4dHJhY3RzCisgICAg
ICAgIG9uZSBuZXcgdG9rZW4gZnJvbSBhIHRleHQgc3RyaW5nLiBUaGUgb3JkZXIgb2YgdGhlIHJl
Z3VsYXIgZXhwcmVzc2lvbnMKKyAgICAgICAgdG8gYmUgdGVzdGVkIGlzIGltcG9ydGFudCwgaS5l
LiAiMC4iIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIGEgZmxvYXQKKyAgICAgICAgdG9rZW4sIGJ1
dCBpZiBmaXJzdGx5IGNoZWNrcyB0aGUgaW50ZWdlciByZWd1bGFyIGV4cHJlc3Npb24sICIwLiIg
aXMKKyAgICAgICAgY29uc2lkZXJlZCBhcyAiMCIgYW5kICIuIi4KKyAgICAgICAgKHBhcnNlRGVm
aW5pdGlvbik6CisgICAgICAgIChwYXJzZUNhbGxiYWNrT3JJbnRlcmZhY2UpOgorICAgICAgICAo
cGFyc2VDYWxsYmFja1Jlc3RPckludGVyZmFjZSk6CisgICAgICAgIChwYXJzZUludGVyZmFjZSk6
CisgICAgICAgIChwYXJzZVBhcnRpYWwpOgorICAgICAgICAocGFyc2VQYXJ0aWFsRGVmaW5pdGlv
bik6CisgICAgICAgIChwYXJzZVBhcnRpYWxJbnRlcmZhY2UpOgorICAgICAgICAocGFyc2VJbnRl
cmZhY2VNZW1iZXIpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5KToKKyAgICAgICAgKHBhcnNl
RGljdGlvbmFyeU1lbWJlcik6CisgICAgICAgIChwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5KToKKyAg
ICAgICAgKHBhcnNlRGVmYXVsdFZhbHVlKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uKToKKyAg
ICAgICAgKHBhcnNlRXhjZXB0aW9uTWVtYmVycyk6CisgICAgICAgIChwYXJzZUVudW0pOgorICAg
ICAgICAocGFyc2VFbnVtVmFsdWVMaXN0KToKKyAgICAgICAgKHBhcnNlQ2FsbGJhY2tSZXN0KToK
KyAgICAgICAgKHBhcnNlVHlwZWRlZik6CisgICAgICAgIChwYXJzZUltcGxlbWVudHNTdGF0ZW1l
bnQpOgorICAgICAgICAocGFyc2VDb25zdCk6CisgICAgICAgIChwYXJzZUNvbnN0VmFsdWUpOgor
ICAgICAgICAocGFyc2VCb29sZWFuTGl0ZXJhbCk6CisgICAgICAgIChwYXJzZUZsb2F0TGl0ZXJh
bCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcik6CisgICAg
ICAgIChwYXJzZVNlcmlhbGl6ZXIpOgorICAgICAgICAocGFyc2VTZXJpYWxpemF0aW9uUGF0dGVy
bik6CisgICAgICAgIChwYXJzZVF1YWxpZmllcik6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZU9y
T3BlcmF0aW9uUmVzdCk6CisgICAgICAgIChwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChwYXJz
ZUF0dHJpYnV0ZVJlc3QpOgorICAgICAgICAocGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKToKKyAg
ICAgICAgKHBhcnNlU3BlY2lhbE9wZXJhdGlvbik6CisgICAgICAgIChwYXJzZVNwZWNpYWwpOgor
ICAgICAgICAocGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yUmVzdCk6CisgICAgICAgIChwYXJzZUl0
ZXJhdG9yUmVzdCk6CisgICAgICAgIChwYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2VPck9i
amVjdCk6CisgICAgICAgIChwYXJzZU9wZXJhdGlvblJlc3QpOgorICAgICAgICAocGFyc2VBcmd1
bWVudHMpOgorICAgICAgICAocGFyc2VBcmd1bWVudCk6CisgICAgICAgIChwYXJzZU9wdGlvbmFs
T3JSZXF1aXJlZEFyZ3VtZW50KToKKyAgICAgICAgKHBhcnNlQXJndW1lbnROYW1lKToKKyAgICAg
ICAgKHBhcnNlRXhjZXB0aW9uTWVtYmVyKToKKyAgICAgICAgKHBhcnNlRXhjZXB0aW9uRmllbGQp
OgorICAgICAgICAocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3QpOgorICAgICAgICAocGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDIp
OgorICAgICAgICAocGFyc2VBcmd1bWVudE5hbWVLZXl3b3JkKToKKyAgICAgICAgKHBhcnNlVHlw
ZSk6CisgICAgICAgIChwYXJzZVNpbmdsZVR5cGUpOgorICAgICAgICAocGFyc2VVbmlvblR5cGUp
OgorICAgICAgICAocGFyc2VOb25BbnlUeXBlKToKKyAgICAgICAgKHBhcnNlUHJpbWl0aXZlVHlw
ZSk6CisgICAgICAgIChwYXJzZVVucmVzdHJpY3RlZEZsb2F0VHlwZSk6CisgICAgICAgIChwYXJz
ZUZsb2F0VHlwZSk6CisgICAgICAgIChwYXJzZVVuc2lnbmVkSW50ZWdlclR5cGUpOgorICAgICAg
ICAocGFyc2VOdWxsKToKKyAgICAgICAgKHBhcnNlR2V0KToKKyAgICAgICAgKHBhcnNlSW5oZXJp
dHNHZXR0ZXIpOgorICAgICAgICAocGFyc2VTZXRHZXRSYWlzZXMpOgorICAgICAgICAocGFyc2VH
ZXRSYWlzZXMyKToKKyAgICAgICAgKHBhcnNlU2V0UmFpc2VzKToKKyAgICAgICAgKHBhcnNlU2V0
UmFpc2VzMyk6CisgICAgICAgIChwYXJzZURlZmluaXRpb25PbGQpOgorICAgICAgICAocGFyc2VN
b2R1bGUpOgorICAgICAgICAocGFyc2VJbnRlcmZhY2VPbGQpOgorICAgICAgICAocGFyc2VJbnRl
cmZhY2VNZW1iZXJPbGQpOgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5T2xkKToKKyAgICAgICAg
KHBhcnNlRGljdGlvbmFyeU1lbWJlck9sZCk6CisgICAgICAgIChwYXJzZUV4Y2VwdGlvbk9sZCk6
CisgICAgICAgIChwYXJzZUVudW1PbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPck9wZXJh
dGlvbk9ySXRlcmF0b3JPbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJl
c3RPbGQpOgorICAgICAgICAocGFyc2VBdHRyaWJ1dGVPbGQpOgorICAgICAgICAocGFyc2VJbik6
CisgICAgICAgIChwYXJzZU9wdGlvbmFsU2VtaWNvbG9uKToKKyAgICAgICAgKGFwcGx5TWVtYmVy
TGlzdCk6CisgICAgICAgIChhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkRPTVRlc3RPYmo6OmxvbmdBdHRyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnNldExvbmdB
dHRyKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyk6CisgICAg
ICAgIChXZWJET01UZXN0T2JqOjpsb25nTWV0aG9kKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6
OmxvbmdNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpvYmpNZXRob2RX
aXRoQXJncyk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0MSk6CisgICAgICAgIChX
ZWJET01UZXN0T2JqOjpjb252ZXJ0Mik6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0
Myk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpjb252ZXJ0NCk6CisgICAgICAgIChXZWJET01U
ZXN0T2JqOjpjb252ZXJ0NSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9X
ZWJET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9w
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eSk6Cisg
ICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X29ial92b2lkX21ldGhvZF93aXRoX2FyZ3MpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9sb25nX21ldGhvZCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2xv
bmdfbWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9t
ZXRob2Rfd2l0aF9hcmdzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEp
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0Mik6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQzKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
Y29udmVydDQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NSk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9sb25nX2F0dHIpOgorICAgICAgICAod2Via2l0
X2RvbV90ZXN0X29ial9zZXRfbG9uZ19hdHRyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVm9pZE1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2Q0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0Mik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0NSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RP
TVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmogbG9uZ0F0dHJdKToKKyAgICAgICAg
KC1bRE9NVGVzdE9iaiBzZXRMb25nQXR0cjpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiB2b2lk
TWV0aG9kV2l0aEFyZ3M6c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBs
b25nTWV0aG9kXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogbG9uZ01ldGhvZFdpdGhBcmdzOnN0
ckFyZzpvYmpBcmc6XSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFyZ3M6
c3RyQXJnOm9iakFyZzpdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBjdXN0b21NZXRob2RXaXRo
QXJnczpzdHJBcmc6b2JqQXJnOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQxOl0p
OgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQyOl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIGNvbnZlcnQzOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQ0Ol0pOgorICAg
ICAgICAoLVtET01UZXN0T2JqIGNvbnZlcnQ1Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgUmVtb3ZlZCB0aGUgbGluZSB3aGljaCBoYXMg
b25seSAiSlNDLCBWOCIuCisgICAgICAgIEFkZGVkIGFyZ3VtZW50IHRvIGNvbnZlcnQxLCAuLi4g
Y29udmVydDUuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyR2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJT
ZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RX
aXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjps
b25nTWV0aG9kQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0aG9kMkNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvdmVybG9hZGVkTWV0
aG9kNENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFi
bGVkQXRSdW50aW1lTWV0aG9kMUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjplbmFibGVkQXRSdW50aW1lTWV0aG9kMkNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZFBlckNvbnRl
eHRNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQxQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQ0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OmNvbnZlcnQ1Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgorICAgICAgICBBcyBvbmx5IHJlc3RyaWN0ZWQg
ZXh0ZW5kZWQgYXR0cmlidXRlIHN5bnRheCBpcyBzdXBwb3J0ZWQsIG1vZGlmeSB0aGUKKyAgICAg
ICAgaWRsIGZyb20gWy4uLl0gWy4uLl0gdG8gWy4uLiwgLi4uXS4KKwogMjAxMi0wOS0yNiAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gQ29w
eSBUaW1lSW5wdXRUeXBlLntjcHAsaH0gdG8gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUue2NwcCxofQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCmluZGV4IDQxNTk2OTI3YTFiNTAwNGQ3
ZmNjODA5MzNlN2ExZjBlZTJmOGIyZDkuLjcxNGQxNDkyZTU2YjRmNDE4MjQwNmNlNjIwMTY2ZmIw
MjIzOGY5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKQEAgLTQ1LDcgKzQ1LDcgQEAgbW9kdWxlIGF1
ZGlvIHsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gbG9vcGluZzsgLy8gVGhpcyBpcyBhbiBh
bGlhcyBmb3IgdGhlIC5sb29wIGF0dHJpYnV0ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHku
CiAKICAgICAgICAgW1Y4TWVhc3VyZUFzPVdlYkF1ZGlvU3RhcnRdIHZvaWQgc3RhcnQoaW4gZG91
YmxlIHdoZW4pOwotICAgICAgICBbVjhNZWFzdXJlQXM9V2ViQXVkaW9TdGFydF0gW0ltcGxlbWVu
dGVkQXM9c3RhcnRHcmFpbl0gdm9pZCBzdGFydChpbiBkb3VibGUgd2hlbiwgaW4gZG91YmxlIGdy
YWluT2Zmc2V0LCBpbiBkb3VibGUgZ3JhaW5EdXJhdGlvbik7CisgICAgICAgIFtWOE1lYXN1cmVB
cz1XZWJBdWRpb1N0YXJ0LCBJbXBsZW1lbnRlZEFzPXN0YXJ0R3JhaW5dIHZvaWQgc3RhcnQoaW4g
ZG91YmxlIHdoZW4sIGluIGRvdWJsZSBncmFpbk9mZnNldCwgaW4gZG91YmxlIGdyYWluRHVyYXRp
b24pOwogICAgICAgICB2b2lkIHN0b3AoaW4gZG91YmxlIHdoZW4pOwogCiAjaWYgZGVmaW5lZChF
TkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJiYgRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KaW5kZXggMDU3YzAzZDZj
NmEyYjkxZjkzYmRlYTVjMDJiNzQ5NjFiZmI4OWQ0MS4uYmI4YTBmMGY3MTJkYjE0ZjU0ZmY4NTFj
YmFjYzQ4ZWQ3N2U5ZjczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExQYXJzZXIucG0KQEAgLTIxLDQ1MSArMjEsMjM4OCBAQAogCiBwYWNrYWdlIElETFBhcnNlcjsK
IAordXNlIENsYXNzOjpTdHJ1Y3Q7CisKIHVzZSBzdHJpY3Q7Ci11c2UgcmUgJ2V2YWwnOwogCiB1
c2UgSVBDOjpPcGVuMjsKIHVzZSBJRExTdHJ1Y3R1cmU7CiB1c2UgcHJlcHJvY2Vzc29yOwogCi11
c2UgY29uc3RhbnQgTU9ERV9VTkRFRiAgICA9PiAwOyAjIERlZmF1bHQgbW9kZS4KK3VzZSBjb25z
dGFudCBTdHJpbmdUb2tlbiA9PiAwOwordXNlIGNvbnN0YW50IEludGVnZXJUb2tlbiA9PiAxOwor
dXNlIGNvbnN0YW50IEZsb2F0VG9rZW4gPT4gMjsKK3VzZSBjb25zdGFudCBJZGVudGlmaWVyVG9r
ZW4gPT4gMzsKK3VzZSBjb25zdGFudCBPdGhlclRva2VuID0+IDQ7Cit1c2UgY29uc3RhbnQgRW1w
dHlUb2tlbiA9PiA1OworCitzdHJ1Y3QoIFRva2VuID0+IHsKKyAgICB0eXBlID0+ICckJywgIyB0
eXBlIG9mIHRva2VuCisgICAgdmFsdWUgPT4gJyQnICMgdmFsdWUgb2YgdG9rZW4KK30pOworCitz
dWIgbmV3IHsKKyAgICBteSAkY2xhc3MgPSBzaGlmdDsKKworICAgIG15ICRlbXB0eVRva2VuID0g
VG9rZW4tPm5ldygpOworICAgICRlbXB0eVRva2VuLT50eXBlKEVtcHR5VG9rZW4pOworICAgICRl
bXB0eVRva2VuLT52YWx1ZSgiZW1wdHkiKTsKKworICAgIG15ICRzZWxmID0geworICAgICAgICBE
b2N1bWVudENvbnRlbnQgPT4gIiIsCisgICAgICAgIEVtcHR5VG9rZW4gPT4gJGVtcHR5VG9rZW4s
CisgICAgICAgIE5leHRUb2tlbiA9PiAkZW1wdHlUb2tlbiwKKyAgICAgICAgVG9rZW4gPT4gJGVt
cHR5VG9rZW4sCisgICAgICAgIExpbmUgPT4gIiIsCisgICAgICAgIExpbmVOdW1iZXIgPT4gMQor
ICAgIH07CisgICAgcmV0dXJuIGJsZXNzICRzZWxmLCAkY2xhc3M7Cit9CisKK3N1YiBhc3NlcnRU
b2tlblZhbHVlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkdG9rZW4gPSBzaGlm
dDsKKyAgICBteSAkdmFsdWUgPSBzaGlmdDsKKyAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15
ICRtc2cgPSAiTmV4dCB0b2tlbiBzaG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRv
a2VuLT52YWx1ZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKKyAgICBpZiAoZGVmaW5lZCAo
JGxpbmUpKSB7CisgICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAuICRsaW5lOworICAg
IH0KKyAgICBkaWUgJG1zZyB1bmxlc3MgJHRva2VuLT52YWx1ZSgpIGVxICR2YWx1ZTsKK30KKwor
c3ViIGFzc2VydFRva2VuVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJHRv
a2VuID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBkaWUgIk5leHQgdG9rZW4n
cyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4g
IiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7Cit9
CisKK3N1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15ICR0b2tlbiA9IHNoaWZ0OworICAgIG15ICRsaW5lID0gc2hpZnQ7CisgICAgbXkgJG1z
ZyA9ICJVbmV4cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9
OworICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKKyAgICAgICAgJG1zZyAuPSAiIElETFBhcnNl
ci5wbToiIC4gJGxpbmU7CisgICAgfQorICAgIGRpZSAkbXNnOworfQorCitzdWIgUGFyc2UKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRmaWxlTmFtZSA9IHNoaWZ0OworICAgIG15
ICRkZWZpbmVzID0gc2hpZnQ7CisgICAgbXkgJHByZXByb2Nlc3NvciA9IHNoaWZ0OworCisgICAg
bXkgQGRlZmluaXRpb25zID0gKCk7CisKKyAgICBteSBAbGluZXMgPSBhcHBseVByZXByb2Nlc3Nv
cigkZmlsZU5hbWUsICRkZWZpbmVzLCAkcHJlcHJvY2Vzc29yKTsKKyAgICAkc2VsZi0+e0xpbmV9
ID0gJGxpbmVzWzBdOworICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9IGpvaW4oJyAnLCBA
bGluZXMpOworCisgICAgJHNlbGYtPmdldFRva2VuKCk7CisgICAgZXZhbCB7CisgICAgICAgIG15
ICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VEZWZpbml0aW9ucygpOworICAgICAgICBwdXNoKEBkZWZp
bml0aW9ucywgQHskcmVzdWx0fSk7CiAKLXVzZSBjb25zdGFudCBNT0RFX01PRFVMRSAgPT4gMTA7
ICMgJ21vZHVsZScgc2VjdGlvbgotdXNlIGNvbnN0YW50IE1PREVfSU5URVJGQUNFICA9PiAxMTsg
IyAnaW50ZXJmYWNlJyBzZWN0aW9uCi11c2UgY29uc3RhbnQgTU9ERV9FWENFUFRJT04gID0+IDEy
OyAjICdleGNlcHRpb24nIHNlY3Rpb24KKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJG5leHQsIEVtcHR5VG9rZW4p
OworICAgIH07CisgICAgZGllICRAIC4gIiBpbiAkZmlsZU5hbWUiIGlmICRAOworCisgICAgZGll
ICJObyBkb2N1bWVudCBmb3VuZCIgdW5sZXNzIEBkZWZpbml0aW9uczsKKworICAgIG15ICRkb2N1
bWVudDsKKyAgICBpZiAoJCNkZWZpbml0aW9ucyA9PSAwICYmIHJlZigkZGVmaW5pdGlvbnNbMF0p
IGVxICJpZGxEb2N1bWVudCIpIHsKKyAgICAgICAgJGRvY3VtZW50ID0gJGRlZmluaXRpb25zWzBd
OworICAgIH0gZWxzZSB7CisgICAgICAgICRkb2N1bWVudCA9IG5ldyBpZGxEb2N1bWVudCgpOwor
ICAgICAgICAkZG9jdW1lbnQtPm1vZHVsZSgiIik7CisgICAgICAgIHB1c2goQHskZG9jdW1lbnQt
PmNsYXNzZXN9LCBAZGVmaW5pdGlvbnMpOworICAgIH0KKworICAgICRkb2N1bWVudC0+ZmlsZU5h
bWUoJGZpbGVOYW1lKTsKKyAgICByZXR1cm4gJGRvY3VtZW50OworfQogCi0jIEhlbHBlciB2YXJp
YWJsZXMKLW15IEB0ZW1wb3JhcnlDb250ZW50Oworc3ViIG5leHRUb2tlbgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgcmV0dXJuICRzZWxmLT57TmV4dFRva2VufTsKK30KIAotbXkgJHBh
cnNlTW9kZTsKLW15ICRwcmVzZXJ2ZWRQYXJzZU1vZGU7CitzdWIgZ2V0VG9rZW4KK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgICRzZWxmLT57VG9rZW59ID0gJHNlbGYtPntOZXh0VG9rZW59
OworICAgICRzZWxmLT57TmV4dFRva2VufSA9ICRzZWxmLT5nZXRUb2tlbkludGVybmFsKCk7Cisg
ICAgcmV0dXJuICRzZWxmLT57VG9rZW59OworfQogCi1teSAkYmVRdWlldDsgIyBTaG91bGQgbm90
IGRpc3BsYXkgYW55dGhpbmcgb24gU1RET1VUPwotbXkgJGRvY3VtZW50OyAjIFdpbGwgaG9sZCB0
aGUgcmVzdWx0aW5nICdpZGxEb2N1bWVudCcKLW15ICRwYXJlbnRzT25seTsgIyBJZiAxLCBwYXJz
ZSBvbmx5IGVub3VnaCB0byBwb3B1bGF0ZSBwYXJlbnRzIGxpc3QKK215ICR3aGl0ZXNwYWNlVG9r
ZW5QYXR0ZXJuID0gJ15bXHRcblxyIF0qW1xuXHJdJzsKK215ICRmbG9hdFRva2VuUGF0dGVybiA9
ICdeKC0/KChbMC05XStcLlswLTldKnxbMC05XSpcLlswLTldKykoW0VlXVsrLV0/WzAtOV0rKT98
WzAtOV0rW0VlXVsrLV0/WzAtOV0rKSknOworbXkgJGludGVnZXJUb2tlblBhdHRlcm4gPSAnXigt
P1sxLTldWzAtOV0qfC0/MFtYeF1bMC05QS1GYS1mXSt8LT8wWzAtN10qKSc7CitteSAkc3RyaW5n
VG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwiXSpcIiknOworbXkgJGlkZW50aWZpZXJUb2tlblBhdHRl
cm4gPSAnXihbQS1aX2Etel1bMC05QS1aX2Etel0qKSc7CitteSAkb3RoZXJUb2tlblBhdHRlcm4g
PSAnXig6OnxcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0pJzsKIAotc3ViIEluaXRpYWxpemVH
bG9iYWxEYXRhCitzdWIgZ2V0VG9rZW5JbnRlcm5hbAogewotICAgIEB0ZW1wb3JhcnlDb250ZW50
ID0gIiI7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKworICAgIGlmICgkc2VsZi0+e0RvY3VtZW50
Q29udGVudH0gPX4gLyR3aGl0ZXNwYWNlVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAkc2VsZi0+
e0RvY3VtZW50Q29udGVudH0gPX4gcy8oJHdoaXRlc3BhY2VUb2tlblBhdHRlcm4pLy87CisgICAg
ICAgIG15ICRza2lwcGVkID0gJDE7CisgICAgICAgICRzZWxmLT57TGluZU51bWJlcn0rKyB3aGls
ZSAoJHNraXBwZWQgPX4gL1xuL2cpOworICAgICAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRl
bnR9ID1+IC9eKFteXG5ccl0rKS8pIHsKKyAgICAgICAgICAgICRzZWxmLT57TGluZX0gPSAkc2Vs
Zi0+e0xpbmVOdW1iZXJ9IC4gIjoiIC4gJDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAkc2VsZi0+e0xpbmV9ID0gIlVua25vd24iOworICAgICAgICB9CisgICAgfQorICAgICRzZWxm
LT57RG9jdW1lbnRDb250ZW50fSA9fiBzL14oW1x0XG5cciBdKykvLzsKKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9IGVxICIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+e0VtcHR5
VG9rZW59OworICAgIH0KIAotICAgICRwYXJzZU1vZGUgPSBNT0RFX1VOREVGOwotICAgICRwcmVz
ZXJ2ZWRQYXJzZU1vZGUgPSBNT0RFX1VOREVGOworICAgIG15ICR0b2tlbiA9IFRva2VuLT5uZXco
KTsKKyAgICBpZiAoJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kZmxvYXRUb2tlblBhdHRl
cm4vKSB7CisgICAgICAgICR0b2tlbi0+dHlwZShGbG9hdFRva2VuKTsKKyAgICAgICAgJHRva2Vu
LT52YWx1ZSgkMSk7CisgICAgICAgICRzZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRmbG9h
dFRva2VuUGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAo
JHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IC8kaW50ZWdlclRva2VuUGF0dGVybi8pIHsKKyAg
ICAgICAgJHRva2VuLT50eXBlKEludGVnZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUo
JDEpOworICAgICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaW50ZWdlclRva2Vu
UGF0dGVybi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYt
PntEb2N1bWVudENvbnRlbnR9ID1+IC8kc3RyaW5nVG9rZW5QYXR0ZXJuLykgeworICAgICAgICAk
dG9rZW4tPnR5cGUoU3RyaW5nVG9rZW4pOworICAgICAgICAkdG9rZW4tPnZhbHVlKCQxKTsKKyAg
ICAgICAgJHNlbGYtPntEb2N1bWVudENvbnRlbnR9ID1+IHMvJHN0cmluZ1Rva2VuUGF0dGVybi8v
OworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1bWVu
dENvbnRlbnR9ID1+IC8kaWRlbnRpZmllclRva2VuUGF0dGVybi8pIHsKKyAgICAgICAgJHRva2Vu
LT50eXBlKElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICR0b2tlbi0+dmFsdWUoJDEpOworICAg
ICAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPX4gcy8kaWRlbnRpZmllclRva2VuUGF0dGVy
bi8vOworICAgICAgICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntEb2N1
bWVudENvbnRlbnR9ID1+IC8kb3RoZXJUb2tlblBhdHRlcm4vKSB7CisgICAgICAgICR0b2tlbi0+
dHlwZShPdGhlclRva2VuKTsKKyAgICAgICAgJHRva2VuLT52YWx1ZSgkMSk7CisgICAgICAgICRz
ZWxmLT57RG9jdW1lbnRDb250ZW50fSA9fiBzLyRvdGhlclRva2VuUGF0dGVybi8vOworICAgICAg
ICByZXR1cm4gJHRva2VuOworICAgIH0KKyAgICBkaWUgIkZhaWxlZCBpbiB0b2tlbml6aW5nIGF0
ICIgLiAkc2VsZi0+e0xpbmV9OworfQogCi0gICAgJGRvY3VtZW50ID0gMDsKLSAgICAkcGFyZW50
c09ubHkgPSAwOworbXkgJG5leHRBdHRyaWJ1dGVPbGRfMSA9ICdeKGF0dHJpYnV0ZXxpbmhlcml0
fHJlYWRvbmx5KSQnOworbXkgJG5leHRQcmltaXRpdmVUeXBlXzEgPSAnXihpbnR8bG9uZ3xzaG9y
dHx1bnNpZ25lZCkkJzsKK215ICRuZXh0UHJpbWl0aXZlVHlwZV8yID0gJ14oZG91YmxlfGZsb2F0
fHVucmVzdHJpY3RlZCkkJzsKK215ICRuZXh0U2V0R2V0UmFpc2VzMl8xID0gJ14oO3xnZXRyYWlz
ZXN8c2V0cmFpc2VzKSQnOworbXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofDo6fEJ5dGVT
dHJpbmd8RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58
aW50fGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3Rl
ZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9vbGVhbnxieXRlfGRv
dWJsZXxmbG9hdHxpbnR8bG9uZ3xvY3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7
CitteSAkbmV4dEludGVyZmFjZU1lbWJlck9sZF8xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01T
dHJpbmd8RGF0ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91
YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0
ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmlu
Z2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRPcHRpb25hbEl0
ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMSA9ICdeKDt8PSkkJzsKK215ICRuZXh0QXR0cmlidXRl
T3JPcGVyYXRpb25Pckl0ZXJhdG9yXzEgPSAnXihzdGF0aWN8c3RyaW5naWZpZXIpJCc7CitteSAk
bmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8yID0gJ14oXCh8Ojp8Qnl0ZVN0cmlu
Z3xET01TdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8
ZmxvYXR8Z2V0dGVyfGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8
c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRVbnJl
c3RyaWN0ZWRGbG9hdFR5cGVfMSA9ICdeKGRvdWJsZXxmbG9hdCkkJzsKK215ICRuZXh0RXh0ZW5k
ZWRBdHRyaWJ1dGVSZXN0M18xID0gJ14oXCx8Ojp8XF0pJCc7CitteSAkbmV4dEV4Y2VwdGlvbkZp
ZWxkXzEgPSAnXihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5
dGV8ZG91YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJl
c3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dFR5cGVfMSA9ICdeKDo6fEJ5dGVTdHJpbmd8
RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW50fGxvbmd8b2Jq
ZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRu
ZXh0U3BlY2lhbHNfMSA9ICdeKGNyZWF0b3J8ZGVsZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNl
dHRlcikkJzsKK215ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKDo6fGNhbGxiYWNrfGRpY3Rpb25h
cnl8ZW51bXxleGNlcHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0
RXhjZXB0aW9uTWVtYmVyc18xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxc
W3xhbnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0
ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkg
JG5leHRBdHRyaWJ1dGVSZXN0XzEgPSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7CitteSAkbmV4
dEludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxm
bG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJl
YWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmll
cnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0U2luZ2xlVHlwZV8xID0g
J14oOjp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0
fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWdu
ZWQpJCc7CitteSAkbmV4dEdldF8xID0gJ14oO3xnZXRyYWlzZXN8Z2V0dGVyfHNldHJhaXNlc3xz
ZXR0ZXIpJCc7CitteSAkbmV4dEFyZ3VtZW50TmFtZV8xID0gJ14oYXR0cmlidXRlfGNhbGxiYWNr
fGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkaWN0aW9uYXJ5fGVudW18ZXhjZXB0aW9ufGdldHRlcnxp
bXBsZW1lbnRzfGluaGVyaXR8aW50ZXJmYWNlfGxlZ2FjeWNhbGxlcnxwYXJ0aWFsfHNlcmlhbGl6
ZXJ8c2V0dGVyfHN0YXRpY3xzdHJpbmdpZmllcnx0eXBlZGVmfHVucmVzdHJpY3RlZCkkJzsKK215
ICRuZXh0Q29uc3RWYWx1ZV8xID0gJ14oZmFsc2V8dHJ1ZSkkJzsKK215ICRuZXh0Q29uc3RWYWx1
ZV8yID0gJ14oLXxJbmZpbml0eXxOYU4pJCc7CitteSAkbmV4dERlZmluaXRpb25fMSA9ICdeKGNh
bGxiYWNrfGludGVyZmFjZSkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEg
PSAnXihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91
YmxlfGZsb2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0
ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xID0gJ14o
aW50fGxvbmd8c2hvcnQpJCc7CitteSAkbmV4dERlZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZpbml0
eXxOYU58ZmFsc2V8bnVsbHx0cnVlKSQnOworCisKK3N1YiBwYXJzZURlZmluaXRpb25zCit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAZGVmaW5pdGlvbnMgPSAoKTsKKworICAgIHdo
aWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgICAg
ICBteSAkZGVmaW5pdGlvbjsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJbIikgewor
ICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+cGFy
c2VEZWZpbml0aW9uKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgk
bmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHREZWZpbml0aW9uc18xLykgeworICAgICAgICAgICAgJGRlZmluaXRpb24gPSAkc2VsZi0+cGFy
c2VEZWZpbml0aW9uT2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0Owor
ICAgICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkICgkZGVmaW5pdGlvbikpIHsKKyAgICAgICAg
ICAgIHB1c2goQGRlZmluaXRpb25zLCAkZGVmaW5pdGlvbik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIFxAZGVmaW5pdGlvbnM7CiB9CiAKLSMgRGVmYXVsdCBDb25zdHJ1Y3Rvcgotc3Vi
IG5ldworc3ViIHBhcnNlRGVmaW5pdGlvbgogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAg
ICBteSAkcmVmZXJlbmNlID0geyB9OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgSW5pdGlhbGl6ZUdsb2JhbERhdGEo
KTsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0RGVmaW5pdGlvbl8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlQ2FsbGJhY2tPckludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlUGFydGlhbCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgeworICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VFeGNlcHRpb24oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUVu
dW0oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAidHlwZWRlZiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGVkZWYoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgp
LCBfX0xJTkVfXyk7Cit9CiAKLSAgICAkYmVRdWlldCA9IHNoaWZ0Oworc3ViIHBhcnNlQ2FsbGJh
Y2tPckludGVyZmFjZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7
Ci0gICAgcmV0dXJuICRyZWZlcmVuY2U7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjYWxsYmFjayIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNl
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUludGVyZmFjZSgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi0jIFJldHVybnMgdGhlIHBh
cnNlZCAnaWRsRG9jdW1lbnQnCi1zdWIgUGFyc2UKK3N1YiBwYXJzZUNhbGxiYWNrUmVzdE9ySW50
ZXJmYWNlCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRmaWxlTmFtZSA9IHNo
aWZ0OwotICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7Ci0gICAgbXkgJHByZXByb2Nlc3NvciA9IHNo
aWZ0OwotICAgICRwYXJlbnRzT25seSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2Ui
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
bikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tSZXN0KCRleHRlbmRlZEF0
dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVyZmFjZQoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21D
bGFzcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImludGVyZmFjZSIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU5hbWVUb2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRp
bnRlcmZhY2VOYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+
bmFtZSgkaW50ZXJmYWNlTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgcHVzaChAeyRkYXRh
Tm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKX0pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7
CisgICAgICAgIG15ICRpbnRlcmZhY2VNZW1iZXJzID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVt
YmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgYXBwbHlNZW1iZXJMaXN0KCRk
YXRhTm9kZSwgJGludGVyZmFjZU1lbWJlcnMpOworICAgICAgICBhcHBseUV4dGVuZGVkQXR0cmli
dXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1
cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRu
ZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBwcmludCAiIHwgKioqIFN0YXJ0aW5n
IHRvIHBhcnNlICRmaWxlTmFtZS4uLlxuIHxcbiIgdW5sZXNzICRiZVF1aWV0OwotICAgIG15IEBk
b2N1bWVudENvbnRlbnQgPSBhcHBseVByZXByb2Nlc3NvcigkZmlsZU5hbWUsICRkZWZpbmVzLCAk
cHJlcHJvY2Vzc29yKTsKK3N1YiBwYXJzZVBhcnRpYWwKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgIG15ICRkYXRh
QXZhaWxhYmxlID0gMDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInBhcnRpYWwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicGFydGlhbCIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxEZWZpbml0aW9uKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52
YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICAjIFNpbXBsZSBJREwgUGFyc2VyICh0bSkKLSAg
ICBmb3JlYWNoIChAZG9jdW1lbnRDb250ZW50KSB7Ci0gICAgICAgIG15ICRuZXdQYXJzZU1vZGUg
PSAkb2JqZWN0LT5EZXRlcm1pbmVQYXJzZU1vZGUoJF8pOworc3ViIHBhcnNlUGFydGlhbERlZmlu
aXRpb24KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBpZiAoJG5ld1BhcnNlTW9kZSBuZSBNT0RFX1VOREVG
KSB7Ci0gICAgICAgICAgICBpZiAoJGRhdGFBdmFpbGFibGUgZXEgMCkgewotICAgICAgICAgICAg
ICAgICRkYXRhQXZhaWxhYmxlID0gMTsgIyBTdGFydCBub2RlIGJ1aWxkaW5nLi4uCi0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRvYmplY3QtPlByb2Nlc3NTZWN0aW9uKCk7
Ci0gICAgICAgICAgICB9CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VQYXJ0aWFsSW50ZXJmYWNlKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VQYXJ0aWFsRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VQYXJ0aWFsSW50ZXJmYWNlCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImludGVyZmFjZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9f
KTsKKyAgICAgICAgJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVycygpOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9f
TElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVy
ZmFjZU1lbWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15IEBpbnRlcmZhY2VN
ZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlcjsKKworICAgICAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCk7CisgICAgICAg
ICAgICAkaW50ZXJmYWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJmYWNlTWVtYmVyKCRleHRl
bmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICB9IGVsc2lmICgkbmV4dC0+dHlwZSgpID09IElk
ZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZhY2VNZW1iZXJz
XzEvKSB7CisgICAgICAgICAgICAkaW50ZXJmYWNlTWVtYmVyID0gJHNlbGYtPnBhcnNlSW50ZXJm
YWNlTWVtYmVyT2xkKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsYXN0OworICAg
ICAgICB9CisgICAgICAgIGlmIChkZWZpbmVkICRpbnRlcmZhY2VNZW1iZXIpIHsKKyAgICAgICAg
ICAgIHB1c2goQGludGVyZmFjZU1lbWJlcnMsICRpbnRlcmZhY2VNZW1iZXIpOwogICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiBcQGludGVyZmFjZU1lbWJlcnM7Cit9CisKK3N1YiBwYXJzZUlu
dGVyZmFjZU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjb25zdCIpIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUNvbnN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0SW50ZXJmYWNlTWVtYmVyT2xkXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRGljdGlvbmFyeQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJk
aWN0aW9uYXJ5IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImRpY3Rpb25hcnkiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRz
ZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RGljdGlvbmFyeU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUo
KSwgX19MSU5FX18pOworfQogCi0gICAgICAgICMgVXBkYXRlIGRldGVjdGVkIGRhdGEgc3RyZWFt
IG1vZGUuLi4KLSAgICAgICAgaWYgKCRuZXdQYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgewotICAg
ICAgICAgICAgJHBhcnNlTW9kZSA9ICRuZXdQYXJzZU1vZGU7CitzdWIgcGFyc2VEaWN0aW9uYXJ5
TWVtYmVycworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisKKyAgICB3aGlsZSAoMSkgeworICAg
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJbIikgeworICAgICAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgICAgICAgICAgJHNlbGYt
PnBhcnNlRGljdGlvbmFyeU1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
fSBlbHNpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKKyAgICAgICAgICAgICRzZWxmLT5wYXJz
ZURpY3Rpb25hcnlNZW1iZXJPbGQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxh
c3Q7CiAgICAgICAgIH0KKyAgICB9Cit9CiAKLSAgICAgICAgcHVzaChAdGVtcG9yYXJ5Q29udGVu
dCwgJF8pOworc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRp
ZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7
CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYt
PnBhcnNlRGVmYXVsdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgIyBDaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyByZW1haW5pbmcgdG8gcGFyc2Uu
Li4KLSAgICBpZiAoKCRwYXJzZU1vZGUgbmUgTU9ERV9VTkRFRikgYW5kICgkI3RlbXBvcmFyeUNv
bnRlbnQgPiAwKSkgewotICAgICAgICAkb2JqZWN0LT5Qcm9jZXNzU2VjdGlvbigpOworc3ViIHBh
cnNlUGFydGlhbERpY3Rpb25hcnkKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGlj
dGlvbmFyeSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJkaWN0aW9uYXJ5IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7Cisg
ICAgICAgICRzZWxmLT5wYXJzZURpY3Rpb25hcnlNZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5F
X18pOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIHByaW50ICIgfCAqKiog
RmluaXNoZWQgcGFyc2luZyFcbiIgdW5sZXNzICRiZVF1aWV0OwotIAotICAgICRkb2N1bWVudC0+
ZmlsZU5hbWUoJGZpbGVOYW1lKTsKK3N1YiBwYXJzZURlZmF1bHQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gJHNlbGYtPnBh
cnNlRGVmYXVsdFZhbHVlKCk7CisgICAgfQorfQogCi0gICAgcmV0dXJuICRkb2N1bWVudDsKK3N1
YiBwYXJzZURlZmF1bHRWYWx1ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRU
b2tlbiB8fCAkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHREZWZhdWx0VmFsdWVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNv
bnN0VmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4p
IHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
CiB9CiAKLXN1YiBQYXJzZU1vZHVsZQorc3ViIHBhcnNlRXhjZXB0aW9uCiB7Ci0gICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJl
eGNlcHRpb24iKSB7CisgICAgICAgIG15ICRkYXRhTm9kZSA9IG5ldyBkb21DbGFzcygpOworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImV4Y2VwdGlv
biIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk5hbWVUb2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRleGNlcHRpb25OYW1l
VG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRhTm9kZS0+bmFtZSgkZXhjZXB0
aW9uTmFtZVRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJGRhdGFOb2RlLT5pc0V4Y2VwdGlvbigx
KTsKKyAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+cGFyZW50c30sIEB7JHNlbGYtPnBhcnNlSW5o
ZXJpdGFuY2UoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0g
JHNlbGYtPnBhcnNlRXhjZXB0aW9uTWVtYmVycygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAg
ICAgICAgYXBwbHlNZW1iZXJMaXN0KCRkYXRhTm9kZSwgJGV4Y2VwdGlvbk1lbWJlcnMpOworICAg
ICAgICBhcHBseUV4dGVuZGVkQXR0cmlidXRlTGlzdCgkZGF0YU5vZGUsICRleHRlbmRlZEF0dHJp
YnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUV4Y2VwdGlvbk1lbWJlcnMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
IEBtZW1iZXJzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbk1lbWJlcnNfMS8pIHsK
KyAgICAgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICAgICAjbXkgJG1lbWJlciA9
ICRzZWxmLT5wYXJzZUV4Y2VwdGlvbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICAgICAgICAgIG15ICRtZW1iZXIgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXIoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICBpZiAoZGVmaW5lZCAoJG1lbWJlcikpIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEBtZW1iZXJzLCAkbWVtYmVyKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIFxAbWVtYmVyczsKK30KIAotICAgIHByaW50ICIgfC0gVHJ5aW5nIHRvIHBhcnNl
IG1vZHVsZS4uLlxuIiB1bmxlc3MgJGJlUXVpZXQ7CitzdWIgcGFyc2VJbmhlcml0YW5jZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQHBhcmVudCA9ICgpOworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjoi
LCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYtPnBhcnNlU2NvcGVk
TmFtZSgpOworICAgICAgICBwdXNoKEBwYXJlbnQsICRzY29wZWROYW1lKTsKKyAgICAgICAgIyBN
dWx0aXBsZSBpbmhlcml0YW5jZT8KKyAgICAgICAgcHVzaChAcGFyZW50LCBAeyRzZWxmLT5wYXJz
ZUlkZW50aWZpZXJzKCl9KTsKKyAgICB9CisgICAgcmV0dXJuIFxAcGFyZW50OworfQorCitzdWIg
cGFyc2VFbnVtCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImVudW0iKSB7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZW51bSIsIF9fTElORV9fKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRv
a2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVMaXN0KCk7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9f
TElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5h
c3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAg
IG15ICRkYXRhID0gam9pbigiIiwgQHRlbXBvcmFyeUNvbnRlbnQpOwotICAgICRkYXRhID1+IC8k
SURMU3RydWN0dXJlOjptb2R1bGVTZWxlY3Rvci87CitzdWIgcGFyc2VFbnVtVmFsdWVMaXN0Cit7
CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBTdHJpbmdUb2tlbikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBTdHJpbmdUb2tlbik7CisgICAg
ICAgICRzZWxmLT5wYXJzZUVudW1WYWx1ZXMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CiAKLSAgICBteSAkbW9kdWxlTmFtZSA9IChkZWZpbmVkKCQxKSA/ICQxIDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGRhdGFcbikiKSk7Ci0gICAgJGRhdGFOb2RlLT5tb2R1bGUo
JG1vZHVsZU5hbWUpOworc3ViIHBhcnNlRW51bVZhbHVlcworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICIsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIiwiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5
cGUoJHNlbGYtPmdldFRva2VuKCksIFN0cmluZ1Rva2VuKTsKKyAgICAgICAgJHNlbGYtPnBhcnNl
RW51bVZhbHVlcygpOworICAgIH0KK30KIAotICAgIHByaW50ICIgIHwtLS0tPiBNb2R1bGU7IE5B
TUUgXCIkbW9kdWxlTmFtZVwiXG4gfC1cbiB8XG4iIHVubGVzcyAkYmVRdWlldDsKK3N1YiBwYXJz
ZUNhbGxiYWNrUmVzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tl
bik7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
PSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBkdW1wRXh0ZW5kZWRB
dHRyaWJ1dGVzCitzdWIgcGFyc2VUeXBlZGVmCiB7Ci0gICAgbXkgJHBhZFN0ciA9IHNoaWZ0Owot
ICAgIG15ICRhdHRycyA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInR5cGVkZWYiLCBf
X0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOwor
ICAgICAgICAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5
cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBpZiAoISV7JGF0dHJzfSkgewotICAgICAg
ICByZXR1cm4gIiI7CitzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOwor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImltcGxl
bWVudHMiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19M
SU5FX18pOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KIAotICAgIG15IEB0ZW1wOwot
ICAgIHdoaWxlICgobXkgJG5hbWUsIG15ICR2YWx1ZSkgPSBlYWNoKCV7JGF0dHJzfSkpIHsKLSAg
ICAgICAgcHVzaChAdGVtcCwgIiRuYW1lPSR2YWx1ZSIpOworc3ViIHBhcnNlQ29uc3QKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21D
b25zdGFudCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImNvbnN0IiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoJHNl
bGYtPnBhcnNlQ29uc3RUeXBlKCkpOworICAgICAgICBteSAkY29uc3ROYW1lVG9rZW4gPSAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkY29uc3ROYW1l
VG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+bmFtZSgkY29u
c3ROYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIj0iLCBfX0xJTkVfXyk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+
dmFsdWUoJHNlbGYtPnBhcnNlQ29uc3RWYWx1ZSgpKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICAkbmV3
RGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAg
ICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhw
ZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAgcmV0dXJuICRw
YWRTdHIgLiAiWyIgLiBqb2luKCIsICIsIEB0ZW1wKSAuICJdIjsKK3N1YiBwYXJzZUNvbnN0VmFs
dWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDb25zdFZhbHVlXzEvKSB7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VCb29sZWFuTGl0ZXJhbCgpOworICAgIH0KKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm51bGwiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAibnVsbCIsIF9fTElORV9fKTsKKyAgICAgICAg
cmV0dXJuICJudWxsIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gRmxvYXRUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDb25zdFZhbHVlXzIvKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VGbG9hdExpdGVyYWwoKTsKKyAgICB9CisgICAgIyBiYWNrd2FyZCBj
b21wYXRpYmlsaXR5CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gU3RyaW5nVG9rZW4pIHsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5n
ZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBwYXJzZUV4dGVuZGVkQXR0
cmlidXRlcworc3ViIHBhcnNlQm9vbGVhbkxpdGVyYWwKIHsKLSAgICBteSAkc3RyID0gc2hpZnQ7
Ci0gICAgJHN0ciA9fiBzL1xbXHMqKC4qKVxzKlxdLyQxL2c7Ci0KLSAgICBteSAlYXR0cnMgPSAo
KTsKLQotICAgIHdoaWxlICgkc3RyICF+IC9eXHMqJC8pIHsKLSAgICAgICAgIyBQYXJzZSBuYW1l
Ci0gICAgICAgIGlmICgkc3RyICF+IC9eXHMqKFtcd1xkXSspLykgewotICAgICAgICAgICAgZGll
KCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgfQotICAg
ICAgICBteSAkbmFtZSA9ICQxOwotICAgICAgICAkc3RyID1+IHMvXlxzKihbXHdcZF0rKS8vOwot
Ci0gICAgICAgIGlmICgkc3RyID1+IC9eXHMqPS8pIHsKLSAgICAgICAgICAgICRzdHIgPX4gcy9e
XHMqPS8vOwotICAgICAgICAgICAgaWYgKCRuYW1lIGVxICJOYW1lZENvbnN0cnVjdG9yIikgewot
ICAgICAgICAgICAgICAgICMgUGFyc2UgJz0nIG5hbWUgJygnIGFyZ3VtZW50cyAnKScgJywnPwot
ICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3Rvck5hbWU7Ci0gICAgICAgICAgICAgICAgaWYg
KCRzdHIgPX4gL15ccyooW1x3XGRdKykvKSB7Ci0gICAgICAgICAgICAgICAgICAgICRjb25zdHJ1
Y3Rvck5hbWUgPSAkMTsKLSAgICAgICAgICAgICAgICAgICAgJHN0ciA9fiBzL15ccyooW1x3XGRd
KykvLzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBkaWUo
IkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKlwoLykgewotICAgICAgICAgICAg
ICAgICAgICAjIFBhcnNlICcoJyBhcmd1bWVudHMgJyknICcsJz8KLSAgICAgICAgICAgICAgICAg
ICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAgICAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAv
XihbXildKilcKSw/LykgewotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHNpZ25hdHVyZSA9
ICQxOwotICAgICAgICAgICAgICAgICAgICAgICAgJHNpZ25hdHVyZSA9fiBzL14oLio/KVxzKiQv
JDEvOwotICAgICAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9IHsiQ29uc3RydWN0
b3JOYW1lIiA9PiAkY29uc3RydWN0b3JOYW1lLCAiU2lnbmF0dXJlIiA9PiAkc2lnbmF0dXJlfTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsKLSAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpZSgiSW52
YWxpZCBleHRlbmRlZCBhdHRyaWJ1dGU6ICckc3RyJ1xuIik7Ci0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB9IGVsc2lmICgkc3RyID1+IC9eXHMqLD8vKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICRhdHRyc3skbmFtZX0gPSB7IkNvbnN0cnVjdG9yTmFtZSIgPT4gJGNvbnN0
cnVjdG9yTmFtZSwgIlNpZ25hdHVyZSIgPT4gIiJ9OwotICAgICAgICAgICAgICAgICAgICAkc3Ry
ID1+IHMvXlxzKiw/Ly87Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICMgUGFy
c2UgJz0nIHZhbHVlICcsJz8KLSAgICAgICAgICAgICAgICBpZiAoJHN0ciA9fiAvXlxzKihbXixd
KiksPy8pIHsKLSAgICAgICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9ICQxOwotICAgICAg
ICAgICAgICAgICAgICAkYXR0cnN7JG5hbWV9ID1+IHMvXiguKj8pXHMqJC8kMS87Ci0gICAgICAg
ICAgICAgICAgICAgICRzdHIgPX4gcy9eXHMqKFteLF0qKSw/Ly87Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVuZGVkIGF0dHJp
YnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0gZWxzaWYgKCRzdHIgPX4gL15ccypcKC8pIHsKLSAgICAgICAgICAgICMgUGFyc2UgJygn
IGFyZ3VtZW50cyAnKScgJywnPwotICAgICAgICAgICAgJHN0ciA9fiBzL15ccypcKC8vOwotICAg
ICAgICAgICAgaWYgKCRzdHIgPX4gL14oW14pXSopXCksPy8pIHsKLSAgICAgICAgICAgICAgICAk
YXR0cnN7JG5hbWV9ID0gJDE7Ci0gICAgICAgICAgICAgICAgJGF0dHJzeyRuYW1lfSA9fiBzL14o
Lio/KVxzKiQvJDEvOwotICAgICAgICAgICAgICAgICRzdHIgPX4gcy9eKFteKV0qKVwpLD8vLzsK
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgZGllKCJJbnZhbGlkIGV4dGVu
ZGVkIGF0dHJpYnV0ZTogJyRzdHInXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNp
ZiAoJHN0ciA9fiAvXlxzKiw/LykgewotICAgICAgICAgICAgIyBQYXJzZSAnJyB8ICcsJwotICAg
ICAgICAgICAgaWYgKCRuYW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKLSAgICAgICAgICAgICAgICAk
YXR0cnN7JG5hbWV9ID0gIiI7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICRhdHRyc3skbmFtZX0gPSAiVkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAkc3RyID1+IHMvXlxzKiw/Ly87Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBkaWUoIkludmFsaWQgZXh0ZW5kZWQgYXR0cmlidXRlOiAnJHN0cidcbiIpOworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpIGVxICJ0cnVlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInRydWUiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
biAidHJ1ZSI7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZmFsc2UiKSB7Cisg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZmFsc2Ui
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZmFsc2UiOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUZsb2F0TGl0ZXJhbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICItIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIi0i
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiSW5maW5pdHkiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiLUluZmluaXR5
IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJJbmZpbml0eSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJJbmZpbml0eSIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJJbmZpbml0eSI7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiTmFOIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIk5hTiIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJO
YU4iOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBGbG9hdFRva2VuKSB7CisgICAg
ICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3IKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c2VyaWFsaXplciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNlcmlhbGl6ZXIoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMS8pIHsKKyAgICAgICAgbXkgJHF1
YWxpZmllciA9ICRzZWxmLT5wYXJzZVF1YWxpZmllcigpOworICAgICAgICBteSAkbmV3RGF0YU5v
ZGUgPSAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgICAgIGlmIChkZWZpbmVkKCRuZXdEYXRhTm9kZSkgJiYgJHF1YWxpZmll
ciBlcSAic3RhdGljIikgeworICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc1N0YXRpYygxKTsK
ICAgICAgICAgfQorICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VBdHRyaWJ1dGUoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUo
KSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRlcmF0b3JfMi8pIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZh
bHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2VyaWFsaXplcgoreworICAgIG15ICRz
ZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJzZXJpYWxpemVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgInNlcmlhbGl6ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXJpYWxpemVyUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9
CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5F
X18pOworfQorCitzdWIgcGFyc2VTZXJpYWxpemVyUmVzdAoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI9Iikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj0i
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXJpYWxpemF0aW9uUGF0
dGVybigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgInsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU2VyaWFsaXphdGlv
blBhdHRlcm5NYXAoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJbIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFy
c2VTZXJpYWxpemF0aW9uUGF0dGVybkxpc3QoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CiAgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlU2VyaWFs
aXphdGlvblBhdHRlcm5NYXAKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0dGVy
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
ImdldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImluaGVyaXQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5oZXJpdCIsIF9fTElORV9fKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlSWRlbnRpZmllcnMoKTsKKyAgICB9Cit9CiAKLSAgICByZXR1cm4gXCVhdHRy
czsKK3N1YiBwYXJzZVNlcmlhbGl6YXRpb25QYXR0ZXJuTGlzdAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVudGlmaWVy
VG9rZW4pOworICAgICAgICAkc2VsZi0+cGFyc2VJZGVudGlmaWVycygpOworICAgIH0KIH0KIAot
c3ViIHBhcnNlUGFyYW1ldGVycworc3ViIHBhcnNlSWRlbnRpZmllcnMKIHsKLSAgICBteSAkbmV3
RGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkbWV0aG9kU2lnbmF0dXJlID0gc2hpZnQ7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAaWRlbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkg
eworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICIsIiwgX19MSU5FX18pOworICAgICAgICAgICAgbXkgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQGlkZW50cywg
JHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAaWRlbnRzOworfQogCi0gICAgIyBTcGxpdCBh
cmd1bWVudHMgYXQgY29tbWFzIGJ1dCBvbmx5IGlmIHRoZSBjb21tYQotICAgICMgaXMgbm90IHdp
dGhpbiBhdHRyaWJ1dGUgYnJhY2tldHMsIGV4cHJlc3NlZCBoZXJlCi0gICAgIyBhcyBiZWluZyBm
b2xsb3dlZCBieSBhICddJyB3aXRob3V0IGEgcHJlY2VkaW5nICdbJy4KLSAgICAjIE5vdGUgdGhh
dCB0aGlzIGFzc3VtZXMgdGhhdCBhdHRyaWJ1dGVzIGRvbid0IG5lc3QuCi0gICAgbXkgQHBhcmFt
cyA9IHNwbGl0KC8sKD8hW15bXSpcXSkvLCAkbWV0aG9kU2lnbmF0dXJlKTsKLSAgICBmb3JlYWNo
IChAcGFyYW1zKSB7Ci0gICAgICAgIG15ICRsaW5lID0gJF87CitzdWIgcGFyc2VRdWFsaWZpZXIK
K3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OwogCi0gICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0
dXJlOjppbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3Rvci87Ci0gICAgICAgIG15ICRwYXJhbURpcmVj
dGlvbiA9ICQxOwotICAgICAgICBteSAkcGFyYW1FeHRlbmRlZEF0dHJpYnV0ZXMgPSAoZGVmaW5l
ZCgkMikgPyAkMiA6ICIgIik7IGNob3AoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAg
ICAgbXkgJHBhcmFtVHlwZSA9IChkZWZpbmVkKCQzKSA/ICQzIDogZGllKCJQYXJzaW5nIGVycm9y
IVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgIG15ICRwYXJhbVR5cGVTdWZmaXggPSBk
ZWZpbmVkKCQ0KSA/ICQ0IDogIiI7Ci0gICAgICAgIG15ICRwYXJhbU5hbWUgPSAoZGVmaW5lZCgk
NSkgPyAkNSA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAic3RhdGljIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgInN0YXRpYyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJzdGF0aWMiOwor
ICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInN0cmluZ2lmaWVyIikgeworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInN0cmluZ2lmaWVy
IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInN0cmluZ2lmaWVyIjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQogCi0gICAgICAgIG15ICRpc051bGxhYmxlID0gJHBhcmFtVHlwZVN1ZmZpeCBlcSAiPyI7Citz
dWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKIAotICAgICAgICBteSAk
cGFyYW1EYXRhTm9kZSA9IG5ldyBkb21TaWduYXR1cmUoKTsKLSAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPmRpcmVjdGlvbigkcGFyYW1EaXJlY3Rpb24pOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+
bmFtZSgkcGFyYW1OYW1lKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHBhcmFtVHlw
ZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMocGFyc2VFeHRl
bmRlZEF0dHJpYnV0ZXMoJHBhcmFtRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Ci0gICAgICAgICRwYXJh
bURhdGFOb2RlLT5pc051bGxhYmxlKCRpc051bGxhYmxlKTsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRl
UmVzdF8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXR0cmlidXRlUmVzdCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI7
IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdF8xLykgeworICAgICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxm
LT5wYXJzZVJldHVyblR5cGUoKTsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gJHNlbGYtPnBhcnNl
T3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgaWYgKGRlZmlu
ZWQgKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRkYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBl
KCRyZXR1cm5UeXBlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gJGRhdGFOb2RlOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CiAKLSAgICAgICAgbXkgJGFycmF5UmVmID0gJG5ld0RhdGFOb2RlLT5wYXJhbWV0
ZXJzOwotICAgICAgICBwdXNoKEAkYXJyYXlSZWYsICRwYXJhbURhdGFOb2RlKTsKK3N1YiBwYXJz
ZUF0dHJpYnV0ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCA9IHNoaWZ0OwogCi0gICAgICAgIHByaW50ICIgIHwgICB8PiAgUGFyYW07IFRZ
UEUgXCIkcGFyYW1UeXBlXCIgTkFNRSBcIiRwYXJhbU5hbWVcIiIgLiAKLSAgICAgICAgICAgIGR1
bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAgICAiLCAkcGFyYW1EYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJcbiIgdW5sZXNzICRiZVF1aWV0OyAgICAgICAgICAK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVy
aXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3QoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CiAgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4o
JG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIFBhcnNlSW50ZXJmYWNlCitzdWIg
cGFyc2VBdHRyaWJ1dGVSZXN0CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRzZWN0aW9uTmFtZSA9IHNoaWZ0OwotCi0gICAgbXkg
JGRhdGEgPSBqb2luKCIiLCBAdGVtcG9yYXJ5Q29udGVudCk7Ci0KLSAgICAjIExvb2sgZm9yIGVu
ZC1vZi1pbnRlcmZhY2UgbWFyawotICAgICRkYXRhID1+IC99Oy9nOwotICAgICRkYXRhID0gc3Vi
c3RyKCRkYXRhLCBpbmRleCgkZGF0YSwgJHNlY3Rpb25OYW1lKSwgcG9zKCRkYXRhKSAtIGxlbmd0
aCgkZGF0YSkpOwotCi0gICAgJGRhdGEgPX4gcy9bXG5ccl0vIC9nOwotCi0gICAgIyBCZWdpbm5p
bmcgb2YgdGhlIHJlZ2V4cCBwYXJzaW5nIG1hZ2ljCi0gICAgaWYgKCRzZWN0aW9uTmFtZSBlcSAi
aW50ZXJmYWNlIiB8fCAkc2VjdGlvbk5hbWUgZXEgImV4Y2VwdGlvbiIpIHsKLSAgICAgICAgcHJp
bnQgIiB8LSBUcnlpbmcgdG8gcGFyc2UgaW50ZXJmYWNlLi4uXG4iIHVubGVzcyAkYmVRdWlldDsK
LQotICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICIiOwotICAgICAgICBteSAkaW50ZXJmYWNl
RGF0YSA9ICIiOwotCi0gICAgICAgICMgTWF0Y2ggaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNl
LCBhbmQgZW5jbG9zZWQgZGF0YS4uLgotICAgICAgICAkZGF0YSA9fiAvJElETFN0cnVjdHVyZTo6
aW50ZXJmYWNlU2VsZWN0b3IvOwotCi0gICAgICAgIG15ICRpc0V4Y2VwdGlvbiA9IChkZWZpbmVk
KCQxKSA/ICgkMSBlcSAnZXhjZXB0aW9uJykgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6
XG4kZGF0YVxuKSIpKTsKLSAgICAgICAgbXkgJGludGVyZmFjZUV4dGVuZGVkQXR0cmlidXRlcyA9
IChkZWZpbmVkKCQyKSA/ICQyIDogIiAiKTsgY2hvcCgkaW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1
dGVzKTsKLSAgICAgICAgJGludGVyZmFjZU5hbWUgPSAoZGVmaW5lZCgkMykgPyAkMyA6IGRpZSgi
UGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRkYXRhXG4pIikpOwotICAgICAgICBteSAkaW50ZXJm
YWNlQmFzZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogIiIpOwotICAgICAgICAkaW50ZXJmYWNlRGF0
YSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGRh
dGFcbikiKSk7Ci0KLSAgICAgICAgIyBGaWxsIGluIGtub3duIHBhcnRzIG9mIHRoZSBkb21DbGFz
cyBkYXRhc3RydWN0dXJlIG5vdy4uLgotICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0aW9uKCRp
c0V4Y2VwdGlvbik7Ci0gICAgICAgICRkYXRhTm9kZS0+bmFtZSgkaW50ZXJmYWNlTmFtZSk7Ci0g
ICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygk
aW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBteSAkbmV3RGF0
YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+bmFtZSgiQ29uc3RydWN0b3IiKTsKLSAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlcyk7Ci0gICAg
ICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0RhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNvbnN0cnVjdG9yIn0pOwotICAgICAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b25zdHJ1Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOwotICAgICAgICAgICAgJGRhdGFOb2Rl
LT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOwotICAgICAgICB9IGVsc2lmIChkZWZpbmVkICRl
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7Ci0gICAgICAgICAgICBt
eSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKLSAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0gICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgiTmFtZWRDb25zdHJ1Y3RvciIpOwotICAgICAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKLSAgICAgICAgICAgIHBhcnNlUGFyYW1ldGVycygkbmV3RGF0YU5vZGUsICRleHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9LT57IlNpZ25hdHVyZSJ9KTsKLSAg
ICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ID0gJGV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn17IkNvbnN0cnVjdG9yTmFtZSJ9
OwotICAgICAgICAgICAgJGRhdGFOb2RlLT5jb25zdHJ1Y3RvcigkbmV3RGF0YU5vZGUpOwotICAg
ICAgICB9Ci0gICAgICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0
dHJpYnV0ZXMpOwotCi0gICAgICAgICMgSW5oZXJpdGFuY2UgZGV0ZWN0aW9uCi0gICAgICAgIG15
IEBpbnRlcmZhY2VQYXJlbnRzID0gc3BsaXQoLywvLCAkaW50ZXJmYWNlQmFzZSk7Ci0gICAgICAg
IGZvcmVhY2goQGludGVyZmFjZVBhcmVudHMpIHsKLSAgICAgICAgICAgIG15ICRsaW5lID0gJF87
Ci0gICAgICAgICAgICAkbGluZSA9fiBzL1xzKi8vZzsKLQotICAgICAgICAgICAgbXkgJGFycmF5
UmVmID0gJGRhdGFOb2RlLT5wYXJlbnRzOwotICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAk
bGluZSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gaWYgJHBhcmVudHNPbmx5OwotCi0g
ICAgICAgICRpbnRlcmZhY2VEYXRhID1+IHMvW1xuXHJdLyAvZzsKLSAgICAgICAgbXkgQGludGVy
ZmFjZU1ldGhvZHMgPSBzcGxpdCgvOy8sICRpbnRlcmZhY2VEYXRhKTsKLQotICAgICAgICBmb3Jl
YWNoIG15ICRsaW5lIChAaW50ZXJmYWNlTWV0aG9kcykgewotICAgICAgICAgICAgbmV4dCBpZiAk
bGluZSA9fiAvXlxzKiQvOwotICAgICAgICAgICAgaWYgKCRsaW5lID1+IC9cV2F0dHJpYnV0ZVxX
LykgewotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjppbnRlcmZhY2VB
dHRyaWJ1dGVTZWxlY3Rvci87Ci0KLSAgICAgICAgICAgICAgICBteSAkaXNTdGF0aWMgPSBkZWZp
bmVkKCQxKTsKLSAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlVHlwZSA9IChkZWZpbmVkKCQy
KSA/ICQyIDogZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAg
ICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQz
KSA/ICQzIDogIiAiKTsgY2hvcCgkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKTsKLQotICAg
ICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVEYXRhVHlwZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDog
ZGllKCJQYXJzaW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZURhdGFOYW1lID0gKGRlZmluZWQoJDUpID8gJDUgOiBkaWUoIlBhcnNp
bmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgCi0gICAgICAgICAgICAgICAgKCcn
ID1+IC9eLyk7ICMgUmVzZXQgdmFyaWFibGVzIG5lZWRlZCBmb3IgcmVnZXhwIG1hdGNoaW5nCi0K
LSAgICAgICAgICAgICAgICAkbGluZSA9fiAvJElETFN0cnVjdHVyZTo6Z2V0dGVyUmFpc2VzU2Vs
ZWN0b3IvOwotICAgICAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb24gPSAoZGVmaW5lZCgk
MSkgPyAkMSA6ICIiKTsKLQotICAgICAgICAgICAgICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJl
OjpzZXR0ZXJSYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAgICAgICAgbXkgJHNldHRlckV4Y2Vw
dGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOwotCi0gICAgICAgICAgICAgICAgbXkgJG5l
d0RhdGFOb2RlID0gbmV3IGRvbUF0dHJpYnV0ZSgpOwotICAgICAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgkYXR0cmlidXRlVHlwZSk7Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2Rl
LT5pc1N0YXRpYygkaXNTdGF0aWMpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Ci0KLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+bmFtZSgkYXR0cmlidXRlRGF0YU5hbWUpOwotICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRhdHRyaWJ1dGVEYXRhVHlwZSk7Ci0gICAg
ICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyhw
YXJzZUV4dGVuZGVkQXR0cmlidXRlcygkYXR0cmlidXRlRXh0ZW5kZWRBdHRyaWJ1dGVzKSk7Ci0K
LSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYgPSAkZGF0YU5vZGUtPmF0dHJpYnV0ZXM7Ci0g
ICAgICAgICAgICAgICAgcHVzaChAJGFycmF5UmVmLCAkbmV3RGF0YU5vZGUpOwotCi0gICAgICAg
ICAgICAgICAgcHJpbnQgIiAgfCAgfD4gIEF0dHJpYnV0ZTsgU1RBVElDPyBcIiRpc1N0YXRpY1wi
IFRZUEUgXCIkYXR0cmlidXRlVHlwZVwiIERBVEEgTkFNRSBcIiRhdHRyaWJ1dGVEYXRhTmFtZVwi
IERBVEEgVFlQRSBcIiRhdHRyaWJ1dGVEYXRhVHlwZVwiIEdFVCBFWENFUFRJT04/IFwiJGdldHRl
ckV4Y2VwdGlvblwiIFNFVCBFWENFUFRJT04/IFwiJHNldHRlckV4Y2VwdGlvblwiIiAuCi0gICAg
ICAgICAgICAgICAgICAgIGR1bXBFeHRlbmRlZEF0dHJpYnV0ZXMoIlxuICB8ICAgICAgICAgICAg
ICAgICAiLCAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAuICJc
biIgdW5sZXNzICRiZVF1aWV0OwotCi0gICAgICAgICAgICAgICAgJGdldHRlckV4Y2VwdGlvbiA9
fiBzL1xzKy8vZzsKLSAgICAgICAgICAgICAgICAkc2V0dGVyRXhjZXB0aW9uID1+IHMvXHMrLy9n
OwotICAgICAgICAgICAgICAgIEB7JG5ld0RhdGFOb2RlLT5nZXR0ZXJFeGNlcHRpb25zfSA9IHNw
bGl0KC8sLywgJGdldHRlckV4Y2VwdGlvbik7Ci0gICAgICAgICAgICAgICAgQHskbmV3RGF0YU5v
ZGUtPnNldHRlckV4Y2VwdGlvbnN9ID0gc3BsaXQoLywvLCAkc2V0dGVyRXhjZXB0aW9uKTsKLSAg
ICAgICAgICAgIH0gZWxzaWYgKCRsaW5lICF+IC9eXHMqKCRJRExTdHJ1Y3R1cmU6OmV4dGVuZGVk
QXR0cmlidXRlU3ludGF4ICk/Y29uc3RccysvKSB7Ci0gICAgICAgICAgICAgICAgJGxpbmUgPX4g
LyRJRExTdHJ1Y3R1cmU6OmludGVyZmFjZU1ldGhvZFNlbGVjdG9yLyBvciBkaWUgIlBhcnNpbmcg
ZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSI7Ci0KLSAgICAgICAgICAgICAgICBteSAkbWV0aG9k
RXh0ZW5kZWRBdHRyaWJ1dGVzID0gKGRlZmluZWQoJDEpID8gJDEgOiAiICIpOyBjaG9wKCRtZXRo
b2RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRpc1N0YXRpYyA9IGRl
ZmluZWQoJDIpOwotICAgICAgICAgICAgICAgIG15ICRtZXRob2RUeXBlID0gKGRlZmluZWQoJDMp
ID8gJDMgOiBkaWUoIlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKLSAgICAg
ICAgICAgICAgICBteSAkbWV0aG9kTmFtZSA9IChkZWZpbmVkKCQ0KSA/ICQ0IDogZGllKCJQYXJz
aW5nIGVycm9yIVxuU291cmNlOlxuJGxpbmVcbikiKSk7Ci0gICAgICAgICAgICAgICAgbXkgJG1l
dGhvZFNpZ25hdHVyZSA9IChkZWZpbmVkKCQ1KSA/ICQ1IDogZGllKCJQYXJzaW5nIGVycm9yIVxu
U291cmNlOlxuJGxpbmVcbikiKSk7Ci0KLSAgICAgICAgICAgICAgICAoJycgPX4gL14vKTsgIyBS
ZXNldCB2YXJpYWJsZXMgbmVlZGVkIGZvciByZWdleHAgbWF0Y2hpbmcKLQotICAgICAgICAgICAg
ICAgICRsaW5lID1+IC8kSURMU3RydWN0dXJlOjpyYWlzZXNTZWxlY3Rvci87Ci0gICAgICAgICAg
ICAgICAgbXkgJG1ldGhvZEV4Y2VwdGlvbiA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiIpOwotCi0g
ICAgICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7Ci0KLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzU3RhdGljKCRpc1N0YXRpYyk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKLSAg
ICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZSgkbWV0aG9kTmFtZSk7
Ci0gICAgICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUoJG1ldGhvZFR5
cGUpOwotICAgICAgICAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMocGFyc2VFeHRlbmRlZEF0dHJpYnV0ZXMoJG1ldGhvZEV4dGVuZGVkQXR0cmlidXRl
cykpOwotCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAgfCAgfC0gIE1ldGhvZDsgU1RBVElDPyBc
IiRpc1N0YXRpY1wiIFRZUEUgXCIkbWV0aG9kVHlwZVwiIE5BTUUgXCIkbWV0aG9kTmFtZVwiIEVY
Q0VQVElPTj8gXCIkbWV0aG9kRXhjZXB0aW9uXCIiIC4KLSAgICAgICAgICAgICAgICAgICAgZHVt
cEV4dGVuZGVkQXR0cmlidXRlcygiXG4gIHwgICAgICAgICAgICAgICIsICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpIC4gIlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0K
LSAgICAgICAgICAgICAgICAkbWV0aG9kRXhjZXB0aW9uID1+IHMvXHMrLy9nOwotICAgICAgICAg
ICAgICAgIEB7JG5ld0RhdGFOb2RlLT5yYWlzZXNFeGNlcHRpb25zfSA9IHNwbGl0KC8sLywgJG1l
dGhvZEV4Y2VwdGlvbik7Ci0KLSAgICAgICAgICAgICAgICBwYXJzZVBhcmFtZXRlcnMoJG5ld0Rh
dGFOb2RlLCAkbWV0aG9kU2lnbmF0dXJlKTsKLQotICAgICAgICAgICAgICAgIG15ICRhcnJheVJl
ZiA9ICRkYXRhTm9kZS0+ZnVuY3Rpb25zOwotICAgICAgICAgICAgICAgIHB1c2goQCRhcnJheVJl
ZiwgJG5ld0RhdGFOb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
JGxpbmUgPX4gLyRJRExTdHJ1Y3R1cmU6OmNvbnN0YW50U2VsZWN0b3IvOwotICAgICAgICAgICAg
ICAgIG15ICRjb25zdEV4dGVuZGVkQXR0cmlidXRlcyA9IChkZWZpbmVkKCQxKSA/ICQxIDogIiAi
KTsgY2hvcCgkY29uc3RFeHRlbmRlZEF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgICAgIG15ICRj
b25zdFR5cGUgPSAoZGVmaW5lZCgkMikgPyAkMiA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJj
ZTpcbiRsaW5lXG4pIikpOwotICAgICAgICAgICAgICAgIG15ICRjb25zdE5hbWUgPSAoZGVmaW5l
ZCgkMykgPyAkMyA6IGRpZSgiUGFyc2luZyBlcnJvciFcblNvdXJjZTpcbiRsaW5lXG4pIikpOwot
ICAgICAgICAgICAgICAgIG15ICRjb25zdFZhbHVlID0gKGRlZmluZWQoJDQpID8gJDQgOiBkaWUo
IlBhcnNpbmcgZXJyb3IhXG5Tb3VyY2U6XG4kbGluZVxuKSIpKTsKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRBdHRyaWJ1dGVSZXN0XzEvKSB7CisgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IG5ldyBkb21B
dHRyaWJ1dGUoKTsKKyAgICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKKyAgICAg
ICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOwor
ICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiYXR0cmlidXRlIiwgX19MSU5FX18pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25h
dHVyZShuZXcgZG9tU2lnbmF0dXJlKCkpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVy
ZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50
aWZpZXJUb2tlbik7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5uYW1lKCR0b2tl
bi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRnZXRSZWYgPSAkc2VsZi0+cGFyc2VHZXQoKTsKKyAg
ICAgICAgaWYgKGRlZmluZWQgJGdldFJlZikgeworICAgICAgICAgICAgcHVzaChAeyRuZXdEYXRh
Tm9kZS0+Z2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJlZi0+eyJnZXRyYWlzZXMifX0pOworICAg
ICAgICAgICAgcHVzaChAeyRuZXdEYXRhTm9kZS0+c2V0dGVyRXhjZXB0aW9uc30sIEB7JGdldFJl
Zi0+eyJzZXRyYWlzZXMifX0pOworICAgICAgICB9CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFz
c2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQogCi0gICAg
ICAgICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gbmV3IGRvbUNvbnN0YW50KCk7Ci0gICAgICAg
ICAgICAgICAgJG5ld0RhdGFOb2RlLT5uYW1lKCRjb25zdE5hbWUpOwotICAgICAgICAgICAgICAg
ICRuZXdEYXRhTm9kZS0+dHlwZSgkY29uc3RUeXBlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0
YU5vZGUtPnZhbHVlKCRjb25zdFZhbHVlKTsKLSAgICAgICAgICAgICAgICAkbmV3RGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcyhwYXJzZUV4dGVuZGVkQXR0cmlidXRlcygkY29uc3RFeHRlbmRl
ZEF0dHJpYnV0ZXMpKTsKK3N1YiBwYXJzZUluaGVyaXQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0
OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW5oZXJpdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICJpbmhlcml0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisgICAgcmV0dXJuIDA7Cit9CiAKLSAgICAgICAgICAgICAgICBteSAkYXJyYXlSZWYg
PSAkZGF0YU5vZGUtPmNvbnN0YW50czsKLSAgICAgICAgICAgICAgICBwdXNoKEAkYXJyYXlSZWYs
ICRuZXdEYXRhTm9kZSk7CitzdWIgcGFyc2VSZWFkT25seQoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJyZWFkb25seSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJyZWFkb25seSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorICAgIHJldHVybiAwOworfQogCi0gICAgICAgICAgICAgICAgcHJpbnQgIiAg
fCAgIHw+ICBDb25zdGFudDsgVFlQRSBcIiRjb25zdFR5cGVcIiBOQU1FIFwiJGNvbnN0TmFtZVwi
IFZBTFVFIFwiJGNvbnN0VmFsdWVcIlxuIiB1bmxlc3MgJGJlUXVpZXQ7Ci0gICAgICAgICAgICB9
CitzdWIgcGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9
ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3Bl
Y2lhbHNfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVNwZWNpYWxPcGVyYXRpb24o
JGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9w
ZXJhdGlvblJlc3RfMS8pIHsKKyAgICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VS
ZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlv
bk9ySXRlcmF0b3JSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBpZiAoZGVm
aW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUtPnR5
cGUoJHJldHVyblR5cGUpOwogICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KIAotICAgICAgICBwcmludCAiICB8LS0tLT4gSW50ZXJmYWNlOyBOQU1FIFwi
JGludGVyZmFjZU5hbWVcIiIgLgotICAgICAgICAgICAgZHVtcEV4dGVuZGVkQXR0cmlidXRlcygi
XG4gIHwgICAgICAgICAgICAgICAgICIsICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKSAu
ICJcbiB8LVxuIHxcbiIgdW5sZXNzICRiZVF1aWV0Oworc3ViIHBhcnNlU3BlY2lhbE9wZXJhdGlv
bgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCA9IHNoaWZ0OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYg
KCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNwZWNpYWxzXzEvKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZVNwZWNpYWwoKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlU3BlY2lhbHMoKTsKKyAgICAgICAg
bXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15ICRk
YXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlz
dCk7CisgICAgICAgIGlmIChkZWZpbmVkICgkZGF0YU5vZGUpKSB7CisgICAgICAgICAgICAkZGF0
YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuICRkYXRhTm9kZTsKICAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQogCi0jIEludGVybmFsIGhlbHBlcgotc3Vi
IERldGVybWluZVBhcnNlTW9kZQorc3ViIHBhcnNlU3BlY2lhbHMKIHsKLSAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7ICAKLSAgICBteSAkbGluZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0gc2hpZnQ7
CiAKLSAgICBteSAkbW9kZSA9IE1PREVfVU5ERUY7Ci0gICAgaWYgKCRfID1+IC9tb2R1bGUvKSB7
Ci0gICAgICAgICRtb2RlID0gTU9ERV9NT0RVTEU7Ci0gICAgfSBlbHNpZiAoJF8gPX4gL2ludGVy
ZmFjZS8pIHsKLSAgICAgICAgJG1vZGUgPSBNT0RFX0lOVEVSRkFDRTsKLSAgICB9IGVsc2lmICgk
XyA9fiAvZXhjZXB0aW9uLykgewotICAgICAgICAkbW9kZSA9IE1PREVfRVhDRVBUSU9OOworICAg
IHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U3BlY2lhbHNfMS8pIHsKKyAgICAgICAg
ICAgICRzZWxmLT5wYXJzZVNwZWNpYWwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxhc3Q7CisgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIFtdOworfQogCi0gICAgcmV0dXJu
ICRtb2RlOworc3ViIHBhcnNlU3BlY2lhbAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJnZXR0ZXIiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImdldHRlciI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNldHRlciIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuICJzZXR0ZXIiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImNyZWF0b3IiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiY3JlYXRvciIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJjcmVh
dG9yIjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkZWxldGVyIikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRlbGV0ZXIi
LCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiZGVsZXRlciI7CisgICAgfQorICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImxlZ2FjeWNhbGxlciIsIF9fTElORV9fKTsK
KyAgICAgICAgcmV0dXJuICJsZWdhY3ljYWxsZXIiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLSMgSW50ZXJu
YWwgaGVscGVyCi1zdWIgUHJvY2Vzc1NlY3Rpb24KK3N1YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0
b3JSZXN0CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAKLSAgICBpZiAoJHBhcnNlTW9k
ZSBlcSBNT0RFX01PRFVMRSkgewotICAgICAgICBkaWUgKCJUd28gbW9kdWxlcyBpbiBvbmUgZmls
ZSEgRmF0YWwgZXJyb3IhXG4iKSBpZiAoJGRvY3VtZW50IG5lIDApOwotICAgICAgICAkZG9jdW1l
bnQgPSBuZXcgaWRsRG9jdW1lbnQoKTsKLSAgICAgICAgJG9iamVjdC0+UGFyc2VNb2R1bGUoJGRv
Y3VtZW50KTsKLSAgICB9IGVsc2lmICgkcGFyc2VNb2RlIGVxIE1PREVfSU5URVJGQUNFIHx8ICRw
YXJzZU1vZGUgZXEgTU9ERV9FWENFUFRJT04pIHsKLSAgICAgICAgbXkgJG5vZGUgPSBuZXcgZG9t
Q2xhc3MoKTsKLSAgICAgICAgbXkgJHNlY3Rpb25OYW1lID0gJHBhcnNlTW9kZSBlcSBNT0RFX0lO
VEVSRkFDRSA/ICJpbnRlcmZhY2UiIDogImV4Y2VwdGlvbiI7Ci0gICAgICAgICRvYmplY3QtPlBh
cnNlSW50ZXJmYWNlKCRub2RlLCAkc2VjdGlvbk5hbWUpOwotICAgIAotICAgICAgICBkaWUgKCJO
byBtb2R1bGUgc3BlY2lmaWVkISBGYXRhbCBFcnJvciFcbiIpIGlmICgkZG9jdW1lbnQgZXEgMCk7
Ci0gICAgICAgIG15ICRhcnJheVJlZiA9ICRkb2N1bWVudC0+Y2xhc3NlczsKLSAgICAgICAgcHVz
aChAJGFycmF5UmVmLCAkbm9kZSk7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIml0ZXJhdG9yIikgeworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlSXRlcmF0b3JSZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qp
OwogICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRp
b25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0
VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CiAKLSAgICBAdGVt
cG9yYXJ5Q29udGVudCA9ICIiOworc3ViIHBhcnNlSXRlcmF0b3JSZXN0Cit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIml0ZXJhdG9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIml0ZXJhdG9yIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VP
cHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLTE7CitzdWIgcGFy
c2VPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3QKK3sKKyAgICBteSAkc2VsZiA9IHNo
aWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRPcHRpb25hbEl0ZXJhdG9ySW50ZXJmYWNlT3JPYmplY3RfMS8pIHsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZU9wdGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UoJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAib2JqZWN0IikgeworICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9iamVjdCIs
IF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU9w
dGlvbmFsSXRlcmF0b3JJbnRlcmZhY2UKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5FX18p
OworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRzZWxmLT5nZXRUb2tlbigpLCBJZGVu
dGlmaWVyVG9rZW4pOworICAgIH0KK30KKworc3ViIHBhcnNlT3BlcmF0aW9uUmVzdAoreworICAg
IG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0
OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50
eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAg
ICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgbXkgJG5hbWUg
PSAkc2VsZi0+cGFyc2VPcHRpb25hbElkZW50aWZpZXIoKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPm5hbWUoJG5hbWUpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCAkbmFtZSwgX19MSU5FX18pOworICAgICAgICBwdXNo
KEB7JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskc2VsZi0+cGFyc2VBcmd1bWVudExpc3Qo
KX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwg
IikiLCBfX0xJTkVfXyk7CisgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnJhaXNlc0V4Y2Vw
dGlvbnN9LCBAeyRzZWxmLT5wYXJzZVJhaXNlcygpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKKyAgICAgICAgJG5l
d0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRuZXdEYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitz
dWIgcGFyc2VPcHRpb25hbElkZW50aWZpZXIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4o
KTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuICIi
OworfQorCitzdWIgcGFyc2VBcmd1bWVudExpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0Owor
ICAgIG15IEBhcmd1bWVudHMgPSAoKTsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRBcmd1bWVudExpc3RfMS8pIHsKKyAgICAgICAgcHVzaChAYXJndW1l
bnRzLCAkc2VsZi0+cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgcHVzaChAYXJndW1lbnRzLCBA
eyRzZWxmLT5wYXJzZUFyZ3VtZW50cygpfSk7CisgICAgfQorICAgIHJldHVybiBcQGFyZ3VtZW50
czsKK30KKworc3ViIHBhcnNlQXJndW1lbnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSBAYXJndW1lbnRzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIs
IikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICIsIiwgX19MSU5FX18pOworICAgICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAkc2VsZi0+
cGFyc2VBcmd1bWVudCgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAYXJndW1lbnRzOworfQorCitzdWIgcGFyc2VB
cmd1bWVudAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+
bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8
ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEFyZ3VtZW50TGlzdF8xLykgeworICAgICAgICBteSAk
aW4gPSAkc2VsZi0+cGFyc2VJbigpOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgpOworICAgICAg
ICBteSAkYXJndW1lbnQgPSAkc2VsZi0+cGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVudCgk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgJGFyZ3VtZW50LT5kaXJlY3Rpb24oJHNl
bGYtPnBhcnNlSW4oKSk7CisgICAgICAgIHJldHVybiAkYXJndW1lbnQ7CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKKworICAgIG15
ICRwYXJhbURhdGFOb2RlID0gbmV3IGRvbVNpZ25hdHVyZSgpOworICAgICRwYXJhbURhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9w
dGlvbmFsIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIm9wdGlvbmFsIiwgX19MSU5FX18pOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5w
YXJzZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRhTm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0
ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9cPyQvKSB7CisgICAgICAgICAgICAkcGFyYW1E
YXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRw
YXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAgICAgICB9CisgICAgICAgICMgUmVtb3Zl
IGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/W10/IiAtPiAib2JqZWN0W10iLgorICAg
ICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlw
ZSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFt
ZSgpKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGVmYXVsdCgpOworICAgICAgICByZXR1cm4gJHBh
cmFtRGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgeworICAg
ICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKKyAgICAgICAgIyBkb21EYXRhTm9k
ZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KKyAgICAgICAgaWYgKCR0eXBlID1+IC9cPyQv
KSB7CisgICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOworICAg
ICAgICB9CisgICAgICAgICMgUmVtb3ZlIGFsbCAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/
W10/IiAtPiAib2JqZWN0W10iLgorICAgICAgICAkdHlwZSA9fiBzL1w/Ly9nOworICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+dHlwZSgkdHlwZSk7CisgICAgICAgICRzZWxmLT5wYXJzZUVsbGlwc2lz
KCk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFt
ZSgpKTsKKyAgICAgICAgcmV0dXJuICRwYXJhbURhdGFOb2RlOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUFyZ3VtZW50TmFtZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4
dEFyZ3VtZW50TmFtZV8xLykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQXJndW1lbnRO
YW1lS2V5d29yZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVy
VG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAg
IH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7Cit9CisKK3N1YiBwYXJzZUVsbGlwc2lzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsK
KyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIi4uLiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIuLi4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAg
ICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTWVtYmVyCit7CisgICAgbXkgJHNl
bGYgPSBzaGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ29uc3QoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNlcHRpb25GaWVsZF8xLykgewor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uRmllbGQoJGV4dGVuZGVkQXR0cmli
dXRlTGlzdCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uRmllbGQKK3sKKyAg
ICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlm
dDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeGNl
cHRpb25GaWVsZF8xLykgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmli
dXRlKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgicmVhZG9ubHkgYXR0cmlidXRlIik7
CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7Cisg
ICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7
CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJG5ld0Rh
dGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoJHRva2VuLT52YWx1ZSgpKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAg
ICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICByZXR1cm4gJG5ld0RhdGFOb2RlOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CisKK3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiWyIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUV4dGVuZGVkQXR0cmlidXRlTGlzdCgpOworICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK3N1
YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSB7fTsKKyAgICAgICAgbXkgJGF0dHIgPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZSgp
OworICAgICAgICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGV4
dGVuZGVkQXR0cmlidXRlTGlzdC0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQor
ICAgICAgICAkYXR0ciA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlcygpOworICAgICAg
ICBmb3IgbXkgJGtleSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdC0+eyRrZXl9ID0gJGF0dHItPnska2V5fTsKKyAgICAgICAgfQorICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7
CisgICAgICAgIHJldHVybiAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0OworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHt9OworCisgICAgd2hpbGUgKDEpIHsKKyAg
ICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiLCIpIHsKKyAgICAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiLCIsIF9fTElORV9fKTsKKyAgICAgICAgICAgIG15ICRhdHRyID0g
JHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyKCk7CisgICAgICAgICAgICBmb3IgbXkgJGtl
eSAoa2V5cyAleyRhdHRyfSkgeworICAgICAgICAgICAgICAgICRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QtPnska2V5fSA9ICRhdHRyLT57JGtleX07CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0OworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZQorewor
ICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7
CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgbXkgJHNjb3BlZE5hbWUgPSAkc2VsZi0+cGFyc2VTY29w
ZWROYW1lKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJl
c3QoJHNjb3BlZE5hbWUpOworICAgIH0KKyAgICAjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFNw
ZWMgZG9lc24nIGFsbG93ICJbXSIuIEJ1dCBXZWJLaXQgcmVxdWlyZXMuCisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICddJykgeworICAgICAgICByZXR1cm4ge307CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9
PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICBt
eSAkc2NvcGVkTmFtZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkc2NvcGVkTmFtZSk7CisgICAgfQor
ICAgIHJldHVybiB7fTsKK30KKworc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0Cit7Cisg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgIG15ICRhdHRy
cyA9IHt9OworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBfX0xJTkVfXyk7CisgICAgICAgICRhdHRycy0+eyRuYW1l
fSA9ICRzZWxmLT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
biAkYXR0cnM7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI9IiwgX19MSU5F
X18pOworICAgICAgICAkYXR0cnMtPnskbmFtZX0gPSAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QyKCk7CisgICAgICAgIHJldHVybiAkYXR0cnM7CisgICAgfQorCisgICAgaWYgKCRu
YW1lIGVxICJDb25zdHJ1Y3RvciIpIHsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gW107Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgJGF0dHJzLT57JG5hbWV9ID0gIlZBTFVFX0lTX01JU1NJTkci
OworICAgIH0KKyAgICByZXR1cm4gJGF0dHJzOworfQorCitzdWIgcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QyCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4g
fHwgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICBteSAkc2NvcGVkTmFtZSA9ICRz
ZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVu
ZGVkQXR0cmlidXRlUmVzdDMoJHNjb3BlZE5hbWUpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJbnRlZ2VyVG9rZW4pIHsKKyAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCk7CisgICAgfQorICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKwor
c3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MworeworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiJiIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICImIiwgX19MSU5FX18pOworICAgICAg
ICBteSAkcmlnaHRWYWx1ZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgcmV0
dXJuICRuYW1lIC4gIiYiIC4gJHJpZ2h0VmFsdWU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAifCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ8IiwgX19MSU5FX18pOworICAgICAgICBteSAkcmlnaHRWYWx1ZSA9ICRzZWxm
LT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gInwiIC4gJHJpZ2h0
VmFsdWU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAg
bXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICIoIiwgX19MSU5FX18pOworICAgICAgICAkYXR0ci0+eyRuYW1lfSA9ICRzZWxm
LT5wYXJzZUFyZ3VtZW50TGlzdCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkYXR0cjsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dEV4dGVuZGVkQXR0cmlidXRlUmVzdDNfMS8pIHsKKyAgICAgICAg
bXkgQG5hbWVzID0gKCk7CisgICAgICAgIHB1c2goQG5hbWVzLCAkbmFtZSk7CisgICAgICAgIHB1
c2goQG5hbWVzLCBAeyRzZWxmLT5wYXJzZVNjb3BlZE5hbWVMaXN0Tm9Db21tYSgpfSk7CisgICAg
ICAgIHJldHVybiBqb2luKCcgJywgQG5hbWVzKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZVNjb3BlZE5hbWVM
aXN0Tm9Db21tYQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7
CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKKyAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+cGFy
c2VTY29wZWROYW1lKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gXEBuYW1lczsKK30KKworc3ViIHBhcnNlQXJndW1l
bnROYW1lS2V5d29yZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhdHRyaWJ1dGUi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgcmV0dXJuICRz
ZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgImNvbnN0IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY3JlYXRvciIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImRlbGV0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZW51bSIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
ImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgp
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsKKyAgICAgICAg
cmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQt
PnZhbHVlKCkgZXEgImltcGxlbWVudHMiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbmhlcml0
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNlIikgeworICAgICAgICByZXR1cm4g
JHNlbGYtPmdldFRva2VuKCktPnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAibGVnYWN5Y2FsbGVyIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPmdldFRva2VuKCkt
PnZhbHVlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAicGFydGlhbCIpIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tlbigpLT52YWx1ZSgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJzZXR0ZXIiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzdGF0aWMiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52
YWx1ZSgpIGVxICJzdHJpbmdpZmllciIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5nZXRUb2tl
bigpLT52YWx1ZSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYi
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ1bnJlc3RyaWN0ZWQiKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VU
eXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0
VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CisgICAgICAgICRzZWxm
LT5wYXJzZVVuaW9uVHlwZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFR5cGVfMS8pIHsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZVNpbmdsZVR5cGUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VT
aW5nbGVUeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBfX0xJ
TkVfXyk7CisgICAgICAgIHJldHVybiAiYW55IiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXhTdGFy
dGluZ1dpdGhBcnJheSgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8xLykgeworICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZVVuaW9uVHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgewor
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIigiLCBf
X0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIm9yIiwgX19MSU5F
X18pOworICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgJHNl
bGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGUKK3sKKyAgICBteSAkc2Vs
ZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25UeXBlKCk7
CisgICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBfX0xJTkVfXyk7CisgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElO
RV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJdIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmdsZVR5cGVfMS8pIHsKKyAgICAgICAg
JHNlbGYtPnBhcnNlTm9uQW55VHlwZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICRz
ZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30K
Kworc3ViIHBhcnNlVW5pb25NZW1iZXJUeXBlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJvciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJvciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJU
eXBlKCk7CisgICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICB9Cit9
CisKK3N1YiBwYXJzZU5vbkFueVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHROb25BbnlUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQcmltaXRp
dmVUeXBlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAiQnl0ZVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJCeXRlU3RyaW5nIiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gIkJ5dGVTdHJpbmciIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0K
KyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJET01TdHJpbmciLCBfX0xJTkVf
Xyk7CisgICAgICAgIHJldHVybiAiRE9NU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIpIHsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXF1ZW5jZSIs
IF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICI8IiwgX19MSU5FX18pOworICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5
cGUoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI+IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gInNlcXVlbmNlPCIgLiAkdHlwZSAuICI+
IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICJvYmplY3QiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAib2JqZWN0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIm9iamVjdCIgLiAk
c2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiRGF0ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJEYXRlIiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICBteSAkbmFt
ZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gJHNl
bGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUNvbnN0VHlw
ZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsK
KyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJz
ZU51bGwoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2Vu
KSB7CisgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1
cm4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZVByaW1pdGl2ZVR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAv
JG5leHRQcmltaXRpdmVUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnNp
Z25lZEludGVnZXJUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5l
eHRQcmltaXRpdmVUeXBlXzIvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VVbnJlc3Ry
aWN0ZWRGbG9hdFR5cGUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJib29s
ZWFuIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgImJvb2xlYW4iLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CisgICAg
fQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiYnl0ZSIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJieXRlIiwgX19MSU5FX18pOworICAg
ICAgICByZXR1cm4gImJ5dGUiOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9j
dGV0IikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIm9jdGV0IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIm9jdGV0IjsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OworfQorCitzdWIgcGFyc2VVbnJlc3RyaWN0ZWRGbG9hdFR5cGUKK3sKKyAgICBteSAkc2VsZiA9
IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4
dC0+dmFsdWUoKSBlcSAidW5yZXN0cmljdGVkIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInVucmVzdHJpY3RlZCIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuICJ1bnJlc3RyaWN0ZWQiIC4gJHNlbGYtPnBhcnNlRmxvYXRUeXBlKCk7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRVbnJlc3RyaWN0ZWRGbG9hdFR5
cGVfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUZsb2F0VHlwZSgpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUZsb2F0VHlwZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJmbG9hdCIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJmbG9hdCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJmbG9hdCI7Cisg
ICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZG91YmxlIikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRvdWJsZSIsIF9fTElORV9f
KTsKKyAgICAgICAgcmV0dXJuICJkb3VibGUiOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVVu
c2lnbmVkSW50ZWdlclR5cGUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidW5zaWdu
ZWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAidW5zaWduZWQiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAidW5zaWduZWQgIiAuICRz
ZWxmLT5wYXJzZUludGVnZXJUeXBlKCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9
fiAvJG5leHRVbnNpZ25lZEludGVnZXJUeXBlXzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VJbnRlZ2VyVHlwZSgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZUludGVnZXJUeXBl
Cit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9r
ZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNob3J0IikgeworICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNob3J0IiwgX19MSU5FX18p
OworICAgICAgICByZXR1cm4gInNob3J0IjsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJpbnQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiaW50IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gImludCI7CisgICAgfQor
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAibG9uZyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJsb25nIiwgX19MSU5FX18pOworICAgICAg
ICBpZiAoJHNlbGYtPnBhcnNlT3B0aW9uYWxMb25nKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAi
bG9uZyBsb25nIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gImxvbmciOworICAgIH0KKyAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
Cit9CisKK3N1YiBwYXJzZU9wdGlvbmFsTG9uZworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJsb25nIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgImxvbmciLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAg
ICByZXR1cm4gMDsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeAoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJbIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIlsiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiXSIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJu
ICJbXSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgfQorICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiPyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI/IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm4gIj8iIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5KCk7CisgICAgfQorICAgIHJldHVybiAi
IjsKK30KKworc3ViIHBhcnNlVHlwZVN1ZmZpeFN0YXJ0aW5nV2l0aEFycmF5Cit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgIlsiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJdIiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gIltdIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICB9CisgICAgcmV0
dXJuICIiOworfQorCitzdWIgcGFyc2VOdWxsCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIj8iKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiPyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICI/IjsKKyAgICB9CisgICAgcmV0
dXJuICIiOworfQorCitzdWIgcGFyc2VSZXR1cm5UeXBlCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgInZvaWQiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAidm9pZCIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICJ2b2lkIjsK
KyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0
LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VUeXBlKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlR2V0Cit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICBteSAkYXR0ciA9
IHt9OworICAgICAgICAkc2VsZi0+cGFyc2VJbmhlcml0c0dldHRlcigpOworICAgICAgICAkYXR0
ci0+eyJpbmhlcml0cyJ9ID0gMTsKKyAgICAgICAgJGF0dHItPnsiZ2V0cmFpc2VzIn0gPSBbXTsK
KyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VTZXRSYWlzZXMoKTsK
KyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4g
LyRuZXh0R2V0XzEvKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VTZXRHZXRSYWlzZXMo
KTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZUluaGVyaXRzR2V0dGVyCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImluaGVyaXRzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImluaGVyaXRzIiwgX19MSU5FX18pOworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImdldHRlciIsIF9fTElO
RV9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3Rl
ZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZVNldEdldFJh
aXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAk
YXR0ci0+eyJpbmhlcml0cyJ9ID0gMDsKKworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tl
bigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAic2V0dGVyIikgeworICAgICAgICAkYXR0
ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZVNldFJhaXNlcygpOworICAgICAgICAkYXR0
ci0+eyJnZXRyYWlzZXMifSA9ICRzZWxmLT5wYXJzZUdldFJhaXNlczIoKTsKKyAgICAgICAgcmV0
dXJuICRhdHRyOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImdldHRlciIpIHsK
KyAgICAgICAgJGF0dHItPnsic2V0cmFpc2VzIn0gPSBbXTsKKyAgICAgICAgJGF0dHItPnsiZ2V0
cmFpc2VzIn0gPSAkc2VsZi0+cGFyc2VHZXRSYWlzZXMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRy
OworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2V0R2V0UmFpc2VzMl8x
LykgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2V0R2V0UmFpc2VzMigpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZUdldFJhaXNlcworeworICAgIG15ICRzZWxmID0gc2hpZnQ7Cisg
ICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgImdldHRlciIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJnZXR0ZXIiLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAicmFpc2VzIiwgX19MSU5FX18pOworICAgICAg
ICByZXR1cm4gJHNlbGYtPnBhcnNlRXhjZXB0aW9uTGlzdCgpOworICAgIH0KKyAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1
YiBwYXJzZUdldFJhaXNlczIKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworCisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikg
eworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwi
LCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiZ2V0dGVyIiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOwor
fQorCitzdWIgcGFyc2VTZXRSYWlzZXMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15
ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
c2V0dGVyIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgInNldHRlciIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNl
U2V0R2V0UmFpc2VzMgoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNldEdl
dFJhaXNlczJfMS8pIHsKKyAgICAgICAgbXkgJGF0dHIgPSB7fTsKKyAgICAgICAgJGF0dHItPnsi
aW5oZXJpdHMifSA9IDA7CisgICAgICAgICRhdHRyLT57ImdldHJhaXNlcyJ9ID0gJHNlbGYtPnBh
cnNlR2V0UmFpc2VzMygpOworICAgICAgICAkYXR0ci0+eyJzZXRyYWlzZXMifSA9ICRzZWxmLT5w
YXJzZVNldFJhaXNlczMoKTsKKyAgICAgICAgcmV0dXJuICRhdHRyOworICAgIH0KKyAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisK
K3N1YiBwYXJzZUdldFJhaXNlczMKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRu
ZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZ2V0
cmFpc2VzIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImdldHJhaXNlcyIsIF9fTElORV9fKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUV4Y2VwdGlvbkxpc3QoKTsKKyAgICB9CisgICAgcmV0dXJuIFtdOworfQorCitzdWIgcGFyc2VT
ZXRSYWlzZXMzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxm
LT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNldHJhaXNlcyIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJzZXRy
YWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25M
aXN0KCk7CisgICAgfQorICAgIHJldHVybiBbXTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uTGlz
dAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRv
a2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgeworICAgICAgICBteSBAZXhj
ZXB0aW9ucyA9ICgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIigiLCBfX0xJTkVfXyk7CisgICAgICAgIHB1c2goQGV4Y2VwdGlvbnMsIEB7JHNl
bGYtPnBhcnNlU2NvcGVkTmFtZUxpc3QoKX0pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5W
YWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiBc
QGV4Y2VwdGlvbnM7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5l
eHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlUmFpc2VzCit7CisgICAgbXkg
JHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInJhaXNlcyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJyYWlzZXMiLCBfX0xJTkVfXyk7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VFeGNlcHRpb25MaXN0KCk7CisgICAgfQorICAgIHJldHVybiBb
XTsKK30KKworc3ViIHBhcnNlRGVmaW5pdGlvbk9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7
CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1
ZSgpID1+IC8kbmV4dERlZmluaXRpb25fMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUNhbGxiYWNrT3JJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJwYXJ0aWFsIikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbCh7fSk7
CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsKKyAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnlPbGQoKTsKKyAgICB9CisgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICJleGNlcHRpb24iKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeGNlcHRpb25PbGQoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVt
IikgeworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRW51bU9sZCgpOworICAgIH0KKyAgICBp
ZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+
cGFyc2VUeXBlZGVmKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtb2R1
bGUiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VNb2R1bGUoKTsKKyAgICB9CisgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVx
ICI6OiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQo
e30pOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1
ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZU1vZHVsZQoreworICAgIG15ICRzZWxmID0g
c2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0
LT52YWx1ZSgpIGVxICJtb2R1bGUiKSB7CisgICAgICAgIG15ICRkb2N1bWVudCA9IG5ldyBpZGxE
b2N1bWVudCgpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIm1vZHVsZSIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
TGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAg
ICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJTkVfXyk7CisgICAgICAg
ICRkb2N1bWVudC0+bW9kdWxlKCR0b2tlbi0+dmFsdWUoKSk7CisgICAgICAgIG15ICRkZWZpbml0
aW9ucyA9ICRzZWxmLT5wYXJzZURlZmluaXRpb25zKCk7CisgICAgICAgIHB1c2goQHskZG9jdW1l
bnQtPmNsYXNzZXN9LCBAeyRkZWZpbml0aW9uc30pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CisgICAgICAgICRzZWxm
LT5wYXJzZU9wdGlvbmFsU2VtaWNvbG9uKCk7CisgICAgICAgIHJldHVybiAkZG9jdW1lbnQ7Cisg
ICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9f
TElORV9fKTsKK30KKworc3ViIHBhcnNlQ2FsbGJhY2tPckludGVyZmFjZU9sZAoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJjYWxsYmFjayIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjYWxsYmFjayIsIF9fTElORV9fKTsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUNhbGxiYWNrUmVzdE9ySW50ZXJmYWNlKHt9KTsKKyAg
ICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJpbnRlcmZhY2UiKSB7CisgICAgICAgIHJl
dHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VPbGQoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2Vy
dFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFy
c2VJbnRlcmZhY2VPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW50ZXJmYWNl
IikgeworICAgICAgICBteSAkZGF0YU5vZGUgPSBuZXcgZG9tQ2xhc3MoKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJ
TkVfXyk7CisgICAgICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgJGRhdGFOb2RlLT5uYW1lKCR0b2tlbi0+dmFsdWUo
KSk7CisgICAgICAgICRkYXRhTm9kZS0+aXNFeGNlcHRpb24oMCk7CisgICAgICAgIHB1c2goQHsk
ZGF0YU5vZGUtPnBhcmVudHN9LCBAeyRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCl9KTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ7IiwgX19MSU5F
X18pOworICAgICAgICBteSAkaW50ZXJmYWNlTWVtYmVycyA9ICRzZWxmLT5wYXJzZUludGVyZmFj
ZU1lbWJlcnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIGFwcGx5TWVtYmVyTGlz
dCgkZGF0YU5vZGUsICRpbnRlcmZhY2VNZW1iZXJzKTsKKyAgICAgICAgYXBwbHlFeHRlbmRlZEF0
dHJpYnV0ZUxpc3QoJGRhdGFOb2RlLCAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
cmV0dXJuICRkYXRhTm9kZTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VJbnRlcmZhY2VNZW1i
ZXJPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7CisgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VDb25zdCh7fSk7CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRJbnRlcmZh
Y2VNZW1iZXJPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9y
T3BlcmF0aW9uT3JJdGVyYXRvck9sZCgpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Cit9CisKK3N1YiBwYXJzZURpY3Rp
b25hcnlPbGQKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiZGljdGlvbmFyeSIpIHsK
KyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0
aW9uYXJ5IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0
ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYt
PmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRzZWxmLT5wYXJzZUluaGVy
aXRhbmNlKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJl
cnMoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJ9IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+
Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwor
fQorCitzdWIgcGFyc2VEaWN0aW9uYXJ5TWVtYmVyT2xkCit7CisgICAgbXkgJHNlbGYgPSBzaGlm
dDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0
aW9uRmllbGRfMS8pIHsKKyAgICAgICAgJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkc2Vs
Zi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7Cisg
ICAgICAgICRzZWxmLT5wYXJzZURlZmF1bHQoKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRXhjZXB0aW9uT2xkCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgImV4Y2VwdGlvbiIpIHsKKyAgICAgICAgbXkgJGRhdGFOb2RlID0gbmV3
IGRvbUNsYXNzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiZXhjZXB0aW9uIiwgX19MSU5FX18pOworICAgICAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVMaXN0QWxsb3dFbXB0eSgp
OworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAgICAgICRkYXRh
Tm9kZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZGF0YU5vZGUtPmlzRXhjZXB0
aW9uKDEpOworICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSwgQHskc2VsZi0+cGFy
c2VJbmhlcml0YW5jZSgpfSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvbk1lbWJl
cnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNZW1iZXJzKCk7CisgICAgICAgICMkc2VsZi0+cGFy
c2VFeGNlcHRpb25NZW1iZXJzKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICBhcHBs
eU1lbWJlckxpc3QoJGRhdGFOb2RlLCAkZXhjZXB0aW9uTWVtYmVycyk7CisgICAgICAgIGFwcGx5
RXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KCRkYXRhTm9kZSwgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4
cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlRW51
bU9sZAoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJlbnVtIikgeworICAgICAgICAk
c2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImVudW0iLCBfX0xJTkVf
Xyk7CisgICAgICAgICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHko
KTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRl
bnRpZmllclRva2VuKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdl
dFRva2VuKCksICJ7IiwgX19MSU5FX18pOworICAgICAgICAkc2VsZi0+cGFyc2VFbnVtVmFsdWVM
aXN0KCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
ICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsK
K30KKworc3ViIHBhcnNlQXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yT2xkCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcmlhbGl6ZXIiKSB7CisgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTZXJpYWxpemVyKHt9KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgp
ID1+IC8kbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xLykgeworICAgICAgICBt
eSAkcXVhbGlmaWVyID0gJHNlbGYtPnBhcnNlUXVhbGlmaWVyKCk7CisgICAgICAgIG15ICRkYXRh
Tm9kZSA9ICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdE9sZCgpOworICAgICAg
ICBpZiAoZGVmaW5lZCAoJGRhdGFOb2RlKSAmJiAkcXVhbGlmaWVyIGVxICJzdGF0aWMiKSB7Cisg
ICAgICAgICAgICAkZGF0YU5vZGUtPmlzU3RhdGljKDEpOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiAkZGF0YU5vZGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRB
dHRyaWJ1dGVPbGRfMS8pIHsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZU9s
ZCgpOworICAgIH0KKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwg
JG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIv
KSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VPcGVyYXRpb25Pckl0ZXJhdG9yKHt9KTsK
KyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RPbGQKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVSZXN0XzEvKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBdHRyaWJ1dGVSZXN0T2xkKCk7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOyIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMS8pIHsKKyAgICAg
ICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CisgICAgICAgIG15
ICRkYXRhTm9kZSA9ICRzZWxmLT5wYXJzZU9wZXJhdGlvblJlc3Qoe30pOworICAgICAgICBpZiAo
ZGVmaW5lZCAoJGRhdGFOb2RlKSkgeworICAgICAgICAgICAgJGRhdGFOb2RlLT5zaWduYXR1cmUt
PnR5cGUoJHJldHVyblR5cGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAkZGF0YU5vZGU7
CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCks
IF9fTElORV9fKTsKK30KKworc3ViIHBhcnNlQXR0cmlidXRlT2xkCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlT2xkXzEvKSB7CisgICAgICAgICRzZWxmLT5w
YXJzZUluaGVyaXQoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUF0dHJpYnV0ZVJlc3RP
bGQoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFs
dWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0T2xkCit7CisgICAg
bXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0QXR0cmlidXRlUmVzdF8xLykgeworICAgICAg
ICBteSAkbmV3RGF0YU5vZGUgPSBuZXcgZG9tQXR0cmlidXRlKCk7CisgICAgICAgIGlmICgkc2Vs
Zi0+cGFyc2VSZWFkT25seSgpKSB7CisgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoInJl
YWRvbmx5IGF0dHJpYnV0ZSIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG5ld0Rh
dGFOb2RlLT50eXBlKCJhdHRyaWJ1dGUiKTsKKyAgICAgICAgfQorICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIsIF9fTElORV9fKTsK
KyAgICAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9ICRzZWxmLT5wYXJzZUV4dGVuZGVk
QXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PnR5cGUoJHNlbGYtPnBhcnNlVHlwZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAg
bXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tl
blR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNp
Z25hdHVyZS0+bmFtZSgkdG9rZW4tPnZhbHVlKCkpOworICAgICAgICBteSAkZ2V0UmVmID0gJHNl
bGYtPnBhcnNlR2V0KCk7CisgICAgICAgIGlmIChkZWZpbmVkICRnZXRSZWYpIHsKKyAgICAgICAg
ICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPmdldHRlckV4Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsi
Z2V0cmFpc2VzIn19KTsKKyAgICAgICAgICAgIHB1c2goQHskbmV3RGF0YU5vZGUtPnNldHRlckV4
Y2VwdGlvbnN9LCBAeyRnZXRSZWYtPnsic2V0cmFpc2VzIn19KTsKKyAgICAgICAgfQorICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjsiLCBfX0xJTkVf
Xyk7CisgICAgICAgIHJldHVybiAkbmV3RGF0YU5vZGU7CisgICAgfQorICAgICRzZWxmLT5hc3Nl
cnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKK30KKworc3ViIHBh
cnNlSW4KK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiaW4iKSB7CisgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW4iLCBfX0xJTkVfXyk7
CisgICAgICAgIHJldHVybiAiaW4iOworICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBw
YXJzZU9wdGlvbmFsU2VtaWNvbG9uCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjsi
KSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
OyIsIF9fTElORV9fKTsKKyAgICB9Cit9CisKK3N1YiBwYXJzZVNjb3BlZE5hbWUKK3sKKyAgICBt
eSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VBYnNvbHV0ZVNjb3BlZE5hbWUoKTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VSZWxhdGl2ZVNj
b3BlZE5hbWUoKTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSk7Cit9CisKK3N1YiBwYXJzZUFic29sdXRlU2NvcGVkTmFtZQoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6OiIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2Vs
Zi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElk
ZW50aWZpZXJUb2tlbik7CisgICAgICAgIHJldHVybiAiOjoiIC4gJHRva2VuLT52YWx1ZSgpIC4g
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZVBhcnRzKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VSZWxhdGl2ZVNj
b3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYt
Pm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikg
eworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJu
ICR0b2tlbi0+dmFsdWUoKSAuICRzZWxmLT5wYXJzZVNjb3BlZE5hbWVQYXJ0cygpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKwor
c3ViIHBhcnNlU2NvcGVkTmFtZVBhcnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBt
eSBAbmFtZXMgPSAoKTsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjo6Iikgewor
ICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6
OiIpOworICAgICAgICAgICAgcHVzaChAbmFtZXMsICI6OiIpOworICAgICAgICAgICAgbXkgJHRv
a2VuID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCR0b2tlbiwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQG5hbWVzLCAk
dG9rZW4tPnZhbHVlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gam9pbigiIiwgQG5hbWVzKTsKK30KKworc3ViIHBh
cnNlU2NvcGVkTmFtZUxpc3QKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZp
ZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAgIG15IEBuYW1lcyA9
ICgpOworICAgICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAg
ICAgICAgcHVzaChAbmFtZXMsIEB7JHNlbGYtPnBhcnNlU2NvcGVkTmFtZXMoKX0pOworICAgICAg
ICByZXR1cm4gXEBuYW1lczsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tl
bigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCitzdWIgcGFyc2VTY29wZWROYW1lcwor
eworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGls
ZSAoMSkgeworICAgICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBuYW1l
cywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFxAbmFtZXM7Cit9CisKK3N1
YiBhcHBseU1lbWJlckxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
bWVtYmVycyA9IHNoaWZ0OworCisgICAgZm9yIG15ICRpdGVtIChAeyRtZW1iZXJzfSkgeworICAg
ICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tQXR0cmlidXRlIikgeworICAgICAgICAgICAgcHVz
aChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpdGVtKTsKKyAgICAgICAgICAgIG5leHQ7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKHJlZigkaXRlbSkgZXEgImRvbUNvbnN0YW50IikgeworICAg
ICAgICAgICAgcHVzaChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSwgJGl0ZW0pOworICAgICAgICAg
ICAgbmV4dDsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVmKCRpdGVtKSBlcSAiZG9tRnVuY3Rp
b24iKSB7CisgICAgICAgICAgICBwdXNoKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9LCAkaXRlbSk7
CisgICAgICAgICAgICBuZXh0OworICAgICAgICB9CisgICAgfQorfQorCitzdWIgYXBwbHlFeHRl
bmRlZEF0dHJpYnV0ZUxpc3QKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICBpZiAoZGVmaW5lZCAkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgbXkgJG5ld0RhdGFO
b2RlID0gbmV3IGRvbUZ1bmN0aW9uKCk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJl
KG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5u
YW1lKCJDb25zdHJ1Y3RvciIpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgICAgICBwdXNoKEB7
JG5ld0RhdGFOb2RlLT5wYXJhbWV0ZXJzfSwgQHskZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0LT57IkNv
bnN0cnVjdG9yIn19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJDb25zdHJ1
Y3RvciJ9ID0gIlZBTFVFX0lTX01JU1NJTkciOworICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVj
dG9yKCRuZXdEYXRhTm9kZSk7CisgICAgfSBlbHNpZiAoZGVmaW5lZCAkZXh0ZW5kZWRBdHRyaWJ1
dGVMaXN0LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgeworICAgICAgICBteSAkbmV3RGF0YU5vZGUg
PSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUobmV3
IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUo
Ik5hbWVkQ29uc3RydWN0b3IiKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgbXkgJWF0
dHJpYnV0ZXMgPSAleyRleHRlbmRlZEF0dHJpYnV0ZUxpc3QtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9
fTsKKyAgICAgICAgbXkgQGF0dHJpYnV0ZUtleXMgPSBrZXlzICglYXR0cmlidXRlcyk7CisgICAg
ICAgIG15ICRjb25zdHJ1Y3Rvck5hbWUgPSAkYXR0cmlidXRlS2V5c1swXTsKKyAgICAgICAgcHVz
aChAeyRuZXdEYXRhTm9kZS0+cGFyYW1ldGVyc30sIEB7JGF0dHJpYnV0ZXN7JGNvbnN0cnVjdG9y
TmFtZX19KTsKKyAgICAgICAgJGV4dGVuZGVkQXR0cmlidXRlTGlzdC0+eyJOYW1lZENvbnN0cnVj
dG9yIn0gPSAkY29uc3RydWN0b3JOYW1lOworICAgICAgICAkZGF0YU5vZGUtPmNvbnN0cnVjdG9y
KCRuZXdEYXRhTm9kZSk7CisgICAgfQorICAgICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworfQorCisxOworCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApp
bmRleCAwY2Y2NzY1OTljNjNiZjEyNWMxZDQ5YmNhYTBjODMzYzg1MzE4MTNjLi41MzE4MWQ0YTkw
NTIzZjI1NGM4MjVlNTY5YzdhZmQwODg4NjhiOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKQEAg
LTE1MywyMCArMTUzLDIwIEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0VW5zaWduZWRTaG9ydEF0
dHIodW5zaWduZWQgc2hvcnQgbmV3VW5zaWduZWRTaG9ydEF0dHIpCiAgICAgaW1wbCgpLT5zZXRV
bnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLWxvbmcgbG9uZyBX
ZWJET01UZXN0T2JqOjpBdHRyKCkgY29uc3QKK2ludCBXZWJET01UZXN0T2JqOjpsb25nQXR0cigp
IGNvbnN0CiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0
dXJuIGltcGwoKS0+YXR0cigpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdBdHRyKCk7CiB9CiAK
LXZvaWQgV2ViRE9NVGVzdE9iajo6c2V0QXR0cihsb25nIGxvbmcgbmV3QXR0cikKK3ZvaWQgV2Vi
RE9NVGVzdE9iajo6c2V0TG9uZ0F0dHIoaW50IG5ld0xvbmdBdHRyKQogewogICAgIGlmICghaW1w
bCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBsKCktPnNldEF0dHIobmV3QXR0cik7Cisg
ICAgaW1wbCgpLT5zZXRMb25nQXR0cihuZXdMb25nQXR0cik7CiB9CiAKIGxvbmcgbG9uZyBXZWJE
T01UZXN0T2JqOjpsb25nTG9uZ0F0dHIoKSBjb25zdApAQCAtNDI1LDkgKzQyNSw3IEBAIHZvaWQg
V2ViRE9NVGVzdE9iajo6c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oaW50IG5ld0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKQogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsKCktPnNldEF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uLCBlYyk7Ci0gICAgd2Vi
RE9NUmFpc2VFcnJvcihzdGF0aWNfY2FzdDxXZWJET01FeGNlcHRpb25Db2RlPihlYykpOworICAg
IGltcGwoKS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24pOwogfQogCiBpbnQgV2ViRE9NVGVzdE9iajo6YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24o
KSBjb25zdApAQCAtNDY0LDkgKzQ2Miw3IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6c2V0U3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oY29uc3QgV2ViRE9NU3RyaW5nJiBuZXdTdHJpCiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIGltcGwoKS0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
bmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24sIGVjKTsKLSAgICB3ZWJET01SYWlzZUVy
cm9yKHN0YXRpY19jYXN0PFdlYkRPTUV4Y2VwdGlvbkNvZGU+KGVjKSk7CisgICAgaW1wbCgpLT5z
ZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4
Y2VwdGlvbik7CiB9CiAKIFdlYkRPTVN0cmluZyBXZWJET01UZXN0T2JqOjpzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbigpIGNvbnN0CkBAIC02NzcsMjggKzY3MywyOCBAQCB2b2lkIFdlYkRP
TVRlc3RPYmo6OnZvaWRNZXRob2QoKQogICAgIGltcGwoKS0+dm9pZE1ldGhvZCgpOwogfQogCi12
b2lkIFdlYkRPTVRlc3RPYmo6OnZvaWRNZXRob2RXaXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25z
dCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJnKQordm9p
ZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdl
YkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpCiB7CiAgICAg
aWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGltcGwoKS0+dm9pZE1ldGhvZFdp
dGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CisgICAgaW1wbCgpLT52b2lk
TWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7CiB9CiAK
LWxvbmcgbG9uZyBXZWJET01UZXN0T2JqOjpNZXRob2QoKQoraW50IFdlYkRPTVRlc3RPYmo6Omxv
bmdNZXRob2QoKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IHJldHVybiBpbXBsKCktPm1ldGhvZCgpOworICAgIHJldHVybiBpbXBsKCktPmxvbmdNZXRob2Qo
KTsKIH0KIAotbG9uZyBsb25nIFdlYkRPTVRlc3RPYmo6Ok1ldGhvZFdpdGhBcmdzKGxvbmcgbG9u
ZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBv
YmpBcmcpCitpbnQgV2ViRE9NVGVzdE9iajo6bG9uZ01ldGhvZFdpdGhBcmdzKGludCBsb25nQXJn
LCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVzdE9iaiYgb2JqQXJn
KQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBp
bXBsKCktPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJnKSk7Cisg
ICAgcmV0dXJuIGltcGwoKS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgdG9X
ZWJDb3JlKG9iakFyZykpOwogfQogCiBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om9iak1l
dGhvZCgpCkBAIC03MDksMTIgKzcwNSwxMiBAQCBXZWJET01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6
Om9iak1ldGhvZCgpCiAgICAgcmV0dXJuIHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+b2Jq
TWV0aG9kKCkpKTsKIH0KIAotV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpvYmpNZXRob2RX
aXRoQXJncyhsb25nIGxvbmcgQXJnLCBjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3Qg
V2ViRE9NVGVzdE9iaiYgb2JqQXJnKQorV2ViRE9NVGVzdE9iaiBXZWJET01UZXN0T2JqOjpvYmpN
ZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNv
bnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZykKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAg
cmV0dXJuIFdlYkRPTVRlc3RPYmooKTsKIAotICAgIHJldHVybiB0b1dlYktpdChXVEY6OmdldFB0
cihpbXBsKCktPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCB0b1dlYkNvcmUob2JqQXJn
KSkpKTsKKyAgICByZXR1cm4gdG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5vYmpNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIHRvV2ViQ29yZShvYmpBcmcpKSkpOwogfQogCiBXZWJE
T01UZXN0T2JqIFdlYkRPTVRlc3RPYmo6Om1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJv
d3MoY29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFy
ZykKQEAgLTkwMiwzNiArODk4LDM2IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6b3ZlcmxvYWRlZE1l
dGhvZDEoY29uc3QgV2ViRE9NU3RyaW5nJiB0eXBlKQogCiAjZW5kaWYKIAotdm9pZCBXZWJET01U
ZXN0T2JqOjpjb252ZXJ0MShjb25zdCBXZWJET01hJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNv
bnZlcnQxKGNvbnN0IFdlYkRPTWEmIHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpbXBsKCktPmNvbnZlcnQxKHRvV2ViQ29yZSgpKTsKKyAgICBpbXBs
KCktPmNvbnZlcnQxKHRvV2ViQ29yZSh2YWx1ZSkpOwogfQogCi12b2lkIFdlYkRPTVRlc3RPYmo6
OmNvbnZlcnQyKGNvbnN0IFdlYkRPTWImICkKK3ZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVydDIo
Y29uc3QgV2ViRE9NYiYgdmFsdWUpCiB7CiAgICAgaWYgKCFpbXBsKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGltcGwoKS0+Y29udmVydDIodG9XZWJDb3JlKCkpOworICAgIGltcGwoKS0+Y29u
dmVydDIodG9XZWJDb3JlKHZhbHVlKSk7CiB9CiAKLXZvaWQgV2ViRE9NVGVzdE9iajo6Y29udmVy
dDQoY29uc3QgV2ViRE9NZCYgKQordm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NChjb25zdCBX
ZWJET01kJiB2YWx1ZSkKIHsKICAgICBpZiAoIWltcGwoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaW1wbCgpLT5jb252ZXJ0NCh0b1dlYkNvcmUoKSk7CisgICAgaW1wbCgpLT5jb252ZXJ0NCh0
b1dlYkNvcmUodmFsdWUpKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjb252ZXJ0NShjb25z
dCBXZWJET01lJiApCit2b2lkIFdlYkRPTVRlc3RPYmo6OmNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUm
IHZhbHVlKQogewogICAgIGlmICghaW1wbCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbXBs
KCktPmNvbnZlcnQ1KHRvV2ViQ29yZSgpKTsKKyAgICBpbXBsKCktPmNvbnZlcnQ1KHRvV2ViQ29y
ZSh2YWx1ZSkpOwogfQogCiBXZWJET01TVkdQb2ludCBXZWJET01UZXN0T2JqOjptdXRhYmxlUG9p
bnRGdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oCmluZGV4IGQ1NWZmNzg2NTUxZWJkM2M3NGFkMWE5
Njg4MzJkMjAyOWJjYWM1MjcuLjVkOWE5YWMwMDI4MWRjOTA4OTMwMWQ2ZTdhNWI1Mjc4ZjRkYWFk
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAv
V2ViRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdE9iai5oCkBAIC03Nyw4ICs3Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFNob3J0QXR0cihzaG9ydCk7CiAgICAgdW5zaWduZWQgc2hvcnQgdW5zaWduZWRTaG9ydEF0
dHIoKSBjb25zdDsKICAgICB2b2lkIHNldFVuc2lnbmVkU2hvcnRBdHRyKHVuc2lnbmVkIHNob3J0
KTsKLSAgICBsb25nIGxvbmcgQXR0cigpIGNvbnN0OwotICAgIHZvaWQgc2V0QXR0cihsb25nIGxv
bmcpOworICAgIGludCBsb25nQXR0cigpIGNvbnN0OworICAgIHZvaWQgc2V0TG9uZ0F0dHIoaW50
KTsKICAgICBsb25nIGxvbmcgbG9uZ0xvbmdBdHRyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRMb25n
TG9uZ0F0dHIobG9uZyBsb25nKTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRMb25n
TG9uZ0F0dHIoKSBjb25zdDsKQEAgLTE0NywxMSArMTQ3LDExIEBAIHB1YmxpYzoKICAgICBpbnQg
cmVwbGFjZWFibGVBdHRyaWJ1dGUoKSBjb25zdDsKIAogICAgIHZvaWQgdm9pZE1ldGhvZCgpOwot
ICAgIHZvaWQgdm9pZE1ldGhvZFdpdGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0
cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwotICAgIGxvbmcgbG9u
ZyBNZXRob2QoKTsKLSAgICBsb25nIGxvbmcgTWV0aG9kV2l0aEFyZ3MobG9uZyBsb25nIEFyZywg
Y29uc3QgV2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7
CisgICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0
cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIGludCBsb25n
TWV0aG9kKCk7CisgICAgaW50IGxvbmdNZXRob2RXaXRoQXJncyhpbnQgbG9uZ0FyZywgY29uc3Qg
V2ViRE9NU3RyaW5nJiBzdHJBcmcsIGNvbnN0IFdlYkRPTVRlc3RPYmomIG9iakFyZyk7CiAgICAg
V2ViRE9NVGVzdE9iaiBvYmpNZXRob2QoKTsKLSAgICBXZWJET01UZXN0T2JqIG9iak1ldGhvZFdp
dGhBcmdzKGxvbmcgbG9uZyBBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBX
ZWJET01UZXN0T2JqJiBvYmpBcmcpOworICAgIFdlYkRPTVRlc3RPYmogb2JqTWV0aG9kV2l0aEFy
Z3MoaW50IGxvbmdBcmcsIGNvbnN0IFdlYkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01U
ZXN0T2JqJiBvYmpBcmcpOwogICAgIFdlYkRPTVRlc3RPYmogbWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyhjb25zdCBXZWJET01TdHJpbmcmIHN0ckFyZywgY29uc3QgV2ViRE9NVGVz
dE9iaiYgb2JqQXJnKTsKICAgICB2b2lkIHNlcmlhbGl6ZWRWYWx1ZShjb25zdCBXZWJET01TdHJp
bmcmIHNlcmlhbGl6ZWRBcmcpOwogICAgIHZvaWQgaWRiS2V5KGNvbnN0IFdlYkRPTUlEQktleSYg
a2V5KTsKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKICAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2QxKGNvbnN0IFdlYkRPTVN0cmluZyYgdHlwZSk7
CiAjZW5kaWYKLSAgICB2b2lkIGNvbnZlcnQxKGNvbnN0IFdlYkRPTWEmICk7Ci0gICAgdm9pZCBj
b252ZXJ0Mihjb25zdCBXZWJET01iJiApOwotICAgIHZvaWQgY29udmVydDQoY29uc3QgV2ViRE9N
ZCYgKTsKLSAgICB2b2lkIGNvbnZlcnQ1KGNvbnN0IFdlYkRPTWUmICk7CisgICAgdm9pZCBjb252
ZXJ0MShjb25zdCBXZWJET01hJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0Mihjb25zdCBXZWJE
T01iJiB2YWx1ZSk7CisgICAgdm9pZCBjb252ZXJ0NChjb25zdCBXZWJET01kJiB2YWx1ZSk7Cisg
ICAgdm9pZCBjb252ZXJ0NShjb25zdCBXZWJET01lJiB2YWx1ZSk7CiAgICAgV2ViRE9NU1ZHUG9p
bnQgbXV0YWJsZVBvaW50RnVuY3Rpb24oKTsKICAgICBXZWJET01TVkdQb2ludCBpbW11dGFibGVQ
b2ludEZ1bmN0aW9uKCk7CiAgICAgdm9pZCBiYW5hbmEoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5jcHAKaW5kZXggMTIwNGRmYjUwZGJkM2RjOWE0MjNjYTFkNWFhYjU3MzE4MzVlYjkz
OC4uMmQwM2RhZTlhOGRiZmE3MDVhMWU0ZGM1OGI2NTYzOTIxMDhiNzg1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBlbnVtIHsKICAgICBQ
Uk9QX1JFQURfT05MWV9URVNUX09CSl9BVFRSLAogICAgIFBST1BfU0hPUlRfQVRUUiwKICAgICBQ
Uk9QX1VOU0lHTkVEX1NIT1JUX0FUVFIsCi0gICAgUFJPUF9BVFRSLAorICAgIFBST1BfTE9OR19B
VFRSLAogICAgIFBST1BfTE9OR19MT05HX0FUVFIsCiAgICAgUFJPUF9VTlNJR05FRF9MT05HX0xP
TkdfQVRUUiwKICAgICBQUk9QX1NUUklOR19BVFRSLApAQCAtMTc5LDYgKzE3OSwxMCBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BlcnR5SWQsCiAgICAgICAgIGNvcmVTZWxmLT5zZXRVbnNpZ25lZFNob3J0QXR0
cigoZ192YWx1ZV9nZXRfdWludCh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAg
IGNhc2UgUFJPUF9MT05HX0FUVFI6IHsKKyAgICAgICAgY29yZVNlbGYtPnNldExvbmdBdHRyKChn
X3ZhbHVlX2dldF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgY2Fz
ZSBQUk9QX1VOU0lHTkVEX0xPTkdfTE9OR19BVFRSOiB7CiAgICAgICAgIGNvcmVTZWxmLT5zZXRV
bnNpZ25lZExvbmdMb25nQXR0cigoZ192YWx1ZV9nZXRfdWludDY0KHZhbHVlKSkpOwogICAgICAg
ICBicmVhazsKQEAgLTIyOCw4ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJ
T046IHsKLSAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGNv
cmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1
ZSkpLCBlYyk7CisgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbigo
Z192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNh
c2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTjogewpAQCAtMjM4LDggKzI0MSw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2Ug
UFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046IHsKLSAgICAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGNvcmVTZWxmLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihXVEY6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSksIGVjKTsKKyAgICAgICAgY29yZVNlbGYtPnNldFN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKFdURjo6U3RyaW5nOjpmcm9tVVRGOChnX3ZhbHVlX2dldF9zdHJpbmcodmFs
dWUpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFBST1BfU1RSSU5HX0FUVFJf
V0lUSF9TRVRURVJfRVhDRVBUSU9OOiB7CkBAIC0zMjksOCArMzMxLDggQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlkLAogICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCBjb3JlU2VsZi0+dW5z
aWduZWRTaG9ydEF0dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFBST1Bf
QVRUUjogewotICAgICAgICBnX3ZhbHVlX3NldF9pbnQ2NCh2YWx1ZSwgY29yZVNlbGYtPmF0dHIo
KSk7CisgICAgY2FzZSBQUk9QX0xPTkdfQVRUUjogeworICAgICAgICBnX3ZhbHVlX3NldF9sb25n
KHZhbHVlLCBjb3JlU2VsZi0+bG9uZ0F0dHIoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIFBST1BfTE9OR19MT05HX0FUVFI6IHsKQEAgLTU5MywxMiArNTk1LDEyIEBAIEdfTUFY
VUlOVCwgLyogbWF4ICovCiAwLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKTsKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfQVRUUiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQ2NCgiYXR0ciIsIC8q
IG5hbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRlc3Rfb2JqX2F0dHIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVhZC13cml0ZSAgZ2ludDY0IFRlc3RPYmouYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdp
dGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTklOVDY0LCAvKiBtaW4gKi8K
LUdfTUFYSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9MT05HX0FUVFIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfbG9uZygibG9uZy1hdHRyIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfbG9u
Zy1hdHRyIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRl
c3RPYmoubG9uZy1hdHRyIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRv
YyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcsIC8qIG1h
eCAqLwogMCwgLyogZGVmYXVsdCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCkBAIC05MzEsNyAr
OTMzLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhvZChXZWJLaXRET01UZXN0T2Jq
KiBzZWxmKQogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhf
YXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3Ry
QXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRf
bWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBsb25nQXJnLCBj
b25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC05NDQsMjEgKzk0NiwyMSBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0
aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjbwogICAg
ICAgICBjb252ZXJ0ZWRPYmpBcmcgPSBXZWJLaXQ6OmNvcmUob2JqQXJnKTsKICAgICAgICAgZ19y
ZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcpOwogICAgIH0KLSAgICBpdGVtLT52b2lkTWV0
aG9kV2l0aEFyZ3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CisgICAg
aXRlbS0+dm9pZE1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywgY29udmVy
dGVkT2JqQXJnKTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZChXZWJL
aXRET01UZXN0T2JqKiBzZWxmKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRo
b2QoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChz
ZWxmLCAwKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
V2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnaW50NjQg
cmVzdWx0ID0gaXRlbS0+TWV0aG9kKCk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bG9uZ01l
dGhvZCgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWdpbnQ2NAotd2Via2l0X2RvbV90ZXN0
X29ial9tZXRob2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcs
IGNvbnN0IGdjaGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK2dsb25nCit3
ZWJraXRfZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0
T2JqKiBvYmpBcmcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtOTcxLDcgKzk3Myw3IEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktp
dDo6Y29yZShvYmpBcmcpOwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRP
YmpBcmcsIDApOwogICAgIH0KLSAgICBnaW50NjQgcmVzdWx0ID0gaXRlbS0+TWV0aG9kV2l0aEFy
Z3MoQXJnLCBjb252ZXJ0ZWRTdHJBcmcsIGNvbnZlcnRlZE9iakFyZyk7CisgICAgZ2xvbmcgcmVz
dWx0ID0gaXRlbS0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0ckFyZywg
Y29udmVydGVkT2JqQXJnKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC05ODcsNyArOTg5
LDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vYmpfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNl
bGYpCiB9CiAKIFdlYktpdERPTVRlc3RPYmoqCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRo
b2Rfd2l0aF9hcmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdj
aGFyKiBzdHJBcmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZykKK3dlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9u
Z0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKQogewog
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOwogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTEwMDAsNyArMTAwMiw3IEBAIHdlYmtpdF9kb21fdGVz
dF9vYmpfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0
IEFyZywgY29uCiAgICAgICAgIGNvbnZlcnRlZE9iakFyZyA9IFdlYktpdDo6Y29yZShvYmpBcmcp
OwogICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb252ZXJ0ZWRPYmpBcmcsIDApOwogICAg
IH0KLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0
UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgY29udmVydGVkU3RyQXJnLCBjb252ZXJ0
ZWRPYmpBcmcpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE9iaj4gZ29iamVjdFJlc3VsdCA9
IFdURjo6Z2V0UHRyKGl0ZW0tPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIGNvbnZlcnRlZFN0
ckFyZywgY29udmVydGVkT2JqQXJnKSk7CiAgICAgV2ViS2l0RE9NVGVzdE9iaiogcmVzdWx0ID0g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
QEAgLTEzNDQsNjMgKzEzNDYsNjMgQEAgd2Via2l0X2RvbV90ZXN0X29ial9vdmVybG9hZGVkX21l
dGhvZDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgY29uc3QgZ2NoYXIqIHR5cGUKIH0KIAogdm9p
ZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01hKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIFdlYktpdERPTWEqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2Vs
Zik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbCgpOwotICAgIFdlYkNvcmU6OmEqIGNvbnZlcnRlZCA9IDA7Ci0gICAgaWYgKCkgewotICAg
ICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsKLSAgICAgICAgZ19yZXR1cm5faWZfZmFp
bChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6
OmEqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVy
dGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWls
KGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRlbS0+Y29udmVydDEoY29udmVydGVkKTsK
KyAgICBpdGVtLT5jb252ZXJ0MShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYiog
KQord2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01iKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYpOwogICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBXZWJDb3JlOjpUZXN0T2Jq
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoKTsKLSAg
ICBXZWJDb3JlOjpiKiBjb252ZXJ0ZWQgPSAwOwotICAgIGlmICgpIHsKLSAgICAgICAgY29udmVy
dGVkID0gV2ViS2l0Ojpjb3JlKCk7Ci0gICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVk
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjpiKiBjb252ZXJ0
ZWRWYWx1ZSA9IDA7CisgICAgaWYgKHZhbHVlKSB7CisgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKKyAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIGl0ZW0tPmNvbnZlcnQyKGNvbnZlcnRlZCk7CisgICAgaXRlbS0+
Y29udmVydDIoY29udmVydGVkVmFsdWUpOwogfQogCiB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICkKK3dlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NZCog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCk7Ci0gICAgV2ViQ29yZTo6
ZCogY29udmVydGVkID0gMDsKLSAgICBpZiAoKSB7Ci0gICAgICAgIGNvbnZlcnRlZCA9IFdlYktp
dDo6Y29yZSgpOwotICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZCk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6ZCogY29udmVydGVkVmFsdWUgPSAw
OworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6Y29y
ZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwogICAg
IH0KLSAgICBpdGVtLT5jb252ZXJ0NChjb252ZXJ0ZWQpOworICAgIGl0ZW0tPmNvbnZlcnQ0KGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0NShX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01lKiApCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2NvbnZlcnQ1KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWUqIHZhbHVlKQogewog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCgpOwotICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRl
ZCA9IDA7Ci0gICAgaWYgKCkgewotICAgICAgICBjb252ZXJ0ZWQgPSBXZWJLaXQ6OmNvcmUoKTsK
LSAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWQpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwodmFsdWUpOworICAgIFdlYkNvcmU6OmUqIGNvbnZlcnRlZFZhbHVlID0gMDsKKyAgICBpZiAo
dmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFsdWUpOwor
ICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0gICAgaXRl
bS0+Y29udmVydDUoY29udmVydGVkKTsKKyAgICBpdGVtLT5jb252ZXJ0NShjb252ZXJ0ZWRWYWx1
ZSk7CiB9CiAKIFdlYktpdERPTVNWR1BvaW50KgpAQCAtMTUyMSwyMyArMTUyMywyMyBAQCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF91bnNpZ25lZF9zaG9ydF9hdHRyKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIGd1c2hvcnQgdmFsdQogICAgIGl0ZW0tPnNldFVuc2lnbmVkU2hvcnRBdHRyKHZhbHVl
KTsKIH0KIAotZ2ludDY0Ci13ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwg
MCk7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNv
cmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2ludDY0IHJlc3Vs
dCA9IGl0ZW0tPmF0dHIoKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5sb25nQXR0cigpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0
dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IHZhbHVlKQord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfbG9uZ19hdHRyKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQog
ewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgaXRlbS0+c2V0QXR0cih2YWx1ZSk7CisgICAgaXRlbS0+c2V0TG9uZ0F0
dHIodmFsdWUpOwogfQogCiBnaW50NjQKQEAgLTE4NjUsMTcgKzE4NjcsMTIgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9i
aiogc2VsZiwgR0Vycm8KIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93
aXRoX2dldHRlcl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUs
IEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRl
cl9leGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCiB7CiAgICAg
Z19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpdGVtLT5zZXRBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19z
ZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIp
LCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbih2YWx1ZSk7CiB9CiAKIGdsb25nCkBAIC0xOTE0LDE5ICsxOTExLDE0
IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2Vw
dGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiB9CiAKIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKQord2Via2l0X2RvbV90
ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWls
KHNlbGYpOwogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBX
ZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGdfcmV0dXJu
X2lmX2ZhaWwodmFsdWUpOwogICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpT
dHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihjb252ZXJ0ZWRW
YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJv
ciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNj
Lm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKIGdjaGFyKgpAQCAtMjAxNyw3ICsyMDA5LDcgQEAgd2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhX
ZWJLaXRET01UZXN0T2JqKiBzZWwKIH0KIAogdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF93aXRoX3NjcmlwdF9zdGF0ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIFdlYktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lm
X2ZhaWwoc2VsZik7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtMjAyOCwxMiArMjAyMCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0
X3N0YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsCiAgICAgICAgIGNv
bnZlcnRlZFZhbHVlID0gV2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZf
ZmFpbChjb252ZXJ0ZWRWYWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252
ZXJ0ZWRWYWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJh
bChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwg
ZWNkZXNjLm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoY29udmVydGVkVmFsdWUpOwogfQogCiBXZWJLaXRET01UZXN0T2JqKgpAQCAtMjA1
Myw3ICsyMDQwLDcgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0
aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KIH0KIAogdm9pZAotd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRl
X3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVj
dXRpb25fY29udGV4dF9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdl
YktpdERPTVRlc3RPYmoqIHZhbHVlKQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjA2NCwxMiArMjA1
MSw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250
ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NCiAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0g
V2ViS2l0Ojpjb3JlKHZhbHVlKTsKICAgICAgICAgZ19yZXR1cm5faWZfZmFpbChjb252ZXJ0ZWRW
YWx1ZSk7CiAgICAgfQotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGl0
ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRl
ZFZhbHVlLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVy
cm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rl
c2MubmFtZSk7Ci0gICAgfQorICAgIGl0ZW0tPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaioK
QEAgLTIxMTUsNyArMjA5Nyw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlCiB9CiAKIHZvaWQK
LXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2Fu
ZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBX
ZWJLaXRET01UZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0
dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiog
dmFsdWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChzZWxmKTsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMTI2LDEyICsyMTA4LDcgQEAgd2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9z
dGF0ZV9hdHRyaWJ1dGUKICAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6OmNvcmUodmFs
dWUpOwogICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsKICAgICB9Ci0g
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaXRlbS0+c2V0V2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb252ZXJ0ZWRW
YWx1ZSwgZWMpOwotICAgIGlmIChlYykgewotICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJv
ciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNj
Lm5hbWUpOwotICAgIH0KKyAgICBpdGVtLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAogV2ViS2l0
RE9NVGVzdE9iaioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCAzOTVmYTc3YTY5
MTQ0ZDIwODZkZWI1NDMyYWM2MDliMmU0Y2NkOTY2Li45ZDkwNWFkMmIxOTgxMjk5ZDllZjViYTM0
MGRhNzUyMjI2NGIyN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCkBAIC01OCw3
ICs1OCw3IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2QoV2ViS2l0RE9NVGVzdE9i
aiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfdm9pZF9tZXRob2Rfd2l0aF9h
cmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBBcmc6IEEgI2dpbnQ2NAor
ICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hhcgogICogQG9iakFyZzog
QSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAgLTY2LDMwICs2NiwzMCBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3ZvaWRfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogICoKICoqLwogV0VC
S0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX3ZvaWRfbWV0aG9kX3dpdGhfYXJncyhX
ZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnaW50NjQgQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBX
ZWJLaXRET01UZXN0T2JqKiBvYmpBcmcpOword2Via2l0X2RvbV90ZXN0X29ial92b2lkX21ldGhv
ZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9uZ0FyZywgY29uc3Qg
Z2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAogLyoqCi0gKiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX21ldGhvZDoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9uZ19tZXRo
b2Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgog
KiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2QoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2xvbmdfbWV0aG9kKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwogCiAvKioKLSAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfbWV0aG9kX3dpdGhfYXJnczoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbG9u
Z19tZXRob2Rfd2l0aF9hcmdzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAqIEBB
cmc6IEEgI2dpbnQ2NAorICogQGxvbmdBcmc6IEEgI2dsb25nCiAgKiBAc3RyQXJnOiBBICNnY2hh
cgogICogQG9iakFyZzogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKICAqIFJldHVybnM6CiAgKgog
KiovCi1XRUJLSVRfQVBJIGdpbnQ2NAotd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9h
cmdzKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdpbnQ2NCBBcmcsIGNvbnN0IGdjaGFyKiBzdHJB
cmcsIFdlYktpdERPTVRlc3RPYmoqIG9iakFyZyk7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2xvbmdfbWV0aG9kX3dpdGhfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyBsb25nQXJnLCBjb25zdCBnY2hhciogc3RyQXJnLCBXZWJLaXRET01UZXN0T2JqKiBv
YmpBcmcpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZDoKQEAgLTEw
NCw3ICsxMDQsNyBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX29ial9tZXRob2QoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZik7CiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhvZF93aXRo
X2FyZ3M6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQEFyZzogQSAjZ2ludDY0
CisgKiBAbG9uZ0FyZzogQSAjZ2xvbmcKICAqIEBzdHJBcmc6IEEgI2djaGFyCiAgKiBAb2JqQXJn
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKgpAQCAtMTEyLDcgKzExMiw3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfb2JqX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKICAqCiAqKi8KIFdF
QktJVF9BUEkgV2ViS2l0RE9NVGVzdE9iaioKLXdlYmtpdF9kb21fdGVzdF9vYmpfb2JqX21ldGhv
ZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2ludDY0IEFyZywgY29uc3QgZ2No
YXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKK3dlYmtpdF9kb21fdGVzdF9v
Ympfb2JqX21ldGhvZF93aXRoX2FyZ3MoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgbG9u
Z0FyZywgY29uc3QgZ2NoYXIqIHN0ckFyZywgV2ViS2l0RE9NVGVzdE9iaiogb2JqQXJnKTsKIAog
LyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF90aGF0X3JlcXVpcmVzX2FsbF9hcmdz
X2FuZF90aHJvd3M6CkBAIC00MDAsNDYgKzQwMCw0NiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX292
ZXJsb2FkZWRfbWV0aG9kMShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBjb25zdCBnY2hhciogdHlw
ZQogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQxOgogICogQHNlbGY6IEEgI1dl
YktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWEKKyAqIEB2YWx1ZTogQSAjV2ViS2l0
RE9NYQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9k
b21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYSog
KTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDEoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
V2ViS2l0RE9NYSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfY29udmVy
dDI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQDogQSAjV2ViS2l0RE9NYgor
ICogQHZhbHVlOiBBICNXZWJLaXRET01iCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBXZWJLaXRET01iKiApOword2Via2l0X2RvbV90ZXN0X29ial9jb252ZXJ0MihXZWJL
aXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01iKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0
X2RvbV90ZXN0X29ial9jb252ZXJ0NDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0g
KiBAOiBBICNXZWJLaXRET01kCisgKiBAdmFsdWU6IEEgI1dlYktpdERPTWQKICAqCiAgKiBSZXR1
cm5zOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZl
cnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqICk7Cit3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2NvbnZlcnQ0KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWQqIHZhbHVl
KTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NvbnZlcnQ1OgogICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKLSAqIEA6IEEgI1dlYktpdERPTWUKKyAqIEB2YWx1ZTogQSAjV2Vi
S2l0RE9NZQogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9N
ZSogKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfY29udmVydDUoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgV2ViS2l0RE9NZSogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfbXV0
YWJsZV9wb2ludF9mdW5jdGlvbjoKQEAgLTU1OCwyNSArNTU4LDI1IEBAIFdFQktJVF9BUEkgdm9p
ZAogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfdW5zaWduZWRfc2hvcnRfYXR0cihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBndXNob3J0IHZhbHVlKTsKIAogLyoqCi0gKiB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9hdHRyOgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfbG9uZ19hdHRyOgogICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqCiAgKiBSZXR1cm5zOgogICoKICoqLwotV0VC
S0lUX0FQSSBnaW50NjQKLXdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHIoV2ViS2l0RE9NVGVz
dE9iaiogc2VsZik7CitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9s
b25nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKIC8qKgotICogd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfYXR0cjoKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cjoK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCi0gKiBAdmFsdWU6IEEgI2dpbnQ2NAorICog
QHZhbHVlOiBBICNnbG9uZwogICoKICAqIFJldHVybnM6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZv
aWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwg
Z2ludDY0IHZhbHVlKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2xvbmdfYXR0cihXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfbG9uZ19sb25nX2F0dHI6CkBAIC05MDgsMTMgKzkwOCwxMiBAQCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBHRXJybwogICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRl
cl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBB
ICNnbG9uZwotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczoKICAqCiAqKi8KIFdF
QktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9l
eGNlcHRpb24oV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9u
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbjoKQEAgLTk1MywxMyAr
OTUyLDEyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVy
X2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmCiAgKiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9zdHJpbmdfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNnY2hhcgotICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczoKICAqCiAqKi8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uOgpAQCAtMTA0
MCwxMyArMTAzOCwxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9zdGF0
ZV9hdHRyaWJ1dGVfcmFpc2VzKFdlYktpdERPTVRlc3RPYmoqIHNlbAogICogd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlczoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXN0T2JqCiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTVRlc3RPYmoKLSAq
IEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKToKICAqCiAq
Ki8KIFdFQktJVF9BUEkgdm9pZAotd2Via2l0X2RvbV90ZXN0X29ial9zZXRfd2l0aF9zY3JpcHRf
c3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01U
ZXN0T2JqKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOword2Via2l0X2RvbV90ZXN0X29ial9zZXRf
d2l0aF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAKIC8qKgogICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlczoKQEAg
LTEwNjMsMTMgKzEwNjAsMTIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRf
ZXhlY3V0aW9uX2NvbnRleHRfYXR0cmlidXRlX3JhaXNlcyhXZWJLaXRET00KICAqIHdlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9y
YWlzZXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICogQHZhbHVlOiBBICNXZWJL
aXRET01UZXN0T2JqCi0gKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6CiAgKgogKiovCiBXRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9y
KTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dpdGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0
X2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVzdE9i
aiogdmFsdWUpOwogCiAvKioKICAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3dpdGhfc2NyaXB0
X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlOgpAQCAtMTEwNywx
MyArMTEwMywxMiBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF93aXRoX3NjcmlwdF9leGVjdXRp
b25fY29udGV4dF9hbmRfc2NyaXB0X3N0YXRlX2F0dHJpYnV0ZQogICogd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2NvbnRleHRfYW5kX3NjcmlwdF9zdGF0ZV9h
dHRyaWJ1dGVfcmFpc2VzOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKICAqIEB2YWx1
ZTogQSAjV2ViS2l0RE9NVGVzdE9iagotICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOgogICoKICoqLwogV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF93aXRoX3NjcmlwdF9leGVjdXRpb25fY29udGV4dF9hbmRfc2NyaXB0X3N0
YXRlX2F0dHJpYnV0ZV9yYWlzZXMoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NVGVz
dE9iaiogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X3dp
dGhfc2NyaXB0X2V4ZWN1dGlvbl9jb250ZXh0X2FuZF9zY3JpcHRfc3RhdGVfYXR0cmlidXRlX3Jh
aXNlcyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBXZWJLaXRET01UZXN0T2JqKiB2YWx1ZSk7CiAK
IC8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfd2l0aF9zY3JpcHRfZXhlY3V0aW9uX2Nv
bnRleHRfYW5kX3NjcmlwdF9zdGF0ZV93aXRoX3NwYWNlc19hdHRyaWJ1dGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmlu
ZGV4IGY0OGE5YzgzMzcwZjUzNGNmNTA4YWEzY2ZlY2FlMjU5NzY2N2VjNjcuLjQ5YTJmYzdkMGYx
ZTg3OWQ4OGY5OTk1Mzk3Yzk5NWVhZjMwM2NiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC04Niw3ICs4Niw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1tdID0K
ICAgICB7ICJyZWFkT25seVRlc3RPYmpBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJl
YWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJz
aG9ydEF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNob3J0QXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RP
YmpTaG9ydEF0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAidW5zaWduZWRTaG9ydEF0dHIiLCBE
b250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialVu
c2lnbmVkU2hvcnRBdHRyLCBOb0ludHJpbnNpYyB9LAotICAgIHsgIkF0dHIiLCBEb250RGVsZXRl
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakF0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0ciwgTm9JbnRyaW5zaWMgfSwKKyAg
ICB7ICJsb25nQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNU
ZXN0T2JqTG9uZ0F0dHIsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibG9uZ0xvbmdBdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTG9uZ0xvbmdB
dHRyLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgRG9udERl
bGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpVbnNp
Z25lZExvbmdMb25nQXR0ciwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJzdHJpbmdBdHRyIiwgRG9u
dERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGludHB0cl90KXNldEpTVGVzdE9ialN0cmluZ0F0dHIs
IE5vSW50cmluc2ljIH0sCkBAIC0yNjYsOCArMjY2LDggQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAgIHsgIkNPTlNUX0pB
VkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVNDUklQVCksIChp
bnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgInZvaWRNZXRob2QiLCBEb250RGVsZXRl
IHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRy
aW5zaWMgfSwKICAgICB7ICJ2b2lkTWV0aG9kV2l0aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpG
dW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzLCBOb0ludHJp
bnNpYyB9LAotICAgIHsgIk1ldGhvZCIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCi0gICAgeyAiTWV0aG9kV2l0
aEFyZ3MiLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdz
KSwgKGludHB0cl90KTMsIE5vSW50cmluc2ljIH0sCisgICAgeyAibG9uZ01ldGhvZCIsIERvbnRE
ZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCksIChpbnRwdHJfdCkwLCBO
b0ludHJpbnNpYyB9LAorICAgIHsgImxvbmdNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBK
U0M6OkZ1bmN0aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KTMsIE5v
SW50cmluc2ljIH0sCiAgICAgeyAib2JqTWV0aG9kIiwgRG9udERlbGV0ZSB8IEpTQzo6RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2QpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKICAgICB7
ICJvYmpNZXRob2RXaXRoQXJncyIsIERvbnREZWxldGUgfCBKU0M6OkZ1bmN0aW9uLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpMywgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJt
ZXRob2RXaXRoU2VxdWVuY2VBcmciLCBEb250RGVsZXRlIHwgSlNDOjpGdW5jdGlvbiwgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkxLCBOb0ludHJpbnNpYyB9LApAQCAt
NDYzLDEyICs0NjMsMTIgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmEKIH0KIAogCi1KU1ZhbHVl
IGpzVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0
eU5hbWUpCitKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwogICAgIFVOVVNFRF9QQVJB
TShleGVjKTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3Rl
ZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5hdHRy
KCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ0F0dHIoKSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTAwMSwxMiArMTAwMSwxMiBAQCB2b2lkIHNldEpT
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNP
YmplY3QsIEpTVmFsdQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpMb25nQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIFVOVVNFRF9QQVJBTShleGVjKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CiAgICAgVGVzdE9iaiogaW1w
bCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGltcGwt
PnNldEF0dHIoc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2YWx1ZS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbXBsLT5zZXRMb25nQXR0cih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKIH0KIAogCkBAIC0x
MTU5LDkgKzExNTksNyBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsCiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0
aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNh
c3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaW1wbC0+
c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSwgZWMpOwotICAg
IHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgaW1wbC0+c2V0QXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24odmFsdWUudG9JbnQzMihleGVjKSk7CiB9CiAKIApAQCAtMTE4MSw5ICsxMTc5LDcg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2IKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOwog
ICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1w
bCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBpbXBsLT5zZXRTdHJpbmdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbih2YWx1ZS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IHZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgaW1wbC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odmFsdWUu
aXNFbXB0eSgpID8gU3RyaW5nKCkgOiB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykp
OwogfQogCiAKQEAgLTEyMzEsOSArMTIyNyw3IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPCiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgaW1wbC0+c2V0V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGV4ZWMsIHRv
VGVzdE9iaih2YWx1ZSksIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
IGltcGwtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhleGVjLCB0b1Rlc3RPYmoo
dmFsdWUpKTsKIH0KIAogCkBAIC0xMjQyLDEyICsxMjM2LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBleGVj
LCBKU09iCiAgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0g
c3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9
IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRleHQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpLCBlYyk7Ci0gICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyhzY3JpcHRDb250ZXh0LCB0b1Rlc3RPYmoodmFsdWUpKTsK
IH0KIAogCkBAIC0xMjY4LDEyICsxMjYwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhCiAg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0Q29udGV4dCA9IGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIXNjcmlwdENvbnRleHQpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpbXBsLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKGV4ZWMsIHNjcmlwdENvbnRleHQsIHRvVGVzdE9iaih2YWx1ZSksIGVj
KTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIGltcGwtPnNldFdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoZXhlYywgc2Ny
aXB0Q29udGV4dCwgdG9UZXN0T2JqKHZhbHVlKSk7CiB9CiAKIApAQCAtMTQ1MSw3ICsxNDQxLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZvaWRNZXRob2RXaXRoQXJncyhFeGVjU3QKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50
Q291bnQoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwotICAgIGxvbmcgbG9uZyBBcmcoc3RhdGljX2Nh
c3Q8bG9uZyBsb25nPihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpLnRvSW50ZWdlcihleGVjKSkpOworICAgIGludCBsb25nQXJnKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnQzMihleGVjKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGNvbnN0IFN0cmluZyYgc3RyQXJnKE1BWUJFX01J
U1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkuaXNFbXB0eSgpID8g
U3RyaW5nKCkgOiBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0SXNVbmRl
ZmluZWQpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7CkBAIC0xNDYwLDExICsxNDUwLDEx
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Wb2lkTWV0aG9kV2l0aEFyZ3MoRXhlY1N0CiAgICAgVGVzdE9iaiogb2JqQXJnKHRvVGVzdE9i
aihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7
CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwtPnZvaWRNZXRob2RXaXRoQXJncyhBcmcs
IHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXBsLT52b2lkTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywg
c3RyQXJnLCBvYmpBcmcpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAg
IGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDczLDEx
ICsxNDYzLDExIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjKQogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgJkpTVGVzdE9iajo6c19pbmZvKTsKICAgICBUZXN0T2JqKiBp
bXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CiAKLSAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bWV0aG9kKCkpOworICAgIEpTQzo6
SlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLT5sb25nTWV0aG9kKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdzKEV4ZWNTdGF0ZSog
ZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+aG9zdFRoaXNWYWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlu
aGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCkBAIC0xNDg3LDcgKzE0NzcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFyZ3MoRXhlY1N0YXRlKgogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwg
MykKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxv
bmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCku
dG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoTUFZQkVfTUlTU0lOR19QQVJB
TUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6
IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE0OTcsNyArMTQ4Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
QXJncyhFeGVjU3RhdGUqCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVl
IHJlc3VsdCA9IGpzTnVtYmVyKGltcGwtPm1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpB
cmcpKTsKKyAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoaW1wbC0+bG9uZ01ldGhv
ZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xNTI0LDcgKzE1MTQsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFy
Z3MoRXhlY1N0YQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRl
Z2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhl
YywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+
aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgY29uc3QgU3RyaW5nJiBzdHJBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
ZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS5pc0VtcHR5KCkgPyBTdHJpbmcoKSA6IE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpKTsKQEAgLTE1MzQsNyArMTUyNCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJn
cyhFeGVjU3RhCiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3Vs
dCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGlt
cGwtPm9iak1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKSk7CisgICAgSlNDOjpK
U1ZhbHVlIHJlc3VsdCA9IHRvSlMoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdU
Rjo6Z2V0UHRyKGltcGwtPm9iak1ldGhvZFdpdGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJn
KSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIApAQCAtMTU2NSwx
MSArMTU1NSwxMSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRQogICAgIFRlc3RPYmoqIGltcGwg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFy
ZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAs
IERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2VyKGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmco
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0lu
dDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKLSAgICBKU0M6OkpTVmFsdWUgcmVz
dWx0ID0ganNBcnJheShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC0+bWV0
aG9kUmV0dXJuaW5nU2VxdWVuY2UoQXJnKSk7CisgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpz
QXJyYXkoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwtPm1ldGhvZFJldHVy
bmluZ1NlcXVlbmNlKGxvbmdBcmcpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKQEAgLTIxNDQsMTAgKzIxMzQsMTAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMigK
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CiAK
LSAgICBsb25nIGxvbmcgQXJnKHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoZXhlYywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludGVnZXIoZXhlYykpKTsK
KyAgICBpbnQgbG9uZ0FyZyhNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAxLCBEZWZhdWx0
SXNVbmRlZmluZWQpLnRvSW50MzIoZXhlYykpOwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBp
bXBsLT5vdmVybG9hZGVkTWV0aG9kKG9iakFyZywgQXJnKTsKKyAgICBpbXBsLT5vdmVybG9hZGVk
TWV0aG9kKG9iakFyZywgbG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIApAQCAtMjE3OCwxMCArMjE2OCwxMCBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2Q0KAogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVk
VGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihleGVjKSk7Ci0gICAgbG9uZyBsb25nIEFyZyhzdGF0aWNfY2FzdDxsb25nIGxvbmc+KE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkudG9JbnRlZ2Vy
KGV4ZWMpKSk7CisgICAgaW50IGxvbmdBcmcoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywg
MCwgRGVmYXVsdElzVW5kZWZpbmVkKS50b0ludDMyKGV4ZWMpKTsKICAgICBpZiAoZXhlYy0+aGFk
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgaW1wbC0+b3ZlcmxvYWRlZE1ldGhvZChBcmcpOworICAgIGltcGwtPm92ZXJsb2Fk
ZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIApAQCAtMjQ4NSwxMCArMjQ3NSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoRXhlY1N0YXRlKiBleGVj
KQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+
aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7Ci0gICAgYSogKHRvYShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7CisgICAgYSogdmFsdWUodG9hKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0g
ICAgaW1wbC0+Y29udmVydDEoKTsKKyAgICBpbXBsLT5jb252ZXJ0MSh2YWx1ZSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUwMiwxMCArMjQ5
MiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDIoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0
aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJn
dW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgYiogKHRvYihNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgYiogdmFs
dWUodG9iKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDIoKTsKKyAgICBp
bXBsLT5jb252ZXJ0Mih2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIApAQCAtMjUxOSwxMCArMjUwOSwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoRXhlY1N0YXRlKiBl
eGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihl
eGVjKSk7Ci0gICAgZCogKHRvZChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSk7CisgICAgZCogdmFsdWUodG9kKE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci0gICAgaW1wbC0+Y29udmVydDQoKTsKKyAgICBpbXBsLT5jb252ZXJ0NCh2YWx1ZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApAQCAtMjUzNiwxMCAr
MjUyNiwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDUoRXhlY1N0YXRlKiBleGVjKQogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKICAgICBpZiAoZXhlYy0+
YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVjKSk7Ci0gICAgZSogKHRvZShNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihleGVjLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgZSog
dmFsdWUodG9lKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIDAsIERlZmF1bHRJc1VuZGVm
aW5lZCkpKTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC0+Y29udmVydDUoKTsKKyAg
ICBpbXBsLT5jb252ZXJ0NSh2YWx1ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDEyMzI3MjQwNTJhZGYyMGViOGE2OTA2YTAyMTE5
NTM1M2QxYTExY2YuLmY4MTBkODAwMTYwNGI4NmE0MjlmYTg4YjU1NGZiYmU1OTAxOGU3MDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgKQEAgLTE1NCw4ICsxNTQsOCBAQCBwcm90ZWN0ZWQ6CiAKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2QoSlND
OjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZvaWRNZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNTdGF0ZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJncyhKU0M6OkV4ZWNT
dGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdp
dGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsK
IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2Vx
dWVuY2VBcmcoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTIyOCw4ICsyMjgsOCBAQCBKU0M6OkpTVmFs
dWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZQogdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpV
bnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwotSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9iakxvbmdM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwog
SlNDOjpKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggNmE5
MDk5MTFjYzhiYjBhYzAzMWM3MDEyOWE0MTkxNjJkNjVlZWNhZS4uOTU2MzM1OTFlN2ZiMzcwYjhk
ZGI2MGFhNzY0NTEyN2RkZDdjYjExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNzAsNyArNzAsNyBAQCBl
bnVtIHsKIEBwcm9wZXJ0eShyZWFkb25seSwgcmV0YWluKSBET01UZXN0T2JqICpyZWFkT25seVRl
c3RPYmpBdHRyOwogQHByb3BlcnR5IHNob3J0IHNob3J0QXR0cjsKIEBwcm9wZXJ0eSB1bnNpZ25l
ZCBzaG9ydCB1bnNpZ25lZFNob3J0QXR0cjsKLUBwcm9wZXJ0eSBsb25nIGxvbmcgQXR0cjsKK0Bw
cm9wZXJ0eSBpbnQgbG9uZ0F0dHI7CiBAcHJvcGVydHkgbG9uZyBsb25nIGxvbmdMb25nQXR0cjsK
IEBwcm9wZXJ0eSB1bnNpZ25lZCBsb25nIGxvbmcgdW5zaWduZWRMb25nTG9uZ0F0dHI7CiBAcHJv
cGVydHkoY29weSkgTlNTdHJpbmcgKnN0cmluZ0F0dHI7CkBAIC0xMTcsMTggKzExNywxOCBAQCBl
bnVtIHsKIEBwcm9wZXJ0eSBpbnQgcmVwbGFjZWFibGVBdHRyaWJ1dGU7CiAKIC0gKHZvaWQpdm9p
ZE1ldGhvZDsKLS0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcpQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwotLSAobG9u
ZyBsb25nKU1ldGhvZDsKLS0gKGxvbmcgbG9uZylNZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
Ky0gKHZvaWQpdm9pZE1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6KE5TU3RyaW5n
ICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKKy0gKGludClsb25nTWV0aG9k
OworLSAoaW50KWxvbmdNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmlu
ZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChET01UZXN0T2JqICop
b2JqTWV0aG9kOwotLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihsb25nIGxvbmcp
QXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJn
OworLSAoRE9NVGVzdE9iaiAqKW9iak1ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJBcmc6
KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKERPTVRl
c3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0
ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtICh2b2lkKXNlcmlhbGl6ZWRWYWx1
ZTooTlNTdHJpbmcgKilzZXJpYWxpemVkQXJnOwogLSAodm9pZClpZGJLZXk6KERPTUlEQktleSAq
KWtleTsKIC0gKHZvaWQpb3B0aW9uc09iamVjdDooRE9NRGljdGlvbmFyeSAqKW9vIG9vbzooRE9N
RGljdGlvbmFyeSAqKW9vbzsKIC0gKHZvaWQpbWV0aG9kV2l0aEV4Y2VwdGlvbjsKIC0gKHZvaWQp
Y3VzdG9tTWV0aG9kOwotLSAodm9pZCljdXN0b21NZXRob2RXaXRoQXJnczoobG9uZyBsb25nKUFy
ZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsK
Ky0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJp
bmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnOwogLSAodm9pZClhZGRFdmVu
dExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVy
PilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmU7CiAtICh2b2lkKXJlbW92ZUV2
ZW50TGlzdGVuZXI6KE5TU3RyaW5nICopdHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVu
ZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6KEJPT0wpdXNlQ2FwdHVyZTsKIC0gKHZvaWQpd2l0aFNj
cmlwdFN0YXRlVm9pZDsKQEAgLTE2NSwxMCArMTY1LDEwIEBAIGVudW0gewogLSAodm9pZClvdmVy
bG9hZGVkTWV0aG9kMTooTlNTdHJpbmcgKil0eXBlOwogI2VuZGlmCiAtIChET01TVkdEb2N1bWVu
dCAqKWdldFNWR0RvY3VtZW50OwotLSAodm9pZCljb252ZXJ0MTooRE9NYSAqKTsKLS0gKHZvaWQp
Y29udmVydDI6KERPTWIgKik7Ci0tICh2b2lkKWNvbnZlcnQ0OihET01kICopOwotLSAodm9pZClj
b252ZXJ0NTooRE9NZSAqKTsKKy0gKHZvaWQpY29udmVydDE6KERPTWEgKil2YWx1ZTsKKy0gKHZv
aWQpY29udmVydDI6KERPTWIgKil2YWx1ZTsKKy0gKHZvaWQpY29udmVydDQ6KERPTWQgKil2YWx1
ZTsKKy0gKHZvaWQpY29udmVydDU6KERPTWUgKil2YWx1ZTsKIC0gKERPTVNWR1BvaW50ICopbXV0
YWJsZVBvaW50RnVuY3Rpb247CiAtIChET01TVkdQb2ludCAqKWltbXV0YWJsZVBvaW50RnVuY3Rp
b247CiAtICh2b2lkKW9yYW5nZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDhiMmJjZjAwYjFmOTY0MTNj
OTBjOTA5MDBkNTBmODhjOGVhZDZkNjIuLjNkZDBlN2FmMGNhNjc5YzgxYTc2ZmZjNjFkNDBhM2Nh
NmE5NTc2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMTQwLDE2ICsxNDAsMTYgQEAKICAgICBJTVBM
LT5zZXRVbnNpZ25lZFNob3J0QXR0cihuZXdVbnNpZ25lZFNob3J0QXR0cik7CiB9CiAKLS0gKGxv
bmcgbG9uZylBdHRyCistIChpbnQpbG9uZ0F0dHIKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmF0dHIoKTsKKyAgICByZXR1cm4g
SU1QTC0+bG9uZ0F0dHIoKTsKIH0KIAotLSAodm9pZClzZXRBdHRyOihsb25nIGxvbmcpbmV3QXR0
cgorLSAodm9pZClzZXRMb25nQXR0cjooaW50KW5ld0xvbmdBdHRyCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnNldEF0dHIobmV3QXR0cik7
CisgICAgSU1QTC0+c2V0TG9uZ0F0dHIobmV3TG9uZ0F0dHIpOwogfQogCiAtIChsb25nIGxvbmcp
bG9uZ0xvbmdBdHRyCkBAIC0zNDgsOSArMzQ4LDcgQEAKIC0gKHZvaWQpc2V0QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihuZXdBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihl
Yyk7CisgICAgSU1QTC0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24obmV3QXR0cldpdGhHZXR0
ZXJFeGNlcHRpb24pOwogfQogCiAtIChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KQEAgLTM3
OSw5ICszNzcsNyBAQAogLSAodm9pZClzZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbjoo
TlNTdHJpbmcgKiluZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBJTVBMLT5zZXRTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihu
ZXdTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiwgZWMpOwotICAgIFdlYkNvcmU6OnJhaXNl
T25ET01FcnJvcihlYyk7CisgICAgSU1QTC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24obmV3U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pOwogfQogCiAtIChOU1N0cmluZyAq
KXN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCkBAIC00NTAsOSArNDQ2LDcgQEAKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyk7CiAKLSAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoY29y
ZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29yZTo6
cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoY29yZShuZXdXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpKTsKIH0KIAog
LSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2Vz
CkBAIC00NjksOSArNDYzLDcgQEAKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CiAgICAgQVNTRVJUKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
UmFpc2VzKTsKIAotICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIElNUEwt
PnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKGNvcmUobmV3V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMpLCBlYyk7Ci0gICAgV2ViQ29y
ZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5ld1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKil3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlCkBAIC01MDIsOSArNDk0LDcgQEAKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgQVNTRVJUKG5ld1dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMpOwog
Ci0gICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgSU1QTC0+c2V0V2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhjb3JlKG5l
d1dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMp
LCBlYyk7Ci0gICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBJTVBMLT5zZXRX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKGNv
cmUobmV3V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJh
aXNlcykpOwogfQogCiAtIChET01UZXN0T2JqICopd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUKQEAgLTczOSwyMiArNzI5LDIyIEBACiAg
ICAgSU1QTC0+dm9pZE1ldGhvZCgpOwogfQogCi0tICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczoo
bG9uZyBsb25nKUFyZyBzdHJBcmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9i
aiAqKW9iakFyZworLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFy
ZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnZvaWRNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKTsKKyAgICBJTVBMLT52b2lkTWV0
aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3JlKG9iakFyZykpOwogfQogCi0tIChsb25n
IGxvbmcpTWV0aG9kCistIChpbnQpbG9uZ01ldGhvZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+bWV0aG9kKCk7CisgICAgcmV0
dXJuIElNUEwtPmxvbmdNZXRob2QoKTsKIH0KIAotLSAobG9uZyBsb25nKU1ldGhvZFdpdGhBcmdz
Oihsb25nIGxvbmcpQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnCistIChpbnQpbG9uZ01ldGhvZFdpdGhBcmdzOihpbnQpbG9uZ0FyZyBzdHJB
cmc6KE5TU3RyaW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZwogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+
bWV0aG9kV2l0aEFyZ3MoQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CisgICAgcmV0dXJuIElN
UEwtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIGNvcmUob2JqQXJnKSk7CiB9
CiAKIC0gKERPTVRlc3RPYmogKilvYmpNZXRob2QKQEAgLTc2MywxMCArNzUzLDEwIEBACiAgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRob2QoKSkpOwogfQogCi0tIChET01U
ZXN0T2JqICopb2JqTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0cmlu
ZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKERPTVRlc3RPYmogKilv
YmpNZXRob2RXaXRoQXJnczooaW50KWxvbmdBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFyZyBv
YmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5vYmpNZXRo
b2RXaXRoQXJncyhBcmcsIHN0ckFyZywgY29yZShvYmpBcmcpKSkpOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBjb3Jl
KG9iakFyZykpKSk7CiB9CiAKIC0gKERPTVRlc3RPYmogKiltZXRob2RUaGF0UmVxdWlyZXNBbGxB
cmdzQW5kVGhyb3dzOihOU1N0cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpB
cmcKQEAgLTgxMCwxMCArODAwLDEwIEBACiAgICAgSU1QTC0+Y3VzdG9tTWV0aG9kKCk7CiB9CiAK
LS0gKHZvaWQpY3VzdG9tTWV0aG9kV2l0aEFyZ3M6KGxvbmcgbG9uZylBcmcgc3RyQXJnOihOU1N0
cmluZyAqKXN0ckFyZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmcKKy0gKHZvaWQpY3VzdG9t
TWV0aG9kV2l0aEFyZ3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2Jq
QXJnOihET01UZXN0T2JqICopb2JqQXJnCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJn
LCBjb3JlKG9iakFyZykpOworICAgIElNUEwtPmN1c3RvbU1ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IHN0ckFyZywgY29yZShvYmpBcmcpKTsKIH0KIAogLSAodm9pZClhZGRFdmVudExpc3RlbmVyOihO
U1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExpc3RlbmVyPilsaXN0ZW5lciB1
c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUKQEAgLTEwMDUsMjggKzk5NSwyOCBAQAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLS0gKHZvaWQpY29udmVydDE6KERPTWEgKikKKy0gKHZvaWQpY29u
dmVydDE6KERPTWEgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0MShjb3JlKCkpOworICAgIElNUEwtPmNvbnZlcnQx
KGNvcmUodmFsdWUpKTsKIH0KIAotLSAodm9pZCljb252ZXJ0MjooRE9NYiAqKQorLSAodm9pZClj
b252ZXJ0MjooRE9NYiAqKXZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIElNUEwtPmNvbnZlcnQyKGNvcmUoKSk7CisgICAgSU1QTC0+Y29udmVy
dDIoY29yZSh2YWx1ZSkpOwogfQogCi0tICh2b2lkKWNvbnZlcnQ0OihET01kICopCistICh2b2lk
KWNvbnZlcnQ0OihET01kICopdmFsdWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+Y29udmVydDQoY29yZSgpKTsKKyAgICBJTVBMLT5jb252
ZXJ0NChjb3JlKHZhbHVlKSk7CiB9CiAKLS0gKHZvaWQpY29udmVydDU6KERPTWUgKikKKy0gKHZv
aWQpY29udmVydDU6KERPTWUgKil2YWx1ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5jb252ZXJ0NShjb3JlKCkpOworICAgIElNUEwtPmNv
bnZlcnQ1KGNvcmUodmFsdWUpKTsKIH0KIAogLSAoRE9NU1ZHUG9pbnQgKiltdXRhYmxlUG9pbnRG
dW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCmluZGV4IGYyZDFmZTgxMGQxYmFlZDE3NDU2YzdiMTQwMWE5Nzg2NzFiZDNmYzMuLjMy
YjRmMTgwMTVhY2Q4MjVmODkyYjNhNGFjMTVjZTIzY2Q4ZTdhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTUxLDcgKzUxLDYg
QEAgbW9kdWxlIHRlc3QgewogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAg
ICAgIHN0cmluZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBbVjhNZWFzdXJlQXM9VGVzdEZlYXR1
cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKLSAgICAgICAgSlMsIFY4CiAgICAgICAgIC8vIFdL
X3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCiAgICAgICAgIGF0dHJpYnV0
ZSBUZXN0T2JqICAgICAgICAgICAgICAgICAgWE1MT2JqQXR0cjsKICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICAgICAgICAgICBjcmVhdGU7CkBAIC0yMjYsMTAgKzIyNSwxMCBAQCBt
b2R1bGUgdGVzdCB7CiAgICAgICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZV0gU1ZHRG9jdW1lbnQg
Z2V0U1ZHRG9jdW1lbnQoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgdm9pZCBjb252ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBh
KTsKLSAgICAgICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1V
bmRlZmluZWRdIGIpOwotICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxs
U3RyaW5nXSBkKTsKLSAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVsbFN0
cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlKTsKKyAgICAgICAgdm9pZCBjb252
ZXJ0MShpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBhIHZhbHVlKTsKKyAgICAg
ICAgdm9pZCBjb252ZXJ0MihpbiBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1VbmRlZmluZWRd
IGIgdmFsdWUpOworICAgICAgICB2b2lkIGNvbnZlcnQ0KGluIFtUcmVhdE51bGxBcz1OdWxsU3Ry
aW5nXSBkIHZhbHVlKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0NShpbiBbVHJlYXROdWxsQXM9TnVs
bFN0cmluZywgVHJlYXRVbmRlZmluZWRBcz1OdWxsU3RyaW5nXSBlIHZhbHVlKTsKIAogICAgICAg
ICBhdHRyaWJ1dGUgU1ZHUG9pbnQgbXV0YWJsZVBvaW50OwogICAgICAgICBhdHRyaWJ1dGUgW0lt
bXV0YWJsZV0gU1ZHUG9pbnQgaW1tdXRhYmxlUG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDUwMjQyOGE3
MTAwYzVmNzE2NjNjZjVjNjkxNTE2OWQ5NzIyMTU1MzUuLjgzOTBmMTA1ODE3MjNiMWRiY2MwZmIw
NTU3ZDBhMDBiZDUyMzBhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xNjEsMTkgKzE2MSwxOSBAQCBzdGF0
aWMgdm9pZCB1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDx2OAogICAgIHJldHVybjsKIH0KIAotc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
bG9uZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouQXR0ci5f
Z2V0Iik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nQXR0ci5fZ2V0Iik7CiAgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBy
ZXR1cm4gdjg6Ok51bWJlcjo6TmV3KHN0YXRpY19jYXN0PGRvdWJsZT4oaW1wLT5hdHRyKCkpKTsK
KyAgICByZXR1cm4gdjhJbnRlZ2VyKGltcC0+bG9uZ0F0dHIoKSwgaW5mby5HZXRJc29sYXRlKCkp
OwogfQogCi1zdGF0aWMgdm9pZCBBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCitzdGF0aWMgdm9pZCBsb25nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQogewotICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouQXR0ci5fc2V0Iik7Cisg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nQXR0ci5fc2V0Iik7CiAgICAgVGVzdE9iaiog
aW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBsb25nIGxvbmcg
diA9IHRvSW50NjQodmFsdWUpOwotICAgIGltcC0+c2V0QXR0cihXVEY6OmdldFB0cih2KSk7Cisg
ICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldExvbmdBdHRyKHYpOwogICAg
IHJldHVybjsKIH0KIApAQCAtNDUxLDEwICs0NTEsNyBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
bwogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24uX3Nl
dCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CiAgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYsIGVjKTsKLSAgICBpZiAo
VU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0
ZSgpKTsKKyAgICBpbXAtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAgIHJldHVy
bjsKIH0KIApAQCAtNDkzLDEwICs0OTAsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbi5fc2V0
Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQoVjhQYXJh
bWV0ZXI8PiwgdiwgdmFsdWUpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGltcC0+
c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odiwgZWMpOwotICAgIGlmIChVTkxJS0VM
WShlYykpCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpOwor
ICAgIGltcC0+c2V0U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24odik7CiAgICAgcmV0dXJu
OwogfQogCkBAIC01ODIsMTMgKzU3NiwxMCBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLAogICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmoud2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzLl9z
ZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4
VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDog
MDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBT
Y3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybjsK
LSAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpn
ZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNl
cHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0ZSwgV1RGOjpnZXRQdHIodikpOwogICAgIGlmIChzdGF0ZS5o
YWRFeGNlcHRpb24oKSkKICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZS5leGNlcHRpb24oKSwgaW5m
by5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybjsKQEAgLTYxMSwxMSArNjAyLDggQEAgc3RhdGlj
IHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3QKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6Okhh
bmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250ZXh0ID0gZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGltcC0+c2V0V2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsK
LSAgICBpZiAoVU5MSUtFTFkoZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8u
R2V0SXNvbGF0ZSgpKTsKKyAgICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlUmFpc2VzKHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICByZXR1cm47
CiB9CiAKQEAgLTY2NywxNCArNjU1LDExIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzLl9zZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6
Okhhc0luc3RhbmNlKHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6
T2JqZWN0Pjo6Q2FzdCh2YWx1ZSkpIDogMDsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIGlmICgh
c3RhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRDb250ZXh0ID0gZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGltcC0+c2V0V2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhzdGF0
ZSwgc2NyaXB0Q29udGV4dCwgV1RGOjpnZXRQdHIodiksIGVjKTsKLSAgICBpZiAoVU5MSUtFTFko
ZWMpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZWMsIGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAg
ICBpbXAtPnNldFdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1
dGVSYWlzZXMoc3RhdGUsIHNjcmlwdENvbnRleHQsIFdURjo6Z2V0UHRyKHYpKTsKICAgICBpZiAo
c3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9u
KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm47CkBAIC0xMDY4LDMwICsxMDUzLDMw
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQog
ICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xh
dGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIEVY
Q0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05f
QkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPnZvaWRN
ZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywgb2JqQXJnKTsKKyAgICBpbXAtPnZvaWRNZXRob2RX
aXRoQXJncyhsb25nQXJnLCBzdHJBcmcsIG9iakFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVk
KCk7CiB9CiAKLXN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9kQ2FsbGJhY2soY29u
c3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9u
Z01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7Ci0gICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5NZXRob2QiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmxv
bmdNZXRob2QiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nhc3Q8ZG91Ymxl
PihpbXAtPk1ldGhvZCgpKSk7CisgICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2Qo
KSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQogCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3N0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLk1ldGhv
ZFdpdGhBcmdzIik7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5sb25nTWV0aG9kV2l0aEFy
Z3MiKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCiAgICAgICAgIHJldHVybiB0aHJvd05v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBp
bXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9C
TE9DSyhsb25nIGxvbmcsIEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9u
Z0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhW
OFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJn
LCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIs
IERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKSA6IDApOwotICAgIHJldHVybiB2ODo6TnVtYmVyOjpOZXcoc3RhdGljX2Nh
c3Q8ZG91YmxlPihpbXAtPk1ldGhvZFdpdGhBcmdzKEFyZywgc3RyQXJnLCBvYmpBcmcpKSk7Cisg
ICAgcmV0dXJuIHY4SW50ZWdlcihpbXAtPmxvbmdNZXRob2RXaXRoQXJncyhsb25nQXJnLCBzdHJB
cmcsIG9iakFyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpA
QCAtMTEwOCwxMCArMTA5MywxMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1l
dGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMykKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9uZywg
QXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKICAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0
ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpBcmcsIFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZp
bmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3Qo
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpIDog
MCk7Ci0gICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2RXaXRoQXJncyhBcmcsIHN0ckFyZywg
b2JqQXJnKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIHJldHVybiB0
b1Y4KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdz
LkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CiAKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kV2l0aFNlcXVlbmNlQXJnQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKQEAgLTExMzEsOCArMTExNiw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAg
ICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9u
ZyBsb25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSkpOwotICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0dXJu
aW5nU2VxdWVuY2UoQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOworICAgIEVYQ0VQVElPTl9CTE9D
SyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSkpOworICAgIHJldHVybiB2OEFycmF5KGltcC0+bWV0aG9kUmV0
dXJuaW5nU2VxdWVuY2UobG9uZ0FyZyksIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKQEAgLTE1MzgsOCArMTUyMyw4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDJDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzCiAgICAgICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChv
YmpBcmcpOwogICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKICAgICB9Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2Qob2JqQXJnLCBBcmcpOworICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50
MzIoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSkp
OworICAgIGltcC0+b3ZlcmxvYWRlZE1ldGhvZChvYmpBcmcsIGxvbmdBcmcpOwogICAgIHJldHVy
biB2OFVuZGVmaW5lZCgpOwogfQogCkBAIC0xNTYwLDggKzE1NDUsOCBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncwogICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGxvbmcgbG9uZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2QoQXJnKTsKKyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJF
X01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBp
bXAtPm92ZXJsb2FkZWRNZXRob2QobG9uZ0FyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7
CiB9CiAKQEAgLTE3NDYsOCArMTczMSw4IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
ZW5hYmxlZEF0UnVudGltZU1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzCiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0sobG9uZyBs
b25nLCBBcmcsIHRvSW50NjQoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpOwotICAgIGltcC0+ZW5hYmxlZEF0UnVudGltZU1ldGhvZDEoQXJnKTsK
KyAgICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJs
ZWRBdFJ1bnRpbWVNZXRob2QxKGxvbmdBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
fQogCkBAIC0xNzU3LDggKzE3NDIsOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVu
YWJsZWRBdFJ1bnRpbWVNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cwogICAgIGlm
IChhcmdzLkxlbmd0aCgpIDwgMSkKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1l
bnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgRVhDRVBUSU9OX0JMT0NLKGxvbmcgbG9u
ZywgQXJnLCB0b0ludDY0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJ
c1VuZGVmaW5lZCkpKTsKLSAgICBpbXAtPmVuYWJsZWRBdFJ1bnRpbWVNZXRob2QyKEFyZyk7Cisg
ICAgRVhDRVBUSU9OX0JMT0NLKGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSk7CisgICAgaW1wLT5lbmFibGVk
QXRSdW50aW1lTWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTc2OCw4ICsxNzUzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDEoQXJnKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQ
ZXJDb250ZXh0TWV0aG9kMShsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTc3OSw4ICsxNzY0LDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkUGVyQ29udGV4dE1ldGhvZDJDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnQKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhsb25nIGxvbmcs
IEFyZywgdG9JbnQ2NChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNV
bmRlZmluZWQpKSk7Ci0gICAgaW1wLT5lbmFibGVkUGVyQ29udGV4dE1ldGhvZDIoQXJnKTsKKyAg
ICBFWENFUFRJT05fQkxPQ0soaW50LCBsb25nQXJnLCB0b0ludDMyKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpKTsKKyAgICBpbXAtPmVuYWJsZWRQ
ZXJDb250ZXh0TWV0aG9kMihsb25nQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0K
IApAQCAtMTgyNSw4ICsxODEwLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252
ZXJ0MUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihh
cmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYSosICwgVjhhOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBp
bXAtPmNvbnZlcnQxKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGEqLCB2YWx1ZSwgVjhhOjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4YTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAg
ICBpbXAtPmNvbnZlcnQxKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApA
QCAtMTgzNiw4ICsxODIxLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0
MkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soYiosICwgVjhiOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAt
PmNvbnZlcnQyKCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGIqLCB2YWx1ZSwgVjhiOjpIYXNJbnN0
YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KSA/IFY4Yjo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNT
SU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBp
bXAtPmNvbnZlcnQyKHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAt
MTg0Nyw4ICsxODMyLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdl
dElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZCosICwgVjhkOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNv
bnZlcnQ0KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGQqLCB2YWx1ZSwgVjhkOjpIYXNJbnN0YW5j
ZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/
IFY4ZDo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5H
X1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAt
PmNvbnZlcnQ0KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTg1
OCw4ICsxODQzLDggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0NUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElz
b2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhv
bGRlcigpKTsKLSAgICBFWENFUFRJT05fQkxPQ0soZSosICwgVjhlOjpIYXNJbnN0YW5jZShNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4ZTo6
dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKLSAgICBpbXAtPmNvbnZl
cnQ1KCk7CisgICAgRVhDRVBUSU9OX0JMT0NLKGUqLCB2YWx1ZSwgVjhlOjpIYXNJbnN0YW5jZShN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSA/IFY4
ZTo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAwKTsKKyAgICBpbXAtPmNv
bnZlcnQ1KHZhbHVlKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KIApAQCAtMTkyNCw4
ICsxOTA5LDggQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJp
YnV0ZSBWOFRlc3RPYmpBdHRyc1tdID0gewogICAgIHsic2hvcnRBdHRyIiwgVGVzdE9ialY4SW50
ZXJuYWw6OnNob3J0QXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkU2hv
cnRBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJ1bnNpZ25lZFNo
b3J0QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0QXR0ckF0dHJHZXR0ZXIs
IFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8g
ZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3Rh
dGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFu
Y2UgKi99LAotICAgIC8vIEF0dHJpYnV0ZSAnQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0
dHI6ICcnKQotICAgIHsiQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpBdHRyQXR0ckdldHRlciwg
VGVzdE9ialY4SW50ZXJuYWw6OkF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICAv
LyBBdHRyaWJ1dGUgJ2xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisg
ICAgeyJsb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJHZXR0ZXIsIFRl
c3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3Rh
dGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6
OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAg
IC8vIEF0dHJpYnV0ZSAnbG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
JycpCiAgICAgeyJsb25nTG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0xvbmdBdHRy
QXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdMb25nQXR0ckF0dHJTZXR0ZXIsIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndW5zaWduZWRMb25nTG9uZ0F0dHInIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKQEAgLTIwNDAsNyArMjAyNSw3IEBAIHN0YXRp
YyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1dGUgVjhUZXN0T2JqQXR0
cnNbXSA9IHsKIAogc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENhbGxi
YWNrIFY4VGVzdE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1ldGhvZCIsIFRlc3RPYmpW
OEludGVybmFsOjp2b2lkTWV0aG9kQ2FsbGJhY2t9LAotICAgIHsiTWV0aG9kIiwgVGVzdE9ialY4
SW50ZXJuYWw6Ok1ldGhvZENhbGxiYWNrfSwKKyAgICB7ImxvbmdNZXRob2QiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6bG9uZ01ldGhvZENhbGxiYWNrfSwKICAgICB7Im9iak1ldGhvZCIsIFRlc3RPYmpW
OEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFja30sCiAgICAgeyJtZXRob2RSZXR1cm5pbmdTZXF1
ZW5jZSIsIFRlc3RPYmpWOEludGVybmFsOjptZXRob2RSZXR1cm5pbmdTZXF1ZW5jZUNhbGxiYWNr
fSwKICAgICB7InNlcmlhbGl6ZWRWYWx1ZSIsIFRlc3RPYmpWOEludGVybmFsOjpzZXJpYWxpemVk
VmFsdWVDYWxsYmFja30sCkBAIC0yMTgwLDExICsyMTY1LDExIEBAIHN0YXRpYyB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6
OlBlcnNpCiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiB2b2lkTWV0aG9kV2l0aEFyZ3NT
aWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgdm9pZE1ldGhvZFdpdGhBcmdzQXJn
Yywgdm9pZE1ldGhvZFdpdGhBcmdzQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woInZvaWRNZXRob2RXaXRoQXJncyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3
KFRlc3RPYmpWOEludGVybmFsOjp2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjaywgdjhVbmRlZmlu
ZWQoKSwgdm9pZE1ldGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CiAKLSAgICAvLyBDdXN0b20gU2ln
bmF0dXJlICdNZXRob2RXaXRoQXJncycKLSAgICBjb25zdCBpbnQgTWV0aG9kV2l0aEFyZ3NBcmdj
ID0gMzsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBNZXRob2RXaXRoQXJn
c0FyZ3ZbTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpH
ZXRSYXdUZW1wbGF0ZSgpIH07Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBNZXRob2RX
aXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBNZXRob2RXaXRoQXJn
c0FyZ2MsIE1ldGhvZFdpdGhBcmdzQXJndik7Ci0gICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpO
ZXdTeW1ib2woIk1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVz
dE9ialY4SW50ZXJuYWw6Ok1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIE1l
dGhvZFdpdGhBcmdzU2lnbmF0dXJlKSk7CisgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbG9uZ01l
dGhvZFdpdGhBcmdzJworICAgIGNvbnN0IGludCBsb25nTWV0aG9kV2l0aEFyZ3NBcmdjID0gMzsK
KyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBsb25nTWV0aG9kV2l0aEFyZ3NB
cmd2W2xvbmdNZXRob2RXaXRoQXJnc0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCBWOFRlc3RPYmo6
OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGxvbmdN
ZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBsb25nTWV0
aG9kV2l0aEFyZ3NBcmdjLCBsb25nTWV0aG9kV2l0aEFyZ3NBcmd2KTsKKyAgICBwcm90by0+U2V0
KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgibG9uZ01ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlv
blRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxi
YWNrLCB2OFVuZGVmaW5lZCgpLCBsb25nTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAg
IC8vIEN1c3RvbSBTaWduYXR1cmUgJ29iak1ldGhvZFdpdGhBcmdzJwogICAgIGNvbnN0IGludCBv
YmpNZXRob2RXaXRoQXJnc0FyZ2MgPSAzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165937</attachid>
            <date>2012-09-26 23:34:28 -0700</date>
            <delta_ts>2012-09-27 00:36:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-26398-20120927153346.patch</filename>
            <type>text/plain</type>
            <size>13878</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvSURMUGFyc2VyLnBtCmluZGV4IDYzNGI3ZGYwODAyZDA1ZWY5Yjk1NGRjNzA1YjQxMzA3
MTMwYWE5ZGEuLmJiOGEwZjBmNzEyZGIxNGY1NGZmODUxY2JhY2M0OGVkNzdlOWY3M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkBAIC0yMDgsMzEg
KzIwOCwzMiBAQCBteSAkbmV4dEF0dHJpYnV0ZU9sZF8xID0gJ14oYXR0cmlidXRlfGluaGVyaXR8
cmVhZG9ubHkpJCc7CiBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMSA9ICdeKGludHxsb25nfHNob3J0
fHVuc2lnbmVkKSQnOwogbXkgJG5leHRQcmltaXRpdmVUeXBlXzIgPSAnXihkb3VibGV8ZmxvYXR8
dW5yZXN0cmljdGVkKSQnOwogbXkgJG5leHRTZXRHZXRSYWlzZXMyXzEgPSAnXig7fGdldHJhaXNl
c3xzZXRyYWlzZXMpJCc7Ci1teSAkbmV4dEFyZ3VtZW50TGlzdF8xID0gJ14oXCh8Qnl0ZVN0cmlu
Z3xET01TdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnxpbnR8
bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVu
c2lnbmVkKSQnOworbXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8
RE9NU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58aW50fGxv
bmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNp
Z25lZCkkJzsKIG15ICRuZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9vbGVhbnxieXRlfGRvdWJsZXxm
bG9hdHxpbnR8bG9uZ3xvY3RldHxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7Ci1teSAk
bmV4dEludGVyZmFjZU1lbWJlck9sZF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0
ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0
fGdldHRlcnxpbmhlcml0fGludHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9u
bHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVu
cmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJPbGRf
MSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29s
ZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxpbnR8
bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6
ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8
dm9pZCkkJzsKIG15ICRuZXh0T3B0aW9uYWxJdGVyYXRvckludGVyZmFjZU9yT2JqZWN0XzEgPSAn
Xig7fD0pJCc7CiBteSAkbmV4dEF0dHJpYnV0ZU9yT3BlcmF0aW9uT3JJdGVyYXRvcl8xID0gJ14o
c3RhdGljfHN0cmluZ2lmaWVyKSQnOwotbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbk9ySXRl
cmF0b3JfMiA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0
ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxpbnR8bGVnYWN5Y2FsbGVyfGxv
bmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNldHRlcnxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWdu
ZWR8dm9pZCkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVyYXRpb25Pckl0ZXJhdG9yXzIgPSAn
XihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8Y3JlYXRv
cnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9iamVj
dHxvY3RldHxzZXF1ZW5jZXxzZXR0ZXJ8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQp
JCc7CiBteSAkbmV4dFVucmVzdHJpY3RlZEZsb2F0VHlwZV8xID0gJ14oZG91YmxlfGZsb2F0KSQn
OwotbXkgJG5leHRFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzXzEgPSAnXigsfFxdKSQnOwotbXkgJG5l
eHRFeGNlcHRpb25GaWVsZF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxhbnl8
Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8
c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwotbXkgJG5leHRUeXBlXzEgPSAnXihCeXRl
U3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGludHxs
b25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7
CitteSAkbmV4dEV4dGVuZGVkQXR0cmlidXRlUmVzdDNfMSA9ICdeKFwsfDo6fFxdKSQnOworbXkg
JG5leHRFeGNlcHRpb25GaWVsZF8xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0
ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2Vx
dWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRUeXBlXzEgPSAn
Xig6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZs
b2F0fGludHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CiBteSAkbmV4dFNwZWNpYWxzXzEgPSAnXihjcmVhdG9yfGRlbGV0ZXJ8Z2V0dGVy
fGxlZ2FjeWNhbGxlcnxzZXR0ZXIpJCc7Ci1teSAkbmV4dERlZmluaXRpb25zXzEgPSAnXihjYWxs
YmFja3xkaWN0aW9uYXJ5fGVudW18ZXhjZXB0aW9ufGludGVyZmFjZXxwYXJ0aWFsfHR5cGVkZWYp
JCc7Ci1teSAkbmV4dEV4Y2VwdGlvbk1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxjb25zdHxkb3VibGV8ZmxvYXR8aW50fGxvbmd8
b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25l
ZCkkJzsKK215ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKDo6fGNhbGxiYWNrfGRpY3Rpb25hcnl8
ZW51bXxleGNlcHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhj
ZXB0aW9uTWVtYmVyc18xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0ZXxcW3xh
bnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8
b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5l
eHRBdHRyaWJ1dGVSZXN0XzEgPSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7Ci1teSAkbmV4dFNp
bmdsZVR5cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRv
dWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmlj
dGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJzXzEgPSAnXihcKHw6OnxC
eXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0
fGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8aW50fGxlZ2FjeWNh
bGxlcnxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRl
cnxzaG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7
CitteSAkbmV4dFNpbmdsZVR5cGVfMSA9ICdeKDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfERhdGV8
Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8
c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRHZXRfMSA9ICdeKDt8Z2V0
cmFpc2VzfGdldHRlcnxzZXRyYWlzZXN8c2V0dGVyKSQnOwogbXkgJG5leHRBcmd1bWVudE5hbWVf
MSA9ICdeKGF0dHJpYnV0ZXxjYWxsYmFja3xjb25zdHxjcmVhdG9yfGRlbGV0ZXJ8ZGljdGlvbmFy
eXxlbnVtfGV4Y2VwdGlvbnxnZXR0ZXJ8aW1wbGVtZW50c3xpbmhlcml0fGludGVyZmFjZXxsZWdh
Y3ljYWxsZXJ8cGFydGlhbHxzZXJpYWxpemVyfHNldHRlcnxzdGF0aWN8c3RyaW5naWZpZXJ8dHlw
ZWRlZnx1bnJlc3RyaWN0ZWQpJCc7CiBteSAkbmV4dENvbnN0VmFsdWVfMSA9ICdeKGZhbHNlfHRy
dWUpJCc7CiBteSAkbmV4dENvbnN0VmFsdWVfMiA9ICdeKC18SW5maW5pdHl8TmFOKSQnOwogbXkg
JG5leHREZWZpbml0aW9uXzEgPSAnXihjYWxsYmFja3xpbnRlcmZhY2UpJCc7Ci1teSAkbmV4dEF0
dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdF8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0
ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2Vx
dWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dEF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdF8xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8RGF0
ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnR8bG9uZ3xvYmplY3R8b2N0ZXR8c2Vx
dWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CiBteSAkbmV4dFVuc2ln
bmVkSW50ZWdlclR5cGVfMSA9ICdeKGludHxsb25nfHNob3J0KSQnOwotbXkgJG5leHRJbnRlcmZh
Y2VNZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1
dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVy
fGluaGVyaXR8aW50fGxlZ2FjeWNhbGxlcnxsb25nfG9iamVjdHxvY3RldHxyZWFkb25seXxzZXF1
ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0aWN8c3RyaW5naWZpZXJ8dW5yZXN0cmlj
dGVkfHVuc2lnbmVkfHZvaWQpJCc7CiBteSAkbmV4dERlZmF1bHRWYWx1ZV8xID0gJ14oLXxJbmZp
bml0eXxOYU58ZmFsc2V8bnVsbHx0cnVlKSQnOwogCisKIHN1YiBwYXJzZURlZmluaXRpb25zCiB7
CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKQEAgLTI4MCw3ICsyODEsNyBAQCBzdWIgcGFyc2VEZWZp
bml0aW9uCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ0eXBlZGVmIikgewogICAgICAgICBy
ZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9
Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgaWYgKCRu
ZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIp
IHsKICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9r
ZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKQEAgLTU3MSw5ICs1NzIsOCBAQCBzdWIgcGFy
c2VJbmhlcml0YW5jZQogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlm
ICgkbmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICI6IiwgX19MSU5FX18pOwotICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9r
ZW4sIElkZW50aWZpZXJUb2tlbik7Ci0gICAgICAgIHB1c2goQHBhcmVudCwgJHRva2VuLT52YWx1
ZSgpKTsKKyAgICAgICAgbXkgJHNjb3BlZE5hbWUgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7
CisgICAgICAgIHB1c2goQHBhcmVudCwgJHNjb3BlZE5hbWUpOwogICAgICAgICAjIE11bHRpcGxl
IGluaGVyaXRhbmNlPwogICAgICAgICBwdXNoKEBwYXJlbnQsIEB7JHNlbGYtPnBhcnNlSWRlbnRp
ZmllcnMoKX0pOwogICAgIH0KQEAgLTY2NCw5ICs2NjQsOSBAQCBzdWIgcGFyc2VJbXBsZW1lbnRz
U3RhdGVtZW50CiAKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKLSAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVHlwZSgkc2VsZi0+Z2V0VG9rZW4oKSwgSWRlbnRpZmllclRva2VuKTsKKyAgICAgICAg
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImltcGxlbWVudHMiLCBfX0xJTkVfXyk7Ci0gICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblR5cGUoJHNlbGYtPmdldFRva2VuKCksIElkZW50aWZpZXJUb2tlbik7
CisgICAgICAgICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTM2OCw5ICsxMzY4LDkgQEAgc3ViIHBhcnNlRXh0ZW5kZWRBdHRy
aWJ1dGUKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOwotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewot
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkdG9rZW4tPnZhbHVlKCkpOworICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAi
OjoiKSB7CisgICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgp
OworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCRzY29w
ZWROYW1lKTsKICAgICB9CiAgICAgIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTcGVjIGRvZXNu
JyBhbGxvdyAiW10iLiBCdXQgV2ViS2l0IHJlcXVpcmVzLgogICAgIGlmICgkbmV4dC0+dmFsdWUo
KSBlcSAnXScpIHsKQEAgLTEzODMsOSArMTM4Myw5IEBAIHN1YiBwYXJzZUV4dGVuZGVkQXR0cmli
dXRlMgogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Ci0g
ICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwotICAgICAgICByZXR1cm4gJHNl
bGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6
OiIpIHsKKyAgICAgICAgbXkgJHNjb3BlZE5hbWUgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7
CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHNjb3Bl
ZE5hbWUpOwogICAgIH0KICAgICByZXR1cm4ge307CiB9CkBAIC0xNDIxLDkgKzE0MjEsOSBAQCBz
dWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QyCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsK
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKLSAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRv
a2VuKCk7Ci0gICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3Qz
KCR0b2tlbi0+dmFsdWUoKSk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICAgICAgbXkgJHNjb3BlZE5hbWUg
PSAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZVJlc3QzKCRzY29wZWROYW1lKTsKICAgICB9CiAgICAgaWYgKCRuZXh0
LT50eXBlKCkgPT0gSW50ZWdlclRva2VuKSB7CiAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOwpAQCAtMTQ0MCwxNSArMTQ0MCwxMyBAQCBzdWIgcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QzCiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRu
ZXh0LT52YWx1ZSgpIGVxICImIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIiYiLCBfX0xJTkVfXyk7Ci0gICAgICAgIG15ICR0b2tlbiA9ICRz
ZWxmLT5nZXRUb2tlbigpOwotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwg
SWRlbnRpZmllclRva2VuKTsKLSAgICAgICAgcmV0dXJuICRuYW1lIC4gIiYiIC4gJHRva2VuLT52
YWx1ZSgpOworICAgICAgICBteSAkcmlnaHRWYWx1ZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUo
KTsKKyAgICAgICAgcmV0dXJuICRuYW1lIC4gIiYiIC4gJHJpZ2h0VmFsdWU7CiAgICAgfQogICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAifCIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ8IiwgX19MSU5FX18pOwotICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgk
dG9rZW4sIElkZW50aWZpZXJUb2tlbik7Ci0gICAgICAgIHJldHVybiAkbmFtZSAuICJ8IiAuICR0
b2tlbi0+dmFsdWUoKTsKKyAgICAgICAgbXkgJHJpZ2h0VmFsdWUgPSAkc2VsZi0+cGFyc2VTY29w
ZWROYW1lKCk7CisgICAgICAgIHJldHVybiAkbmFtZSAuICJ8IiAuICRyaWdodFZhbHVlOwogICAg
IH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAgICAgICAgIG15ICRhdHRyID0g
e307CkBAIC0xNDYwLDIxICsxNDU4LDIxIEBAIHN1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVz
dDMKICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZh
bHVlKCkgPX4gLyRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xLykgewogICAgICAgICBteSBA
bmFtZXMgPSAoKTsKICAgICAgICAgcHVzaChAbmFtZXMsICRuYW1lKTsKLSAgICAgICAgcHVzaChA
bmFtZXMsIEB7JHNlbGYtPnBhcnNlSWRlbnRpZmllckxpc3QoKX0pOworICAgICAgICBwdXNoKEBu
YW1lcywgQHskc2VsZi0+cGFyc2VTY29wZWROYW1lTGlzdE5vQ29tbWEoKX0pOwogICAgICAgICBy
ZXR1cm4gam9pbignICcsIEBuYW1lcyk7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVj
dGVkVG9rZW4oJG5leHQtPnZhbHVlKCkpOwogfQogCi1zdWIgcGFyc2VJZGVudGlmaWVyTGlzdAor
c3ViIHBhcnNlU2NvcGVkTmFtZUxpc3ROb0NvbW1hCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsK
ICAgICBteSBAbmFtZXMgPSAoKTsKIAogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIG15ICRuZXh0
ID0gJHNlbGYtPm5leHRUb2tlbigpOwotICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKLSAgICAgICAgICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+Z2V0VG9rZW4o
KS0+dmFsdWUoKSk7CisgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7CisgICAgICAgICAgICBwdXNoKEBuYW1lcywg
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IGxhc3Q7CiAgICAgICAgIH0KQEAgLTE2NTgsOSArMTY1Niw5IEBAIHN1YiBwYXJzZU5vbkFueVR5
cGUKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJE
YXRlIiwgX19MSU5FX18pOwogICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNlbGYtPnBhcnNlVHlw
ZVN1ZmZpeCgpOwogICAgIH0KLSAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9r
ZW4pIHsKLSAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Ci0gICAgICAgIHJl
dHVybiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisgICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6
OiIpIHsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7CisgICAg
ICAgIHJldHVybiAkbmFtZSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKICAgICB9CiAgICAg
JHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwog
fQpAQCAtMTk2NywxMCArMTk2NSw3IEBAIHN1YiBwYXJzZUV4Y2VwdGlvbkxpc3QKICAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIigiKSB7CiAgICAgICAgIG15IEBleGNlcHRpb25zID0gKCk7CiAg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKCIsIF9f
TElORV9fKTsKLSAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Ci0gICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwotICAgICAg
ICBwdXNoKEBleGNlcHRpb25zLCAkdG9rZW4tPnZhbHVlKCkpOwotICAgICAgICBwdXNoKEBleGNl
cHRpb25zLCBAeyRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCl9KTsKKyAgICAgICAgcHVzaChAZXhj
ZXB0aW9ucywgQHskc2VsZi0+cGFyc2VTY29wZWROYW1lTGlzdCgpfSk7CiAgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKICAg
ICAgICAgcmV0dXJuIFxAZXhjZXB0aW9uczsKICAgICB9CkBAIC0yMDEzLDcgKzIwMDgsNyBAQCBz
dWIgcGFyc2VEZWZpbml0aW9uT2xkCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtb2R1bGUi
KSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VNb2R1bGUoKTsKICAgICB9Ci0gICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKICAgICAg
ICAgcmV0dXJuICRzZWxmLT5wYXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoe30pOwogICAgIH0KICAg
ICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7
CkBAIC0yMjczLDYgKzIyNjgsOTMgQEAgc3ViIHBhcnNlT3B0aW9uYWxTZW1pY29sb24KICAgICB9
CiB9CiAKK3N1YiBwYXJzZVNjb3BlZE5hbWUKK3sKKyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAg
IG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiOjoiKSB7CisgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VBYnNvbHV0ZVNjb3BlZE5hbWUo
KTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUoKTsKKyAgICB9Cisg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Cit9CisKK3N1
YiBwYXJzZUFic29sdXRlU2NvcGVkTmFtZQoreworICAgIG15ICRzZWxmID0gc2hpZnQ7CisgICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICI6OiIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI6OiIpOworICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisgICAg
ICAgIHJldHVybiAiOjoiIC4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlU2NvcGVkTmFt
ZVBhcnRzKCk7CisgICAgfQorICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCkpOworfQorCitzdWIgcGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUKK3sKKyAgICBteSAk
c2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkdG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKSAuICRz
ZWxmLT5wYXJzZVNjb3BlZE5hbWVQYXJ0cygpOworICAgIH0KKyAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKK30KKworc3ViIHBhcnNlU2NvcGVkTmFtZVBh
cnRzCit7CisgICAgbXkgJHNlbGYgPSBzaGlmdDsKKyAgICBteSBAbmFtZXMgPSAoKTsKKworICAg
IHdoaWxlICgxKSB7CisgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgeworICAgICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6OiIpOworICAgICAgICAgICAgcHVz
aChAbmFtZXMsICI6OiIpOworICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CisgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmll
clRva2VuKTsKKyAgICAgICAgICAgIHB1c2goQG5hbWVzLCAkdG9rZW4tPnZhbHVlKCkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgbGFzdDsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gam9pbigiIiwgQG5hbWVzKTsKK30KKworc3ViIHBhcnNlU2NvcGVkTmFtZUxpc3QKK3sK
KyAgICBteSAkc2VsZiA9IHNoaWZ0OworICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSBlcSAiOjoiKSB7CisgICAgICAgIG15IEBuYW1lcyA9ICgpOworICAgICAgICBwdXNoKEBu
YW1lcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKKyAgICAgICAgcHVzaChAbmFtZXMsIEB7
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZXMoKX0pOworICAgICAgICByZXR1cm4gXEBuYW1lczsKKyAg
ICB9CisgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOworfQorCitzdWIgcGFyc2VTY29wZWROYW1lcworeworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgQG5hbWVzID0gKCk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICIsIikgeworICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICIsIik7CisgICAgICAgICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPnBhcnNlU2NvcGVk
TmFtZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxhc3Q7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIFxAbmFtZXM7Cit9CisKIHN1YiBhcHBseU1lbWJlckxpc3QKIHsK
ICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
</data>
<flag name="review"
          id="178112"
          type_id="1"
          status="+"
          setter="haraken"
    />
    <flag name="commit-queue"
          id="178114"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>