<?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>229710</bug_id>
          
          <creation_ts>2021-08-31 05:30:44 -0700</creation_ts>
          <short_desc>[WASM-Function-References] Add call_ref spec tests</short_desc>
          <delta_ts>2022-11-02 17:08:56 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>247393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry">dbezhetskov</reporter>
          <assigned_to name="Dmitry">dbezhetskov</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1788874</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-08-31 05:30:44 -0700</bug_when>
    <thetext>[WASM-Function-References] Add call_ref spec tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788875</commentid>
    <comment_count>1</comment_count>
      <attachid>436878</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-08-31 05:41:29 -0700</bug_when>
    <thetext>Created attachment 436878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788876</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-31 05:42:27 -0700</bug_when>
    <thetext>This patch modifies one of the wasm.json files. Please ensure that any changes in one have been mirrored to the other. You can find the wasm.json files at &quot;Source/JavaScriptCore/wasm/wasm.json&quot; and &quot;JSTests/wasm/wasm.json&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789040</commentid>
    <comment_count>3</comment_count>
      <attachid>436878</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-31 13:10:37 -0700</bug_when>
    <thetext>Comment on attachment 436878
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:431
&gt;              return gTypeIdx(type);

Let&apos;s rename it to gRef(type).

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:88
&gt; -    if (sub.isTypeIdx() &amp;&amp; parent.isFuncref())
&gt; +    if (sub.isRef() &amp;&amp; parent.isRefNull() &amp;&amp; sub.index == parent.index)
&gt; +        return true;
&gt; +
&gt; +    if (sub.isRef() &amp;&amp; parent.isFuncref())

Can you explain why this is the same to the old code?
1. Why don&apos;t we need to consider about `sub.isRefNull()`?
2. Why don&apos;t we need to consider about `parent.isRef()`?

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:102
&gt; +inline bool isFunctionRefType(Type type)
&gt; +{
&gt; +    return type.isRef() || type.isRefNull();
&gt;  }

Why doesn&apos;t it contain Funcref type? And if it it correct, can you rename this function since `isFunctionRefType` sounds like `isFuncref()`.

&gt; Source/JavaScriptCore/wasm/WasmGlobal.cpp:51
&gt;      case TypeKind::Externref:
&gt;      case TypeKind::Funcref:
&gt; -    case TypeKind::TypeIdx:
&gt;          return m_value.m_externref.get();

It removed `case TypeKind::TypeIdx:`, but it does not have `TypeKind::Ref` etc. Can you explain why?

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:-550
&gt; -        case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but it does not have `TypeKind::Ref` etc. Can you explain why?

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:-608
&gt; -        case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but Ref/RefNull is RELEASE_ASSERT_NOT_REACHED. Can you explain why?

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:-638
&gt; -        case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but Ref/RefNull is RELEASE_ASSERT_NOT_REACHED. Can you explain why?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-110
&gt; -            case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but Ref/RefNull is RELEASE_ASSERT_NOT_REACHED. Can you explain why?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-185
&gt; -            case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but Ref/RefNull is RELEASE_ASSERT_NOT_REACHED. Can you explain why?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-329
&gt; -        case TypeKind::TypeIdx:

It removed `case TypeKind::TypeIdx:`, but Ref/RefNull is RELEASE_ASSERT_NOT_REACHED. Can you explain why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790967</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-07 05:31:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/82817483&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790971</commentid>
    <comment_count>5</comment_count>
      <attachid>437493</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-09-07 06:08:18 -0700</bug_when>
    <thetext>Created attachment 437493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790972</commentid>
    <comment_count>6</comment_count>
      <attachid>436878</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-09-07 06:14:46 -0700</bug_when>
    <thetext>Comment on attachment 436878
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:431
&gt;&gt;              return gTypeIdx(type);
&gt; 
&gt; Let&apos;s rename it to gRef(type).

fixed

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:88
&gt;&gt; +    if (sub.isRef() &amp;&amp; parent.isFuncref())
&gt; 
&gt; Can you explain why this is the same to the old code?
&gt; 1. Why don&apos;t we need to consider about `sub.isRefNull()`?
&gt; 2. Why don&apos;t we need to consider about `parent.isRef()`?

if TypedFunctionReferences are enabled then Externref and FunctionRef are represented as nullable references with corresponding indices - https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md#reference-types.
I refactored code so that previous rule was always true.

About Subtyping:
* all references in TFR have supertype - Funcref
* non-nullable references are subtype of nullable-references
* two references are equal if corresponding heaptypes (in our case indices) are equal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793625</commentid>
    <comment_count>7</comment_count>
      <attachid>437493</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 00:44:47 -0700</bug_when>
    <thetext>Comment on attachment 437493
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Removed redundand TypeKind::TypeIdx because new Ref and RefNull opcodes cover all
&gt; +        the same cases.

I have several questions. So can you answer to these questions? And can you describe the changelog to answer these questions?

1. &quot;if TypedFunctionReferences are enabled then Externref and FunctionRef are represented as nullable references with corresponding indices&quot;. But I saw Wasm::Types::Funcref and Wasm::Types::Externref use in wasm/js/WebAssemblyGlobalConstructor.cpp, Table::wasmType, and TableInformation::wasmType. Can you explain why it is correct?
2. I saw several places are not having TypeKind::TypeIdx / TypeKind::Ref / TypeKind::RefNull. For example, BytecodeDumper::formatConstant has TypeKind::Externref and TypeKind::Funcref clauses, but it does not have Ref / RefNull etc. Can you explain why this is correct?

Also, can you add tests covering the above cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793626</commentid>
    <comment_count>8</comment_count>
      <attachid>437493</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 00:55:03 -0700</bug_when>
    <thetext>Comment on attachment 437493
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmGlobal.cpp:99
&gt; -    case TypeKind::TypeIdx:
&gt; +    case TypeKind::Ref:
&gt; +    case TypeKind::RefNull:

Why is it correct? TypeKind::Externref has different code from TypeKind::Funcref.
If Externref is represented as RefNull with particular index, I think this code is not doing the same thing to the previous code.
Can you add a test to ensure that TypeKind::Externref code is working after enabling Options::useWebAssemblyTypedFunctionReferences()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793627</commentid>
    <comment_count>9</comment_count>
      <attachid>437493</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 00:58:19 -0700</bug_when>
    <thetext>Comment on attachment 437493
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmParser.h:329
&gt;              sigIndex = SignatureInformation::get(info.usedSignatures[heapType].get());

Isn&apos;t it possible that sigIndex becomes the same to TypeKind::Funcref / TypeKind::Externref?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793628</commentid>
    <comment_count>10</comment_count>
      <attachid>437493</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-15 01:00:55 -0700</bug_when>
    <thetext>Comment on attachment 437493
Patch

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

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-110
&gt; -            case TypeKind::TypeIdx:

It is just removed. And Externref and Funcref has different code. Why is it correct?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-185
&gt; -            case TypeKind::TypeIdx:

It is just removed. And Externref and Funcref has different code. Why is it correct?

&gt; Source/JavaScriptCore/wasm/js/WasmToJS.cpp:-329
&gt; -        case TypeKind::TypeIdx:

It is just removed. And Externref and Funcref has different code. Why is it correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798829</commentid>
    <comment_count>11</comment_count>
      <attachid>439723</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-09-30 04:08:47 -0700</bug_when>
    <thetext>Created attachment 439723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798830</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-09-30 04:13:08 -0700</bug_when>
    <thetext>Now all places when we use TypeKind::Funcref or TypeKind::Externref are patched to accept both old and new version of this type. By new I mean (ref null funcref) and (ref null externref).

I also added a few tests to be sure that everything works as expected but it is not too much because we sooner or later will add tests from the spec repo and so, I don&apos;t want to duplicate the efforts to write more tests, but I&apos;m open for contr arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800522</commentid>
    <comment_count>13</comment_count>
      <attachid>439723</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-05 04:51:53 -0700</bug_when>
    <thetext>Comment on attachment 439723
Patch

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

Looks much better! But r- since I found several bugs.

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:101
&gt; +inline Type FuncrefType()

Function should not be title-case.
Rename it to funcrefType()

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:104
&gt; +        return Wasm::Type {Wasm::TypeKind::RefNull, Wasm::Nullable::Yes, static_cast&lt;Wasm::SignatureIndex&gt;(Wasm::TypeKind::Funcref)};

Add space around {.

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:108
&gt; +inline Type ExternrefType()

Function should not be title-case.
Rename it to externrefType()

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:111
&gt; +        return Wasm::Type {Wasm::TypeKind::RefNull, Wasm::Nullable::Yes, static_cast&lt;Wasm::SignatureIndex&gt;(Wasm::TypeKind::Externref)};

Add space around {.

&gt; Source/JavaScriptCore/wasm/WasmGlobal.cpp:97
&gt; +        } else if (m_type.kind == TypeKind::Ref || m_type.kind == TypeKind::RefNull || m_type.kind == TypeKind::Funcref) {

Why isn&apos;t it `isFuncref(m_type)`?

&gt; Source/JavaScriptCore/wasm/WasmOperations.cpp:568
&gt; +                if (!isExternref(returnType) &amp;&amp; !value.isCallable(vm)) {

Use `isFuncref(returnType)` instead of `!isExternref(returnType)`

&gt; Source/JavaScriptCore/wasm/WasmParser.h:311
&gt; +        sigIndex = static_cast&lt;SignatureIndex&gt;(typeKind);
&gt; +        typeKind = TypeKind::RefNull;

We are using `TypeKind::Funcref` / `TypeKind::Externref`.
Why is it OK? Doesn&apos;t normal signature conflict with these numbers?

&gt; Source/JavaScriptCore/wasm/WasmParser.h:329
&gt;              sigIndex = SignatureInformation::get(info.usedSignatures[heapType].get());

Isn&apos;t it possible that sigIndex becomes the same to TypeKind::Funcref / TypeKind::Externref?

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:82
&gt; +        const auto&amp; argumentType = signature.argument(argIndex);

I think keeping switch statement and putting Wasm::isExternref checks in default clause is cleaner.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:286
&gt; +        case Wasm::TypeKind::Ref:
&gt; +        case Wasm::TypeKind::RefNull:

I think Externref is represented as a part of RefNull. Why is RefNull separated from `case Wasm::TypeKind::Externref`? This is handling RefNull-based Externref as Funcref, correct?

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:-249
&gt; -                    switch (moduleInformation.globals[import.kindIndex].type.kind) {

Keep using switch since it is cleaner.
Add Wasm::isExternref etc. handling in default clause instead.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:-304
&gt; -                    switch (globalType.kind) {

Ditto. Keep using switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808190</commentid>
    <comment_count>14</comment_count>
      <attachid>439723</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-10-24 03:55:15 -0700</bug_when>
    <thetext>Comment on attachment 439723
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:101
&gt;&gt; +inline Type FuncrefType()
&gt; 
&gt; Function should not be title-case.
&gt; Rename it to funcrefType()

done

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:104
&gt;&gt; +        return Wasm::Type {Wasm::TypeKind::RefNull, Wasm::Nullable::Yes, static_cast&lt;Wasm::SignatureIndex&gt;(Wasm::TypeKind::Funcref)};
&gt; 
&gt; Add space around {.

done

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:108
&gt;&gt; +inline Type ExternrefType()
&gt; 
&gt; Function should not be title-case.
&gt; Rename it to externrefType()

done

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:111
&gt;&gt; +        return Wasm::Type {Wasm::TypeKind::RefNull, Wasm::Nullable::Yes, static_cast&lt;Wasm::SignatureIndex&gt;(Wasm::TypeKind::Externref)};
&gt; 
&gt; Add space around {.

done

&gt;&gt; Source/JavaScriptCore/wasm/WasmGlobal.cpp:97
&gt;&gt; +        } else if (m_type.kind == TypeKind::Ref || m_type.kind == TypeKind::RefNull || m_type.kind == TypeKind::Funcref) {
&gt; 
&gt; Why isn&apos;t it `isFuncref(m_type)`?

`isFuncref(type)` means that type has kind Funcref (it doesn&apos;t matter how it is represented).
Here I handled two cases - `Funcref || any ref || any refnull` because it has the same code.

But I made it cleaner and split all three cases - Funcref, Externref and Ref|RefNull with type idx.

&gt;&gt; Source/JavaScriptCore/wasm/WasmOperations.cpp:568
&gt;&gt; +                if (!isExternref(returnType) &amp;&amp; !value.isCallable(vm)) {
&gt; 
&gt; Use `isFuncref(returnType)` instead of `!isExternref(returnType)`

done

&gt;&gt; Source/JavaScriptCore/wasm/WasmParser.h:311
&gt;&gt; +        typeKind = TypeKind::RefNull;
&gt; 
&gt; We are using `TypeKind::Funcref` / `TypeKind::Externref`.
&gt; Why is it OK? Doesn&apos;t normal signature conflict with these numbers?

I think it is OK, since `funcref and externref are reinterpreted as abbreviations (in both binary and text format) for (ref null func) and (ref null extern), respectively` (https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md#reference-types)
So here we meet typeKind == TypeKind::Funcref and typed function references is enabled so we transform these old representations to `RefNull`.

what is normal signature?

&gt;&gt; Source/JavaScriptCore/wasm/WasmParser.h:329
&gt;&gt;              sigIndex = SignatureInformation::get(info.usedSignatures[heapType].get());
&gt; 
&gt; Isn&apos;t it possible that sigIndex becomes the same to TypeKind::Funcref / TypeKind::Externref?

I think no because TypeKind::Funcref/TypeKind::Externref represented as negative numbers and we shouldn&apos;t allow such big indices for heap types to be equal to TypeKind::Funcref/TypeKind::Externref.
See the maximum for usedSignatures here: https://webkit-search.igalia.com/webkit/source/Source/JavaScriptCore/wasm/WasmLimits.h#40
And we check it here: https://webkit-search.igalia.com/webkit/source/Source/JavaScriptCore/wasm/WasmSectionParser.cpp#46

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:82
&gt;&gt; +        const auto&amp; argumentType = signature.argument(argIndex);
&gt; 
&gt; I think keeping switch statement and putting Wasm::isExternref checks in default clause is cleaner.

done because most of the logic moved to `fromJSValue`

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp:286
&gt;&gt; +        case Wasm::TypeKind::RefNull:
&gt; 
&gt; I think Externref is represented as a part of RefNull. Why is RefNull separated from `case Wasm::TypeKind::Externref`? This is handling RefNull-based Externref as Funcref, correct?

Sorry, this is mess. I&apos;ve merged all cases together to avoid `FALLTHROUGH`, now it should be clear.

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:-249
&gt;&gt; -                    switch (moduleInformation.globals[import.kindIndex].type.kind) {
&gt; 
&gt; Keep using switch since it is cleaner.
&gt; Add Wasm::isExternref etc. handling in default clause instead.

done

&gt;&gt; Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:-304
&gt;&gt; -                    switch (globalType.kind) {
&gt; 
&gt; Ditto. Keep using switch.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808191</commentid>
    <comment_count>15</comment_count>
      <attachid>442301</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-10-24 03:55:59 -0700</bug_when>
    <thetext>Created attachment 442301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808331</commentid>
    <comment_count>16</comment_count>
      <attachid>442354</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-10-25 03:27:45 -0700</bug_when>
    <thetext>Created attachment 442354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809189</commentid>
    <comment_count>17</comment_count>
      <attachid>442571</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-10-26 23:20:26 -0700</bug_when>
    <thetext>Created attachment 442571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809203</commentid>
    <comment_count>18</comment_count>
      <attachid>442573</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2021-10-27 02:04:53 -0700</bug_when>
    <thetext>Created attachment 442573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809364</commentid>
    <comment_count>19</comment_count>
      <attachid>442573</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-27 11:58:15 -0700</bug_when>
    <thetext>Comment on attachment 442573
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809378</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-27 12:29:05 -0700</bug_when>
    <thetext>Committed r284935 (243605@main): &lt;https://commits.webkit.org/243605@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442573.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436878</attachid>
            <date>2021-08-31 05:41:29 -0700</date>
            <delta_ts>2021-09-07 06:08:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20210831194127.patch</filename>
            <type>text/plain</type>
            <size>42127</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
N2MzYWE2ZDIxYWI2NWQ0YjdkNjNlNDdlODU0Mjg4ZDUyOTBlYWU5Li5jMDJkNDNiMTUwNzU0YTMy
MDZmMDBlNTgxYTc5YTI3NzA0MGYxOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMS0wOC0zMSAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFJlbW92ZWQgcmVkdW5kYW5kIFR5cGVLaW5kOjpUeXBlSWR4IGJlY2F1
c2UgbmV3IFJlZiBhbmQgUmVmTnVsbCBvcGNvZGVzIGNvdmVyIGFsbAorICAgICAgICB0aGUgc2Ft
ZSBjYXNlcy4KKworICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OnRtcEZvclR5cGUpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENDYWxsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6Om1vdmVPcEZvclZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206
OkFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Oldhc206OkFp
cklSR2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJh
dG9yOjphZGRDb25zdGFudCk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjph
ZGRSZWZGdW5jKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oOgorICAg
ICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24g
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjptYXJzaGFs
bExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQuaDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6aXNWYWx1ZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUp
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1JlZlR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpp
c0Z1bmN0aW9uUmVmVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzRGVmYXVsdGFibGVUeXBl
KToKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAg
KiB3YXNtL1dhc21HbG9iYWwuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9iYWw6OmdldCBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6c2V0KToKKyAgICAgICAgKiB3YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJh
dG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAgICAgICogd2FzbS9XYXNtUGFy
c2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFs
dWVUeXBlKToKKyAgICAgICAgKiB3YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6U2VjdGlvblBhcnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2Fz
bS9qcy9XYXNtVG9KUy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAg
ICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9u
Ojpqc0NhbGxFbnRyeXBvaW50U2xvdyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMDgtMjYgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEN1dCBkb3duIG9uIHVzZSBvZiBD
RkdldFR5cGVJRCwgdXNpbmcgZHluYW1pY19jZl9jYXN0IGluc3RlYWQ7IHJlbGF0ZWQgc3RyZWFt
bGluaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJh
dG9yLmNwcAppbmRleCBmOWMyOTQ2MDA2MTg3M2QwMDQ0OThhODAwNDQ2NjJjZTIxN2Y2YmU0Li40
YzAyMDM2NDAyYjJlMTUzMGQyMGU1Y2Q0MjAzOGE0N2NlMDQzMzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTQyNiw3ICs0
MjYsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGc2NCgpOwogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgcmV0dXJuIGdGdW5jcmVmKCk7Ci0gICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVybiBnVHlw
ZUlkeCh0eXBlKTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAg
ICAgcmV0dXJuIGdFeHRlcm5yZWYoKTsKQEAgLTYwNCw3ICs2MDUsOCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpS
ZWY6CisgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgICAg
IHJlc3VsdFR5cGUgPSBCMzo6SW50NjQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC02NTQsNyArNjU2LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5y
ZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVybiBNb3ZlOwogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGMzI6CiAgICAgICAgICAgICByZXR1cm4gTW92ZUZsb2F0OwpAQCAtOTEyLDcg
KzkxNSw4IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZv
cm1hdGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAg
ICAgICAgICAgICBhcHBlbmQoTW92ZSwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTAxNSw3ICsxMDE5LDggQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkTG9jYWwoVHlwZSB0eXBlLCB1aW50MzJfdCBjb3VudCkg
LT4gUGFydGlhbFJlc3VsdAogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6
Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGFwcGVu
ZChNb3ZlLCBBcmc6OmltbShKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSwgbG9jYWwpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTEwNTEsNyAr
MTA1Niw4IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENvbnN0YW50KEJhc2ljQmxvY2sqIGJs
b2NrLCBUeXBlIHR5cGUsIHVpbnQ2NF90IHZhbHVlKSAtCiAgICAgY2FzZSBUeXBlS2luZDo6STY0
OgogICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICBjYXNlIFR5cGVLaW5kOjpGdW5j
cmVmOgotICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVm
OgorICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIGFwcGVuZChibG9jaywgTW92
ZSwgQXJnOjpiaWdJbW0odmFsdWUpLCByZXN1bHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IFR5cGVLaW5kOjpGMzI6CkBAIC0xMDk4LDcgKzExMDQsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9y
OjphZGRSZWZGdW5jKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQ
YXJ0aQogICAgIC8vIEZJWE1FOiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NTA2Pi4KICAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNz
ZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKSB7CiAgICAgICAgIFNpZ25hdHVyZUluZGV4
IHNpZ25hdHVyZUluZGV4ID0gbV9pbmZvLnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhT
cGFjZShpbmRleCk7Ci0gICAgICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoVHlwZSB7IFR5cGVLaW5k
OjpUeXBlSWR4LCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH0pOworICAgICAgICByZXN1
bHQgPSB0bXBGb3JUeXBlKFR5cGUgeyBUeXBlS2luZDo6UmVmLCBOdWxsYWJsZTo6Tm8sIHNpZ25h
dHVyZUluZGV4IH0pOwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5
cGVzOjpGdW5jcmVmKTsKICAgICBlbWl0Q0NhbGwoJm9wZXJhdGlvbldhc21SZWZGdW5jLCByZXN1
bHQsIGluc3RhbmNlVmFsdWUoKSwgYWRkQ29uc3RhbnQoVHlwZXM6OkkzMiwgaW5kZXgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgK
aW5kZXggNmMwMjZlMDhhNDA5ZTk5NWQ0MzE4ZGZiMTgwNDYyNmQwZmFkMTc1Zi4uMjQwZTEwMmJm
ZGEwODk4NzliMmI0OTMzYTFkMTFmNzE2NTliMzllOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTEwNyw3ICsxMDcsOCBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgor
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgcmV0dXJuIG1hcnNo
YWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZz
ZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkY2NDoKQEAgLTE5Niw3ICsxOTcsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAg
ICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgog
ICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdw
QXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21Gb3JtYXQuaAppbmRleCBjMGNiMzFiN2NiZjAwNmFhMDE5MzZjMWY0NDZkNmIxODlmMGRlMTU1
Li5kMjNmYzEzM2M3NmVjYmU2ZGJiMDEwY2JlMTY3MzAzNzBjOTAxZGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC02OCw3ICs2OCw4IEBAIGlubGluZSBib29s
IGlzVmFsdWVUeXBlKFR5cGUgdHlwZSkKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAg
ICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2Fz
ZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBU
eXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK
QEAgLTgxLDcgKzgyLDEwIEBAIGlubGluZSBib29sIGlzU3VidHlwZShUeXBlIHN1YiwgVHlwZSBw
YXJlbnQpCiAgICAgaWYgKHN1Yi5pc051bGxhYmxlKCkgJiYgIXBhcmVudC5pc051bGxhYmxlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzdWIuaXNUeXBlSWR4KCkgJiYgcGFy
ZW50LmlzRnVuY3JlZigpKQorICAgIGlmIChzdWIuaXNSZWYoKSAmJiBwYXJlbnQuaXNSZWZOdWxs
KCkgJiYgc3ViLmluZGV4ID09IHBhcmVudC5pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICBpZiAoc3ViLmlzUmVmKCkgJiYgcGFyZW50LmlzRnVuY3JlZigpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIHJldHVybiBzdWIgPT0gcGFyZW50OwpAQCAtODksNyArOTMsMTIgQEAg
aW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKIAogaW5saW5lIGJv
b2wgaXNSZWZUeXBlKFR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gdHlwZS5pc0Z1bmNyZWYoKSB8
fCB0eXBlLmlzRXh0ZXJucmVmKCkgfHwgdHlwZS5pc1R5cGVJZHgoKTsKKyAgICByZXR1cm4gdHlw
ZS5pc0Z1bmNyZWYoKSB8fCB0eXBlLmlzRXh0ZXJucmVmKCkgfHwgdHlwZS5pc1JlZigpIHx8IHR5
cGUuaXNSZWZOdWxsKCk7Cit9CisKK2lubGluZSBib29sIGlzRnVuY3Rpb25SZWZUeXBlKFR5cGUg
dHlwZSkKK3sKKyAgICByZXR1cm4gdHlwZS5pc1JlZigpIHx8IHR5cGUuaXNSZWZOdWxsKCk7CiB9
CiAKIGlubGluZSBib29sIGlzVmFsaWRIZWFwVHlwZUtpbmQoVHlwZUtpbmQga2luZCkKQEAgLTEw
Niw3ICsxMTUsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5cGVLaW5kKFR5cGVLaW5kIGtp
bmQpCiAKIGlubGluZSBib29sIGlzRGVmYXVsdGFibGVUeXBlKFR5cGUgdHlwZSkKIHsKLSAgICBy
ZXR1cm4gIWlzUmVmVHlwZSh0eXBlKSB8fCB0eXBlLmlzTnVsbGFibGUoKTsKKyAgICByZXR1cm4g
IXR5cGUuaXNSZWYoKTsKIH0KIAogZW51bSBjbGFzcyBFeHRlcm5hbEtpbmQgOiB1aW50OF90IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKaW5k
ZXggNGU2YjgzMjIwNDA3NzZhMjUxNzIyZWVhMjE4ZjQ2YzJjMzk5MTMxMC4uNGZlYzExY2FjNDdm
YTYwZThiZDE0YWJkNTU1NjA1ZjlhMzdiY2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTEwODEsNyArMTA4MSw3IEBAIEZPUl9F
QUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogCiAgICAgICAgIGlmIChPcHRp
b25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpIHsKICAgICAgICAg
ICAgIFNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbV9pbmZvLnNpZ25hdHVyZUluZGV4
RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShpbmRleCk7Ci0gICAgICAgICAgICBtX2V4cHJlc3Npb25T
dGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7VHlwZUtpbmQ6OlR5cGVJZHgsIE51bGxhYmxl
OjpObywgc2lnbmF0dXJlSW5kZXh9LCByZXN1bHQpOworICAgICAgICAgICAgbV9leHByZXNzaW9u
U3RhY2suY29uc3RydWN0QW5kQXBwZW5kKFR5cGUge1R5cGVLaW5kOjpSZWYsIE51bGxhYmxlOjpO
bywgc2lnbmF0dXJlSW5kZXh9LCByZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogCkBAIC0xMjIzLDcgKzEyMjMsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9S
RV9PUChDUkVBVEVfQ0FTRSkKIAogICAgIGNhc2UgQ2FsbFJlZjogewogICAgICAgICBXQVNNX1BB
UlNFUl9GQUlMX0lGKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVu
Y2VzKCksICJmdW5jdGlvbiByZWZlcmVuY2VzIGFyZSBub3QgZW5hYmxlZCIpOwotICAgICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgpLmlz
VHlwZUlkeCgpLCAibm9uLWZ1bmNyZWYgY2FsbF9yZWYgdmFsdWUgIiwgbV9leHByZXNzaW9uU3Rh
Y2subGFzdCgpLnR5cGUoKS5raW5kKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRigh
aXNGdW5jdGlvblJlZlR5cGUobV9leHByZXNzaW9uU3RhY2subGFzdCgpLnR5cGUoKSksICJub24t
ZnVuY3JlZiBjYWxsX3JlZiB2YWx1ZSAiLCBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgp
LmtpbmQpOwogCiAgICAgICAgIGNvbnN0IFNpZ25hdHVyZUluZGV4IGNhbGxlZVNpZ25hdHVyZUlu
ZGV4ID0gbV9leHByZXNzaW9uU3RhY2subGFzdCgpLnR5cGUoKS5pbmRleDsKICAgICAgICAgY29u
c3QgU2lnbmF0dXJlJiBjYWxsZWVTaWduYXR1cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6Z2V0
KGNhbGxlZVNpZ25hdHVyZUluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21HbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUds
b2JhbC5jcHAKaW5kZXggNTlkYTk3N2MzY2E2ZmE0Y2EzNTdlMGNmNWRlYTRkNTY2YmIwYzk0ZC4u
NzYxMTY5NmZiNDJjYjhmMjBiMzQ3ZDNkNjgyYTJkZmI1NGI5YzhjNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAgSlNWYWx1ZSBH
bG9iYWw6OmdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAogICAgICAgICBy
ZXR1cm4ganNOdW1iZXIocHVyaWZ5TmFOKGJpdHdpc2VfY2FzdDxkb3VibGU+KG1fdmFsdWUubV9w
cmltaXRpdmUpKSk7CiAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgIGNhc2UgVHlw
ZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKICAgICAgICAgcmV0
dXJuIG1fdmFsdWUubV9leHRlcm5yZWYuZ2V0KCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC05NCw3ICs5Myw4IEBAIHZvaWQgR2xvYmFsOjpzZXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1bWVudCkKICAgICAgICAgbV92
YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwgYXJndW1lbnQpOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICBj
YXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOiB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOwog
ICAgICAgICBib29sIGlzTnVsbGFibGUgPSBtX3R5cGUuaXNOdWxsYWJsZSgpOwpAQCAtMTA0LDcg
KzEwNCw3IEBAIHZvaWQgR2xvYmFsOjpzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBhcmd1bWVudCkKICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmpl
Y3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG1fdHlwZS5raW5kID09
IFR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJGdW5jdGlv
bikpIHsKKyAgICAgICAgaWYgKGlzRnVuY3Rpb25SZWZUeXBlKG1fdHlwZSkgJiYgKHdhc21GdW5j
dGlvbiB8fCB3YXNtV3JhcHBlckZ1bmN0aW9uKSkgewogICAgICAgICAgICAgV2FzbTo6U2lnbmF0
dXJlSW5kZXggcGFyYW1JbmRleCA9IG1fdHlwZS5pbmRleDsKICAgICAgICAgICAgIFdhc206OlNp
Z25hdHVyZUluZGV4IGFyZ0luZGV4OwogICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCmlu
ZGV4IDgxYTVjZGJjYWUzMjg2YmUzMmNhNDkwZGU0NWVlM2FmZjc4MTk4NTYuLmM4NWFlYjVhZDIy
NzFjM2I3MTg0ZDJkNGZiZDdmMTQwODJjOTM0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtNTQ3LDcgKzU0Nyw2IEBAIGF1
dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5j
cmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgaWYgKGdw
ckluZGV4IDwgZ3ByQ291bnQpCiAgICAgICAgICAgICAgICAgKytncHJJbmRleDsKICAgICAgICAg
ICAgIGVsc2UgaWYgKHN0YWNrSW5kZXgrKyA+PSBzdGFja0NvdW50KQpAQCAtNjA1LDcgKzYwNCw2
IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBT
aWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAg
aWYgKGdwckluZGV4ID4gZ3ByTGltaXQpCiAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2ldID0g
dmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoLS1ncHJJbmRleCk7CiAgICAgICAgICAgICBlbHNlCkBA
IC02MzUsNyArNjMzLDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9y
Q2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPiBncHJMaW1pdCkKICAgICAgICAgICAgICAgICB0
ZW1wb3JhcnlSZXN1bHRzW2ldID0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoLS1ncHJJbmRleCk7
CiAgICAgICAgICAgICBlbHNlCkBAIC02OTMsNyArNjkwLDggQEAgYXV0byBMTEludEdlbmVyYXRv
cjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAt
PiBWZWMKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Cisg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRleCA8IG1h
eEdQUkluZGV4KQogICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQodmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwobnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMgKyBncHJJbmRleCsr
KSk7CiAgICAgICAgICAgICBlbHNlCkBAIC03MDgsOCArNzA2LDYgQEAgYXV0byBMTEludEdlbmVy
YXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
KSAtPiBWZWMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lk
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpS
ZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzUwLDcgKzc0Niw4
IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1cmUmIHNp
Z25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAg
ICAgYWRkQXJndW1lbnQoaSwgZ3BySW5kZXgsIG1heEdQUkluZGV4KTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC03NTksOCArNzU2LDYgQEAgYXV0
byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJl
KSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCA2M2Q4OWQ2MWQ0MzUzMGEyNmZi
NTQxNWUyNzAxY2MzMGE3M2EzMjg0Li4wOGVjZWRiMTZjZmVmZGM3OTc1MDk0MjQ0YjVlM2Q4MTll
MDY2MzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2Vy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCkBAIC0zMjAs
NyArMzIwLDYgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNl
VmFsdWVUeXBlKGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJgogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIHR5cGVLaW5kID0gaGVhcEtpbmQ7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICB0eXBlS2luZCA9IFR5cGVLaW5kOjpUeXBlSWR4OwogICAgICAgICAg
ICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4oaGVhcFR5cGUpID49IGluZm8udXNlZFNpZ25hdHVy
ZXMuc2l6ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHNp
Z0luZGV4ID0gU2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChpbmZvLnVzZWRTaWduYXR1cmVzW2hl
YXBUeXBlXS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtU2VjdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2Vj
dGlvblBhcnNlci5jcHAKaW5kZXggMGY4Y2NiN2UyYzNiNjQxMTYzNWNkOWY1YjA0OGIzNTYzMjA1
ZmE3NC4uYTMxMGQ3NWUwZTA3OTUzMTg5MmNmZTY3YmI1NjNjOWQ2Mjc4YWY2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtNjA3
LDcgKzYwNyw3IEBAIGF1dG8gU2VjdGlvblBhcnNlcjo6cGFyc2VJbml0RXhwcih1aW50OF90JiBv
cGNvZGUsIHVpbnQ2NF90JiBiaXRzT3JJbXBvcnROdW1iZXIsCiAKICAgICAgICAgaWYgKE9wdGlv
bnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICAg
ICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBtX2luZm8tPnNpZ25hdHVyZUluZGV4
RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShpbmRleCk7Ci0gICAgICAgICAgICByZXN1bHRUeXBlID0g
eyBUeXBlS2luZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9OworICAg
ICAgICAgICAgcmVzdWx0VHlwZSA9IHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWdu
YXR1cmVJbmRleCB9OwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBU
eXBlczo6RnVuY3JlZjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMu
Y3BwCmluZGV4IGY2N2YyNDJhNzg5MTNhZTVjMDJhYTU2OGU5OWFjNjVjZGJiODBmZGUuLjU1ZDcw
MTA4NWViYzQyYWFmYTM0YmNmOGZjZmMzNDA2YzVjYmY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTEwNyw3ICsxMDcsNiBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVkIGFib3ZlLgotICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6VHlwZUlkeDoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpJMzI6CkBAIC0xODIsNyArMTgxLDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWY6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gSGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAtMzI2
LDcgKzMyNCw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVm
OgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgaml0Lm1vdmUo
R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHAKaW5kZXggM2FiM2MzZDVjYjVjOTAwOWJlYzJiNmQ4MGQ0NDRjODBjMTQzZWFkZS4uZmRmZDc2
YWEyZDJhMWRlYWM1NDI2Yjk2NzAyOGM0NmQ3Mzk5ZmZlNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTgzLDE0
ICs4MywxNSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5RnVuY3Rp
b24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgICAgICBjYXNlIFdhc206OlR5
cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBhcmcgPSBKU1ZhbHVlOjpkZWNvZGUoYXJnLnRvSW50
MzIoZ2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmTnVs
bDoKKyAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgogICAgICAgICBjYXNlIFdhc206
OlR5cGVLaW5kOjpGdW5jcmVmOiB7CiAgICAgICAgICAgICBib29sIGlzTnVsbGFibGUgPSBzaWdu
YXR1cmUuYXJndW1lbnQoYXJnSW5kZXgpLmlzTnVsbGFibGUoKTsKICAgICAgICAgICAgIFdlYkFz
c2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgICAgICAgICBXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CiAg
ICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIGFyZywgd2FzbUZ1
bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUgfHwgIWFyZy5pc051
bGwoKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9y
KGdsb2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5j
dGlvbiIpKSk7Ci0gICAgICAgICAgICBpZiAoc2lnbmF0dXJlLmFyZ3VtZW50KGFyZ0luZGV4KS5r
aW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdy
YXBwZXJGdW5jdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmN0aW9uUmVmVHlw
ZShzaWduYXR1cmUuYXJndW1lbnQoYXJnSW5kZXgpKSAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21X
cmFwcGVyRnVuY3Rpb24pKSB7CiAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXgg
cGFyYW1JbmRleCA9IHNpZ25hdHVyZS5hcmd1bWVudChhcmdJbmRleCkuaW5kZXg7CiAgICAgICAg
ICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7CiAgICAgICAgICAgICAgICAg
aWYgKHdhc21GdW5jdGlvbikKQEAgLTExNyw4ICsxMTgsNiBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlZv
aWQ6CiAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoK
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CkBAIC0y
OTQsNyArMjkzLDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+IFdlYkFz
c2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkKICAgICAgICAgICAgICAgICBq
aXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hHUFIsIHdhc21DYWxsSW5mby5wYXJhbXNbaV0u
Z3ByKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgor
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBjYXNlIFdhc206
OlR5cGVLaW5kOjpGdW5jcmVmOiB7CiAgICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdB
U00gZXhwb3J0ZWQgZnVuY3Rpb24uCiAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNj
cmF0Y2hHUFIpOwpAQCAtMzE0LDcgKzMxNCw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0Vu
dHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAg
ICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5v
dEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSkpKTsKIAogICAgICAgICAgICAgaXNXYXNtRnVuY3Rp
b24ubGluaygmaml0KTsKLSAgICAgICAgICAgIGlmICh0eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtp
bmQ6OlR5cGVJZHgpIHsKKyAgICAgICAgICAgIGlmIChXYXNtOjppc0Z1bmN0aW9uUmVmVHlwZSh0
eXBlKSkgewogICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7
CiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0
Y2hHUFIsIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkp
LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5j
aFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBkYjQwOTJh
ZDY5NDgyZjdhMDlkM2JlMWY3NTIzNDIyZDlkNWFmMTNkLi5mNGQ4N2Y0NGZlZTY1ZjY1ZmI0ZjJj
MzVmN2I1YWFiYTA2MGQ1N2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0yNDcsNyArMjQ3LDYg
QEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2Jh
bFZhbHVlLT5nbG9iYWwoKS0+bXV0YWJpbGl0eSgpICE9IFdhc206Okdsb2JhbEluZm9ybWF0aW9u
OjpJbW11dGFibGUpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNy
ZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1l
c3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm11c3QgYmUgYSBzYW1lIG11dGFiaWxp
dHkiKSkpOwogICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG1vZHVsZUluZm9ybWF0aW9uLmds
b2JhbHNbaW1wb3J0LmtpbmRJbmRleF0udHlwZS5raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6CiAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6IHsKICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
aXNOdWxsYWJsZSA9IGdsb2JhbC50eXBlLmlzTnVsbGFibGUoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CkBAIC0y
NTgsNyArMjU3LDcgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11c3QgYmUgYSB3YXNt
IGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1
bmN0aW9uIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNy
ZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1l
c3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbC50eXBlLmtpbmQg
PT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBl
ckZ1bmN0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3Rp
b25SZWZUeXBlKGdsb2JhbC50eXBlKSAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVu
Y3Rpb24pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5k
ZXggcGFyYW1JbmRleCA9IGdsb2JhbC50eXBlLmluZGV4OwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCkBAIC0zMDIsNyArMzAxLDYgQEAgdm9pZCBXZWJB
c3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIGkKIAogICAgICAgICAgICAgICAgICAgICAvLyBpaWkuIEFwcGVuZCBUb1dl
YkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4KICAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChnbG9iYWxUeXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6VHlwZUlkeDoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RnVuY3JlZjogewogICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gZ2xv
YmFsVHlwZS5pc051bGxhYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBXZWJBc3NlbWJs
eUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwpAQCAtMzExLDcgKzMwOSw3IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmtJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciogbXNnID0gaXNOdWxsYWJsZSA/ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlv
biBvciBudWxsIiA6ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiI7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5
TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImlt
cG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxUeXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6
OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBlckZ1bmN0aW9uKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKFdhc206OmlzRnVuY3Rpb25SZWZUeXBlKGdsb2JhbFR5
cGUpICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xv
YmFsLnR5cGUuaW5kZXg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0
dXJlSW5kZXggYXJnSW5kZXg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc21G
dW5jdGlvbikKQEAgLTUyOCw3ICs1MjYsOCBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3Jk
OjpsaW5rSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogaQogICAg
ICAgICAgICAgc3dpdGNoIChnbG9iYWwudHlwZS5raW5kKSB7CiAgICAgICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5k
OjpGdW5jcmVmOgotICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKKyAg
ICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJ
MzI6CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CiAgICAgICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS93YXNtLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24K
aW5kZXggNGY4ZGQ5ZTNkMjEzNDM1MDAwMDA2ZTI0MTQ2YjAxOTRjOWFjODhmMS4uYzQzNzdmYTFj
NzFiZDg0MDUxNDdlZDFmNjcxZmQyNWQ5MDY3YTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L3dhc20uanNvbgpAQCAtMTYsMTIgKzE2LDExIEBACiAgICAgICAgICJyZWZfbnVsbCI6ICB7ICJ0
eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIwLCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfSwK
ICAgICAgICAgInJlZiI6ICAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMjEs
ICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6ICAgICAgeyAidHlwZSI6
ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zMiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKLSAgICAg
ICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNjQsICJiM3R5
cGUiOiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ0eXBlX2lkeCI6ICB7ICJ0eXBlIjogInZhcmlu
dDciLCAidmFsdWUiOiAtMTI4LCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfQorICAgICAgICAidm9p
ZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6ICJC
Mzo6Vm9pZCIgfQogICAgIH0sCiAgICAgInZhbHVlX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMy
IiwgImY2NCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJdLAogICAgICJibG9ja190eXBlIjogWyJp
MzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJd
LAotICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAidHlwZV9pZHgiXSwK
KyAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwgInJlZiIsICJyZWZfbnVs
bCJdLAogICAgICJleHRlcm5hbF9raW5kIjogewogICAgICAgICAiRnVuY3Rpb24iOiB7ICJ0eXBl
IjogInVpbnQ4IiwgInZhbHVlIjogMCB9LAogICAgICAgICAiVGFibGUiOiAgICB7ICJ0eXBlIjog
InVpbnQ4IiwgInZhbHVlIjogMSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGMyOTQxMjg1NTVmZDMxM2QyZmJjZDRlYTFmYjYxODFlMWU4YjRj
NzEuLjk3MWVkNzU4ZDA2OGEyN2NkNWRhYjI3MGI0N2RmYWRhMjk1YWVhMmEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMS0wOC0zMSAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxsX3JlZiBzcGVjIHRl
c3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIEFkZCByb3V0aW5lIHRvIHJ1biBmdW5jdGlvbiByZWZlcmVuY2VzIHNwZWMgdGVzdHMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTA4LTMwICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRv
dWJsZS10YXAtb24tZWRpdGFibGUtY29udGVudC1mb3Itc2VsZWN0aW9uLXRoZW4tZHJhZy0qIHRl
c3RzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rv
b2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggYTQ0YWM1MGU2OTA5MjkyODdk
YWM4MzIwOGU2NTIzMzQyNzQ3YmM5Zi4uZTE0M2MyMzNmNGZhMmEyMTE2ZGM4ZTMwMTRhNzkzNjI2
MTEwOWYwYiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwor
KysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC0xMzE5LDYgKzEzMTks
MTAgQEAgZGVmIHJ1bldlYkFzc2VtYmx5UmVmZXJlbmNlU3BlY1Rlc3QobW9kZSkKICAgICBydW5X
ZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCAicmVmLXNwZWMtaGFybmVzcyIpCiBlbmQKIAor
ZGVmIHJ1bldlYkFzc2VtYmx5RnVuY3Rpb25SZWZlcmVuY2VTcGVjVGVzdChtb2RlKQorICAgIHJ1
bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsICJzcGVjLWhhcm5lc3MiLCAiLS11c2VXZWJB
c3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzPXRydWUiKQorZW5kCisKIGRlZiBydW5XZWJB
c3NlbWJseUxvd0V4ZWN1dGFibGVNZW1vcnkoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykK
ICAgICByZXR1cm4gaWYgISRqaXRUZXN0cwogICAgIHJldHVybiBpZiAhJGlzRlRMUGxhdGZvcm0K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MTM2NDhiNDE0ZTIyY2Q2YTVmNTY1ZGVmYjIzMzllYWU3ZWI5MWRhMS4uNDE4NzIzZWI1NWU2NDYy
NjdmZTBjZjk5YmE5MjJlMTc0ZTUxNjdlZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wOC0zMSAgRG1p
dHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXQVNN
LUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxsX3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3MTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCB0ZXN0cyBm
b3IgY2FsbF9yZWYgaW5zdHJ1Y3Rpb24gZnJvbSB0aGUgc3BlYyByZXBvOgorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkvZnVuY3Rpb24tcmVmZXJlbmNlcy9ibG9iL21hc3Rl
ci90ZXN0L2NvcmUvY2FsbF9yZWYud2FzdC4KKyAgICAgICAgQWxzbywgcmVtb3ZlZCByZWR1bmRh
bmQgVHlwZUtpbmQ6OlR5cGVJZHggYW5kIHVzZWQgbmV3IFJlZiBvciBSZWZOdWxsCisgICAgICAg
IGtpbmRzIGluc3RlYWQuCisKKyAgICAgICAgKiB3YXNtLnlhbWw6CisgICAgICAgICogd2FzbS9m
dW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qczogQWRkZWQuCisg
ICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMDgtMzAgIFJvc3MgS2lyc2xpbmcgIDxy
b3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtKU0NdW0ludGxdIEVycm9ycyBmb3Ig
LmNhbGwoe30pIGFyZSB0b28gdmVyYm9zZQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtLnlhbWwg
Yi9KU1Rlc3RzL3dhc20ueWFtbAppbmRleCAyZWNiNjM0ZGJmNWIyYmVlNzJjZGQxM2M0MDE3OWJm
MmY1ZTk0YmMxLi5kZjU1OWFiODhjOGZjNGNiMTViYjliMTc2ZDNkMWQ2NjY5NWE0ZDhlIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20ueWFtbAorKysgYi9KU1Rlc3RzL3dhc20ueWFtbApAQCAtMTM1
LDYgKzEzNSw5IEBACiAtIHBhdGg6IHdhc20vdGhyZWFkcy1zcGVjLXRlc3RzL3dhaXQtbGFyZ2Uu
d2FzdC5qcwogICBjbWQ6IHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3QgOm5vcm1hbAogCistIHBhdGg6
IHdhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKKyAg
Y21kOiBydW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3BlY1Rlc3QgOm5vcm1hbAorCiAt
IHBhdGg6IHdhc20vc3BlYy10ZXN0cy9hZGRyZXNzLndhc3QuanMKICAgY21kOiBydW5XZWJBc3Nl
bWJseVNwZWNUZXN0IDpub3JtYWwKIC0gcGF0aDogd2FzbS9zcGVjLXRlc3RzL2FsaWduLndhc3Qu
anMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVz
dHMvY2FsbF9yZWYud2FzdC5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNw
ZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzJjNTY3MmIwMTA4OGJiYmMz
ODk5NDFkZTFhZWI2YmI3NTVmMjEyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL2Z1
bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0cy9jYWxsX3JlZi53YXN0LmpzCkBAIC0wLDAgKzEs
OTYgQEAKK2xldCAkMSA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgw
MFx4MDFceDE4XHgwNFx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDFceDdlXHgwMVx4N2VceDYw
XHgwMlx4N2VceDdlXHgwMVx4N2VceDYwXHgwMlx4NmJceDAwXHg3Zlx4MDFceDdmXHgwM1x4MGFc
eDA5XHgwM1x4MDBceDAwXHgwMFx4MDFceDAyXHgwMVx4MDFceDAxXHgwNlx4MWZceDA1XHg2Ylx4
MDFceDAwXHhkMlx4MDRceDBiXHg2Ylx4MDJceDAwXHhkMlx4MDVceDBiXHg2Ylx4MDFceDAwXHhk
Mlx4MDZceDBiXHg2Ylx4MDFceDAwXHhkMlx4MDdceDBiXHg2Ylx4MDFceDAwXHhkMlx4MDhceDBi
XHgwN1x4MmFceDA2XHgwM1x4NzJceDc1XHg2ZVx4MDBceDAzXHgwM1x4NjZceDYxXHg2M1x4MDBc
eDA0XHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwNVx4MDNceDY2XHg2OVx4
NjJceDAwXHgwNlx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDdceDAzXHg2Zlx4NjRceDY0XHgw
MFx4MDhceDA5XHgxN1x4MDVceDAzXHgwMFx4MDJceDAxXHgwMlx4MDNceDAwXHgwMVx4MDRceDAz
XHgwMFx4MDFceDA1XHgwM1x4MDBceDAxXHgwNlx4MDNceDAwXHgwMlx4MDdceDA4XHgwYVx4YTdc
eDAxXHgwOVx4MDdceDAwXHgyMFx4MDFceDIwXHgwMFx4MTRceDBiXHgwN1x4MDBceDIwXHgwMFx4
MjBceDAwXHg2Y1x4MGJceDA3XHgwMFx4NDFceDAwXHgyMFx4MDBceDZiXHgwYlx4MTVceDAxXHgw
Mlx4NmNceDAwXHhkMlx4MDFceDIxXHgwMVx4ZDJceDAyXHgyMVx4MDJceDIwXHgwMFx4MjBceDAx
XHgxNFx4MjBceDAyXHgxNFx4MGJceDE2XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHg0Mlx4MDFc
eDA1XHgyMFx4MDBceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAwXHgxNFx4N2VceDBiXHgwYlx4
MThceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDIwXHgwMVx4MDVceDIwXHgwMFx4NDJceDAxXHg3
ZFx4MjBceDAwXHgyMFx4MDFceDdlXHgyM1x4MDFceDE0XHgwYlx4MGJceDFlXHgwMFx4MjBceDAw
XHg0Mlx4MDFceDU4XHgwNFx4N2VceDQyXHgwMVx4MDVceDIwXHgwMFx4NDJceDAyXHg3ZFx4MjNc
eDAyXHgxNFx4MjBceDAwXHg0Mlx4MDFceDdkXHgyM1x4MDJceDE0XHg3Y1x4MGJceDBiXHgxM1x4
MDBceDIwXHgwMFx4NTBceDA0XHg3ZVx4NDJceDJjXHgwNVx4MjBceDAwXHg0Mlx4MDFceDdkXHgy
M1x4MDRceDE0XHgwYlx4MGJceDE0XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHg0Mlx4ZTNceDAw
XHgwNVx4MjBceDAwXHg0Mlx4MDFceDdkXHgyM1x4MDNceDE0XHgwYlx4MGIiKTsKKworYXNzZXJ0
X3JldHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzBdKSwgMCk7Cithc3NlcnRfcmV0dXJuKCgp
ID0+IGNhbGwoJDEsICJydW4iLCBbM10pLCAtOSk7CisKKy8vIGNhbGxfcmVmLndhc3Q6OTkKKy8v
IEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgKHJlZi5udWxsIDxoZWFwdHlwZT4pOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzA3LgorLy8gKGFzc2VydF90cmFwIChp
bnZva2UgIm51bGwiKSAibnVsbCBmdW5jdGlvbiIpCisKKy8vIGNhbGxfcmVmLndhc3Q6OTkKK3J1
bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgw
Mlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3
XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBc
eDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJmYWMiIChpNjQuY29uc3QgMCkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNh
bGxfcmVmLndhc3Q6MTAwCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAx
XHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4MDNc
eDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4
MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0
NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBb
XSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDEpKSAoaTY0
LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMQorcnVuKCgpID0+IGNhbGwoaW5zdGFu
Y2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBc
eDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4
NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MTZceDAxXHgxNFx4MDBceDAyXHg0MFx4NDJceDA1XHgxMFx4MDBceDAx
XHg0Mlx4ZjhceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJm
YWMiIChpNjQuY29uc3QgNSkpIChpNjQuY29uc3QgMTIwKSkKKworLy8gY2FsbF9yZWYud2FzdDox
MDIKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAw
XHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFc
eDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4
MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDFlXHgwMVx4MWNceDAwXHgw
Mlx4NDBceDQyXHgxOVx4MTBceDAwXHgwMVx4NDJceDgwXHg4MFx4ODBceGRlXHg4N1x4OTJceGVj
XHhjZlx4ZTFceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJm
YWMiIChpNjQuY29uc3QgMjUpKSAoaTY0LmNvbnN0IDcwMzQ1MzUyNzc1NzM5NjM3NzYpKQorCisv
LyBjYWxsX3JlZi53YXN0OjEwMworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdl
XHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgwMlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRc
eDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4
NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4MDBceDQyXHgw
MVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBi
IiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAo
aW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDApIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3Qg
MSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA0CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMFx4MDBceDYw
XHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgwZVx4MDFceDAyXHgyNFx4MzFceDA3XHg2Nlx4NjFc
eDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4
MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgw
MVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBi
XHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRf
cmV0dXJuIChpbnZva2UgImZhYy1hY2MiIChpNjQuY29uc3QgMSkgKGk2NC5jb25zdCAxKSkgKGk2
NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDUKK3J1bigoKSA9PiBjYWxsKGluc3Rh
bmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAw
XHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdc
eDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4
MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MThceDAxXHgxNlx4MDBceDAyXHg0
MFx4NDJceDA1XHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHhmOFx4MDBceDAxXHg1MVx4NDVceDBk
XHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsg
IC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYy1hY2MiIChpNjQuY29uc3QgNSkgKGk2NC5j
b25zdCAxKSkgKGk2NC5jb25zdCAxMjApKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNgorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgw
Mlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgyMFx4MDFc
eDFlXHgwMFx4MDJceDQwXHg0Mlx4MTlceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDgwXHg4MFx4
ODBceGRlXHg4N1x4OTJceGVjXHhjZlx4ZTFceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgw
Ylx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0
X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDI1KSAoaTY0LmNvbnN0IDEpKSAo
aTY0LmNvbnN0IDcwMzQ1MzUyNzc1NzM5NjM3NzYpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTExCity
dW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBc
eDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4
MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgw
N1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQw
XHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJc
eDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9y
ZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDApKSAoaTY0LmNvbnN0IDEpKQorCisvLyBj
YWxsX3JlZi53YXN0OjExMgorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4
NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgw
MVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFceDAz
XHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVc
eDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4
NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwg
W10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCAxKSkgKGk2
NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTMKK3J1bigoKSA9PiBjYWxsKGluc3Rh
bmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAw
XHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZc
eDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4
NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMlx4MTBceDAwXHgw
MVx4NDJceDAyXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygi
JDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmaWIi
IChpNjQuY29uc3QgMikpIChpNjQuY29uc3QgMikpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTE0City
dW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBc
eDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4
MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgw
N1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQw
XHg0Mlx4MDVceDEwXHgwMFx4MDFceDQyXHgwOFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJc
eDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9y
ZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDUpKSAoaTY0LmNvbnN0IDgpKQorCisvLyBj
YWxsX3JlZi53YXN0OjExNQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4
NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgw
MVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFceDAz
XHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdc
eDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceDE0XHgxMFx4MDBceDAxXHg0Mlx4YzJceGQ1XHgwMFx4
MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwg
ICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0
IDIwKSkgKGk2NC5jb25zdCAxMDk0NikpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTE3CitydW4oKCkg
PT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgw
OVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBiXHgwMVx4MDJceDI0
XHgzMVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdc
eDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4
NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MmNceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgw
MFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0
dXJuIChpbnZva2UgImV2ZW4iIChpNjQuY29uc3QgMCkpIChpNjQuY29uc3QgNDQpKQorCisvLyBj
YWxsX3JlZi53YXN0OjExOAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4
NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgw
MVx4N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceGUzXHgwMFx4
MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwg
ICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5jb25z
dCAxKSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTE5CitydW4oKCkgPT4g
Y2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4
MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBiXHgwMVx4MDJceDI0XHgz
MVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAx
XHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZceDAxXHgxNFx4MDBceDAyXHg0MFx4NDJc
eGU0XHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDEwMCkpIChpNjQuY29uc3QgNDQpKQorCisv
LyBjYWxsX3JlZi53YXN0OjEyMAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBc
eDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4
MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBceDEwXHgwMFx4MDFceDQyXHhl
M1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIs
ICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImV2ZW4iIChp
NjQuY29uc3QgNzcpKSAoaTY0LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjEKK3J1
bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgw
Mlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3
XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBc
eDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceGUzXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4
MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2Vy
dF9yZXR1cm4gKGludm9rZSAib2RkIiAoaTY0LmNvbnN0IDApKSAoaTY0LmNvbnN0IDk5KSkKKwor
Ly8gY2FsbF9yZWYud2FzdDoxMjIKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4
NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3
ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJvZGQiIChpNjQuY29uc3QgMSkp
IChpNjQuY29uc3QgNDQpKQorCisvLyBjYWxsX3JlZi53YXN0OjEyMworcnVuKCgpID0+IGNhbGwo
aW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2
MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAz
XHg2Zlx4NjRceDY0XHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJc
eDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceGM4XHgwMVx4
MTBceDAwXHgwMVx4NDJceGUzXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgw
YiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4g
KGludm9rZSAib2RkIiAoaTY0LmNvbnN0IDIwMCkpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxs
X3JlZi53YXN0OjEyNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRc
eDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4
N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Zlx4NjRceDY0XHgwMFx4MDFceDAzXHgw
Mlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZceDAx
XHgxNFx4MDBceDAyXHg0MFx4NDJceGNkXHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJvZGQiIChpNjQuY29uc3QgNzcpKSAo
aTY0LmNvbnN0IDQ0KSkKKworLy8gVW5yZWFjaGFibGUgdHlwaW5nLgorCisvLyBjYWxsX3JlZi53
YXN0OjEyOQorbGV0ICQyID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBc
eDAwXHgwMVx4MDVceDAxXHg2MFx4MDBceDAxXHg3Zlx4MDNceDAyXHgwMVx4MDBceDA3XHgwZlx4
MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgw
MFx4MGFceDA2XHgwMVx4MDRceDAwXHgwMFx4MTRceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9PiBj
YWxsKCQyLCAidW5yZWFjaGFibGUiLCBbXSkpOworCisvLyBjYWxsX3JlZi53YXN0OjEzNworbGV0
ICQzID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFc
eDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4MDNceDAyXHgwMFx4
MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2
Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBhXHgwZFx4MDJceDA0
XHgwMFx4MjBceDAwXHgwYlx4MDZceDAwXHgwMFx4ZDJceDAwXHgxNFx4MGIiKTsKK2Fzc2VydF90
cmFwKCgpID0+IGNhbGwoJDMsICJ1bnJlYWNoYWJsZSIsIFtdKSk7CisKKy8vIGNhbGxfcmVmLndh
c3Q6MTQ5CitsZXQgJDQgPSBpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgw
M1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJceDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4
XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFc
eDEyXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgwYlx4MDBceDAwXHg0MVx4MDBceGQyXHgwMFx4
MTRceDFhXHg0MVx4MDBceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQ0LCAidW5yZWFj
aGFibGUiLCBbXSkpOworCisvLyBjYWxsX3JlZi53YXN0OjE2NAorLy8gRklYTUU6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNzguCisvLyBhc3NlcnRfaW52YWxp
ZCgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4
N2ZceDAxXHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgw
MVx4MGJceDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAx
XHgwOVx4MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDBmXHgwMlx4MDRceDAwXHgyMFx4MDBc
eDBiXHgwOFx4MDBceDAwXHg0Mlx4MDBceGQyXHgwMFx4MTRceDBiIik7CisKKy8vIGNhbGxfcmVm
Lndhc3Q6MTc5CisvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMDI3OC4KKy8vIGFzc2VydF9pbnZhbGlkKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBc
eDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAxXHg3Zlx4
MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2
M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4MDFceDAw
XHgwYVx4MTBceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA5XHgwMFx4MDBceGQyXHgwMFx4MTRc
eDFhXHg0Mlx4MDBceDBiIik7CisKKy8vIGNhbGxfcmVmLndhc3Q6MTk1Cithc3NlcnRfaW52YWxp
ZCgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwNVx4MDFceDYwXHgwMVx4
NmZceDAwXHgwM1x4MDJceDAxXHgwMFx4MGFceDA3XHgwMVx4MDVceDAwXHgyMFx4MDBceDE0XHgw
YiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMvd2FzbS93
YXNtLmpzb24KaW5kZXggNGY4ZGQ5ZTNkMjEzNDM1MDAwMDA2ZTI0MTQ2YjAxOTRjOWFjODhmMS4u
YzQzNzdmYTFjNzFiZDg0MDUxNDdlZDFmNjcxZmQyNWQ5MDY3YTdhMSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBAIC0xNiwx
MiArMTYsMTEgQEAKICAgICAgICAgInJlZl9udWxsIjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2
YWx1ZSI6ICAtMjAsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAicmVmIjogICAg
ICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMSwgImIzdHlwZSI6ICJCMzo6SW50
NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUi
OiAgLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidm9pZCI6ICAgICAgeyAi
dHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwK
LSAgICAgICAgInR5cGVfaWR4IjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xMjgs
ICJiM3R5cGUiOiAiQjM6OkludDY0IiB9CisgICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBlIjog
InZhcmludDciLCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9CiAgICAgfSwK
ICAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImV4dGVybnJl
ZiIsICJmdW5jcmVmIl0sCiAgICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwg
ImY2NCIsICJ2b2lkIiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCi0gICAgInJlZl90eXBlIjog
WyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJ0eXBlX2lkeCJdLAorICAgICJyZWZfdHlwZSI6IFsi
ZnVuY3JlZiIsICJleHRlcm5yZWYiLCAicmVmIiwgInJlZl9udWxsIl0sCiAgICAgImV4dGVybmFs
X2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAidmFsdWUi
OiAwIH0sCiAgICAgICAgICJUYWJsZSI6ICAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAx
IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437493</attachid>
            <date>2021-09-07 06:08:18 -0700</date>
            <delta_ts>2021-09-30 04:08:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20210907200816.patch</filename>
            <type>text/plain</type>
            <size>56155</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
N2MzYWE2ZDIxYWI2NWQ0YjdkNjNlNDdlODU0Mjg4ZDUyOTBlYWU5Li5jMDJkNDNiMTUwNzU0YTMy
MDZmMDBlNTgxYTc5YTI3NzA0MGYxOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAyMS0wOC0zMSAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgCisgICAgICAgIFJlbW92ZWQgcmVkdW5kYW5kIFR5cGVLaW5kOjpUeXBlSWR4IGJlY2F1
c2UgbmV3IFJlZiBhbmQgUmVmTnVsbCBvcGNvZGVzIGNvdmVyIGFsbAorICAgICAgICB0aGUgc2Ft
ZSBjYXNlcy4KKworICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OnRtcEZvclR5cGUpOgorICAgICAgICAoSlND
OjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdENDYWxsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6Om1vdmVPcEZvclZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206
OkFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcik6CisgICAgICAgIChKU0M6Oldhc206OkFp
cklSR2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJh
dG9yOjphZGRDb25zdGFudCk6CisgICAgICAgIChKU0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjph
ZGRSZWZGdW5jKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oOgorICAg
ICAgICAoSlNDOjpXYXNtOjpXYXNtQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxsTG9jYXRpb24g
Y29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpKU0NhbGxpbmdDb252ZW50aW9uOjptYXJzaGFs
bExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKiB3YXNtL1dhc21Gb3JtYXQuaDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6aXNWYWx1ZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUp
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1JlZlR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpp
c0Z1bmN0aW9uUmVmVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzRGVmYXVsdGFibGVUeXBl
KToKKyAgICAgICAgKiB3YXNtL1dhc21GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAoSlNDOjpX
YXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAgICAgICAg
KiB3YXNtL1dhc21HbG9iYWwuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9iYWw6OmdldCBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6c2V0KToKKyAgICAgICAgKiB3YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJh
dG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAgICAoSlNDOjpXYXNtOjpMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAgICAgICogd2FzbS9XYXNtUGFy
c2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFs
dWVUeXBlKToKKyAgICAgICAgKiB3YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6U2VjdGlvblBhcnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2Fz
bS9qcy9XYXNtVG9KUy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ondhc21Ub0pTKToKKyAgICAg
ICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseUZ1bmN0aW9u
Ojpqc0NhbGxFbnRyeXBvaW50U2xvdyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMDgtMjYgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEN1dCBkb3duIG9uIHVzZSBvZiBD
RkdldFR5cGVJRCwgdXNpbmcgZHluYW1pY19jZl9jYXN0IGluc3RlYWQ7IHJlbGF0ZWQgc3RyZWFt
bGluaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJH
ZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJh
dG9yLmNwcAppbmRleCBmOWMyOTQ2MDA2MTg3M2QwMDQ0OThhODAwNDQ2NjJjZTIxN2Y2YmU0Li5l
OTViNjIwZDU0MzYxYjk4MTNiNGZkNjIyMTQ2NTFjMjY2MDQ2ODNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTQxMyw3ICs0
MTMsNyBAQCBwcml2YXRlOgogICAgIFR5cGVkVG1wIGc2NCgpIHsgcmV0dXJuIHsgbmV3VG1wKEIz
OjpHUCksIFR5cGVzOjpJNjQgfTsgfQogICAgIFR5cGVkVG1wIGdFeHRlcm5yZWYoKSB7IHJldHVy
biB7IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6RXh0ZXJucmVmIH07IH0KICAgICBUeXBlZFRtcCBn
RnVuY3JlZigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIFR5cGVzOjpGdW5jcmVmIH07IH0K
LSAgICBUeXBlZFRtcCBnVHlwZUlkeChUeXBlIHR5cGUpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpH
UCksIHR5cGUgfTsgfQorICAgIFR5cGVkVG1wIGdSZWYoVHlwZSB0eXBlKSB7IHJldHVybiB7IG5l
d1RtcChCMzo6R1ApLCB0eXBlIH07IH0KICAgICBUeXBlZFRtcCBmMzIoKSB7IHJldHVybiB7IG5l
d1RtcChCMzo6RlApLCBUeXBlczo6RjMyIH07IH0KICAgICBUeXBlZFRtcCBmNjQoKSB7IHJldHVy
biB7IG5ld1RtcChCMzo6RlApLCBUeXBlczo6RjY0IH07IH0KIApAQCAtNDI2LDggKzQyNiw5IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gZzY0KCk7CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6CiAgICAgICAgICAgICByZXR1cm4gZ0Z1bmNyZWYoKTsKLSAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgIHJldHVybiBnVHlwZUlkeCh0eXBlKTsK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZO
dWxsOgorICAgICAgICAgICAgcmV0dXJuIGdSZWYodHlwZSk7CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIHJldHVybiBnRXh0ZXJucmVmKCk7CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTYwNCw3ICs2MDUsOCBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CisgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgICAgIHJl
c3VsdFR5cGUgPSBCMzo6SW50NjQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC02NTQsNyArNjU2LDggQEAgcHJpdmF0ZToKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVybiBNb3ZlOwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CiAgICAgICAgICAgICByZXR1cm4gTW92ZUZsb2F0OwpAQCAtOTEyLDcgKzkx
NSw4IEBAIEFpcklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1h
dGlvbiYgaW5mbywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2
NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBj
YXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAg
ICAgICAgICBhcHBlbmQoTW92ZSwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTAxNSw3ICsxMDE5LDggQEAgYXV0
byBBaXJJUkdlbmVyYXRvcjo6YWRkTG9jYWwoVHlwZSB0eXBlLCB1aW50MzJfdCBjb3VudCkgLT4g
UGFydGlhbFJlc3VsdAogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
ZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGFwcGVuZChN
b3ZlLCBBcmc6OmltbShKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSwgbG9jYWwpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTEwNTEsNyArMTA1
Niw4IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZENvbnN0YW50KEJhc2ljQmxvY2sqIGJsb2Nr
LCBUeXBlIHR5cGUsIHVpbnQ2NF90IHZhbHVlKSAtCiAgICAgY2FzZSBUeXBlS2luZDo6STY0Ogog
ICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVm
OgotICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmOgor
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIGFwcGVuZChibG9jaywgTW92ZSwg
QXJnOjpiaWdJbW0odmFsdWUpLCByZXN1bHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CkBAIC0xMDk4LDcgKzExMDQsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjph
ZGRSZWZGdW5jKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0
aQogICAgIC8vIEZJWE1FOiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NTA2Pi4KICAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1i
bHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKSB7CiAgICAgICAgIFNpZ25hdHVyZUluZGV4IHNp
Z25hdHVyZUluZGV4ID0gbV9pbmZvLnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFj
ZShpbmRleCk7Ci0gICAgICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoVHlwZSB7IFR5cGVLaW5kOjpU
eXBlSWR4LCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH0pOworICAgICAgICByZXN1bHQg
PSB0bXBGb3JUeXBlKFR5cGUgeyBUeXBlS2luZDo6UmVmLCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVy
ZUluZGV4IH0pOwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGVz
OjpGdW5jcmVmKTsKICAgICBlbWl0Q0NhbGwoJm9wZXJhdGlvbldhc21SZWZGdW5jLCByZXN1bHQs
IGluc3RhbmNlVmFsdWUoKSwgYWRkQ29uc3RhbnQoVHlwZXM6OkkzMiwgaW5kZXgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5k
ZXggNmMwMjZlMDhhNDA5ZTk5NWQ0MzE4ZGZiMTgwNDYyNmQwZmFkMTc1Zi4uMjQwZTEwMmJmZGEw
ODk4NzliMmI0OTMzYTFkMTFmNzE2NTliMzllOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTEwNyw3ICsxMDcsOCBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAg
Y2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxs
TG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQp
OwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2
NDoKQEAgLTE5Niw3ICsxOTcsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJ
NjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkV4dGVybnJlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAg
ICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJn
dW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAppbmRleCBjMGNiMzFiN2NiZjAwNmFhMDE5MzZjMWY0NDZkNmIxODlmMGRlMTU1Li5i
MjUzYTdiZjQ0OTc5MmVlNGNiNTFkNmVkOWRhM2JjMTg0YTAyMWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCkBAIC02OCw3ICs2OCw4IEBAIGlubGluZSBib29sIGlz
VmFsdWVUeXBlKFR5cGUgdHlwZSkKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBU
eXBlS2luZDo6VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlw
ZWRGdW5jdGlvblJlZmVyZW5jZXMoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAg
LTc2LDIwICs3Nyw0NyBAQCBpbmxpbmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitpbmxpbmUgYm9vbCBpc1JlZlR5cGUoVHlwZSB0eXBlKQorewor
ICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkp
CisgICAgICAgIHJldHVybiB0eXBlLmlzUmVmKCkgfHwgdHlwZS5pc1JlZk51bGwoKTsKKyAgICBy
ZXR1cm4gdHlwZS5pc0Z1bmNyZWYoKSB8fCB0eXBlLmlzRXh0ZXJucmVmKCk7Cit9CisKK2lubGlu
ZSBib29sIGlzRXh0ZXJucmVmKFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2Vi
QXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gaXNSZWZU
eXBlKHR5cGUpICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJlSW5kZXg+KFR5
cGVLaW5kOjpFeHRlcm5yZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6OkV4
dGVybnJlZjsKK30KKworaW5saW5lIGJvb2wgaXNGdW5jcmVmKFR5cGUgdHlwZSkKK3sKKyAgICBp
ZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAg
ICAgICByZXR1cm4gaXNSZWZUeXBlKHR5cGUpICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8
U2lnbmF0dXJlSW5kZXg+KFR5cGVLaW5kOjpGdW5jcmVmKTsKKyAgICByZXR1cm4gdHlwZS5raW5k
ID09IFR5cGVLaW5kOjpGdW5jcmVmOworfQorCitpbmxpbmUgYm9vbCBpc1JlZldpdGhUeXBlSW5k
ZXgoVHlwZSB0eXBlKQoreworICAgIGlmICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1
bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
aXNSZWZUeXBlKHR5cGUpICYmICFpc0V4dGVybnJlZih0eXBlKSAmJiAhaXNGdW5jcmVmKHR5cGUp
OworfQorCiBpbmxpbmUgYm9vbCBpc1N1YnR5cGUoVHlwZSBzdWIsIFR5cGUgcGFyZW50KQogewog
ICAgIGlmIChzdWIuaXNOdWxsYWJsZSgpICYmICFwYXJlbnQuaXNOdWxsYWJsZSgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoc3ViLmlzVHlwZUlkeCgpICYmIHBhcmVudC5pc0Z1
bmNyZWYoKSkKKyAgICBpZiAoKHN1Yi5pc1JlZigpIHx8IHN1Yi5pc1JlZk51bGwoKSkgJiYgaXNG
dW5jcmVmKHBhcmVudCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIHN1YiA9
PSBwYXJlbnQ7Ci19CisgICAgaWYgKHN1Yi5pc1JlZigpICYmIHBhcmVudC5pc1JlZk51bGwoKSAm
JiBzdWIuaW5kZXggPT0gcGFyZW50LmluZGV4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAotaW5s
aW5lIGJvb2wgaXNSZWZUeXBlKFR5cGUgdHlwZSkKLXsKLSAgICByZXR1cm4gdHlwZS5pc0Z1bmNy
ZWYoKSB8fCB0eXBlLmlzRXh0ZXJucmVmKCkgfHwgdHlwZS5pc1R5cGVJZHgoKTsKKyAgICByZXR1
cm4gc3ViID09IHBhcmVudDsKIH0KIAogaW5saW5lIGJvb2wgaXNWYWxpZEhlYXBUeXBlS2luZChU
eXBlS2luZCBraW5kKQpAQCAtMTA2LDcgKzEzNCw3IEBAIGlubGluZSBib29sIGlzVmFsaWRIZWFw
VHlwZUtpbmQoVHlwZUtpbmQga2luZCkKIAogaW5saW5lIGJvb2wgaXNEZWZhdWx0YWJsZVR5cGUo
VHlwZSB0eXBlKQogewotICAgIHJldHVybiAhaXNSZWZUeXBlKHR5cGUpIHx8IHR5cGUuaXNOdWxs
YWJsZSgpOworICAgIHJldHVybiAhdHlwZS5pc1JlZigpOwogfQogCiBlbnVtIGNsYXNzIEV4dGVy
bmFsS2luZCA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25QYXJzZXIuaAppbmRleCA0ZTZiODMyMjA0MDc3NmEyNTE3MjJlZWEyMThmNDZjMmMz
OTkxMzEwLi43NzliY2NlMTA3NTBiMmQ1NzBlMDIzMGE4YzEwZGI5ZDJmN2E2NzllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMTA4
MSw3ICsxMDgxLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0Up
CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBt
X2luZm8uc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAg
ICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmNvbnN0cnVjdEFuZEFwcGVuZChUeXBlIHtUeXBlS2lu
ZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7VHlwZUtp
bmQ6OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CiAgICAgICAg
ICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTEyMjMsNyArMTIyMyw3IEBAIEZPUl9F
QUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogCiAgICAgY2FzZSBDYWxsUmVm
OiB7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSwgImZ1bmN0aW9uIHJlZmVyZW5jZXMgYXJlIG5vdCBl
bmFibGVkIik7Ci0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1fZXhwcmVzc2lvblN0
YWNrLmxhc3QoKS50eXBlKCkuaXNUeXBlSWR4KCksICJub24tZnVuY3JlZiBjYWxsX3JlZiB2YWx1
ZSAiLCBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOworICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKCFpc1JlZldpdGhUeXBlSW5kZXgobV9leHByZXNzaW9uU3RhY2su
bGFzdCgpLnR5cGUoKSksICJub24tZnVuY3JlZiBjYWxsX3JlZiB2YWx1ZSAiLCBtX2V4cHJlc3Np
b25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOwogCiAgICAgICAgIGNvbnN0IFNpZ25hdHVyZUlu
ZGV4IGNhbGxlZVNpZ25hdHVyZUluZGV4ID0gbV9leHByZXNzaW9uU3RhY2subGFzdCgpLnR5cGUo
KS5pbmRleDsKICAgICAgICAgY29uc3QgU2lnbmF0dXJlJiBjYWxsZWVTaWduYXR1cmUgPSBTaWdu
YXR1cmVJbmZvcm1hdGlvbjo6Z2V0KGNhbGxlZVNpZ25hdHVyZUluZGV4KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21HbG9iYWwuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKaW5kZXggNTlkYTk3N2MzY2E2ZmE0Y2EzNTdl
MGNmNWRlYTRkNTY2YmIwYzk0ZC4uZGY5OTdjMTE0ZTYyMDgwOGE2OGRjODhkOTgzMTkwNGVmMWMw
ZTIwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKQEAgLTQ4
LDcgKzQ4LDggQEAgSlNWYWx1ZSBHbG9iYWw6OmdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAogICAgICAgICByZXR1cm4ganNOdW1iZXIocHVyaWZ5TmFOKGJpdHdpc2VfY2Fz
dDxkb3VibGU+KG1fdmFsdWUubV9wcmltaXRpdmUpKSk7CiAgICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgcmV0dXJuIG1fdmFsdWUubV9leHRlcm5yZWYuZ2V0KCk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC05NCw3ICs5NSw4IEBAIHZv
aWQgR2xvYmFsOjpzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1
bWVudCkKICAgICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9v
d25lciwgYXJndW1lbnQpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBUeXBlS2lu
ZDo6VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6
UmVmTnVsbDoKICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOiB7CiAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKG1fb3duZXIpOwogICAgICAgICBib29sIGlzTnVsbGFibGUgPSBtX3R5cGUuaXNOdWxs
YWJsZSgpOwpAQCAtMTA0LDcgKzEwNiw3IEBAIHZvaWQgR2xvYmFsOjpzZXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1bWVudCkKICAgICAgICAgICAgIHRocm93RXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRp
bWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdh
c20gZnVuY3Rpb24iKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKG1fdHlwZS5raW5kID09IFR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwg
d2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKKyAgICAgICAgaWYgKGlzUmVmV2l0aFR5cGVJbmRleCht
X3R5cGUpICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKICAgICAg
ICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5kZXggPSBtX3R5cGUuaW5kZXg7CiAg
ICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleDsKICAgICAgICAgICAgIGlm
ICh3YXNtRnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxM
SW50R2VuZXJhdG9yLmNwcAppbmRleCA4MWE1Y2RiY2FlMzI4NmJlMzJjYTQ5MGRlNDVlZTNhZmY3
ODE5ODU2Li5iNDE1ODQ1NDVjOGE2YzhhNzBhYzIyMDdkODdjZTNjMWRlMTU4ZGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAg
LTU0Nyw3ICs1NDcsOCBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JD
YWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmOgogICAgICAgICAgICAgaWYgKGdwckluZGV4IDwgZ3ByQ291bnQpCiAgICAgICAgICAgICAg
ICAgKytncHJJbmRleDsKICAgICAgICAgICAgIGVsc2UgaWYgKHN0YWNrSW5kZXgrKyA+PSBzdGFj
a0NvdW50KQpAQCAtNTYyLDggKzU2Myw2IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZv
cm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgfQogICAgIH07CkBAIC02MDUsNyArNjA0LDggQEAgYXV0byBMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2ln
bmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
Zk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJ
bmRleCA+IGdwckxpbWl0KQogICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tpXSA9IHZpcnR1YWxS
ZWdpc3RlckZvckxvY2FsKC0tZ3BySW5kZXgpOwogICAgICAgICAgICAgZWxzZQpAQCAtNjIwLDgg
KzYyMCw2IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihj
b25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoK
LSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTYzNSw3ICs2MzMsOCBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5m
b3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJl
ZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgaWYgKGdwckluZGV4ID4gZ3ByTGltaXQpCiAg
ICAgICAgICAgICAgICAgdGVtcG9yYXJ5UmVzdWx0c1tpXSA9IHZpcnR1YWxSZWdpc3RlckZvckxv
Y2FsKC0tZ3BySW5kZXgpOwogICAgICAgICAgICAgZWxzZQpAQCAtNjUwLDggKzY0OSw2IEBAIGF1
dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTY5Myw3ICs2OTAsOCBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JD
YWxsZWUoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFZlYwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmOgogICAgICAgICAgICAgaWYgKGdwckluZGV4IDwgbWF4R1BSSW5kZXgpCiAgICAgICAgICAg
ICAgICAgbV9yZXN1bHRzLmFwcGVuZCh2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChudW1iZXJPZkxM
SW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyArIGdwckluZGV4KyspKTsKICAgICAgICAgICAgIGVsc2UK
QEAgLTcwOCw4ICs3MDYsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25G
b3JDYWxsZWUoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFZlYwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIH0KICAgICB9CkBAIC03NTAsNyArNzQ2LDggQEAgYXV0byBMTEludEdlbmVyYXRv
cjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVz
dWx0CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBhZGRBcmd1bWVudChpLCBncHJJ
bmRleCwgbWF4R1BSSW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjoKQEAgLTc1OSw4ICs3NTYsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRB
cmd1bWVudHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhcnNlci5oCmluZGV4IDYzZDg5ZDYxZDQzNTMwYTI2ZmI1NDE1ZTI3MDFjYzMwYTczYTMyODQu
LjhlY2QyNTEwY2NiMmZiZDM2Yzg1YWY1NTQzZTM3MTA3NGQ5NGMzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTMwNSw3ICszMDUsMTEgQEAgQUxXQVlTX0lO
TElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKGNvbnN0IE1vZHVs
ZUluZm9ybWF0aW9uJgogICAgIFR5cGVLaW5kIHR5cGVLaW5kID0gc3RhdGljX2Nhc3Q8VHlwZUtp
bmQ+KGtpbmQpOwogICAgIGJvb2wgaXNOdWxsYWJsZSA9IHRydWU7CiAgICAgU2lnbmF0dXJlSW5k
ZXggc2lnSW5kZXggPSAwOwotICAgIGlmICh0eXBlS2luZCA9PSBUeXBlS2luZDo6UmVmIHx8IHR5
cGVLaW5kID09IFR5cGVLaW5kOjpSZWZOdWxsKSB7CisKKyAgICBpZiAoT3B0aW9uczo6dXNlV2Vi
QXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpICYmICh0eXBlS2luZCA9PSBUeXBlS2lu
ZDo6RnVuY3JlZiB8fCB0eXBlS2luZCA9PSBUeXBlS2luZDo6RXh0ZXJucmVmKSkgeworICAgICAg
ICBzaWdJbmRleCA9IHN0YXRpY19jYXN0PFNpZ25hdHVyZUluZGV4Pih0eXBlS2luZCk7CisgICAg
ICAgIHR5cGVLaW5kID0gVHlwZUtpbmQ6OlJlZk51bGw7CisgICAgfSBlbHNlIGlmICh0eXBlS2lu
ZCA9PSBUeXBlS2luZDo6UmVmIHx8IHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWZOdWxsKSB7CiAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNl
cygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zMTgsOSArMzIyLDggQEAgQUxX
QVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJgogICAgICAgICAgICAgVHlwZUtpbmQgaGVhcEtpbmQgPSBzdGF0
aWNfY2FzdDxUeXBlS2luZD4oaGVhcFR5cGUpOwogICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSGVh
cFR5cGVLaW5kKGhlYXBLaW5kKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICB0eXBlS2luZCA9IGhlYXBLaW5kOworICAgICAgICAgICAgc2lnSW5kZXggPSBzdGF0
aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oaGVhcEtpbmQpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgdHlwZUtpbmQgPSBUeXBlS2luZDo6VHlwZUlkeDsKICAgICAgICAgICAgIGlmIChz
dGF0aWNfY2FzdDxzaXplX3Q+KGhlYXBUeXBlKSA+PSBpbmZvLnVzZWRTaWduYXR1cmVzLnNpemUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBzaWdJbmRleCA9
IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoaW5mby51c2VkU2lnbmF0dXJlc1toZWFwVHlwZV0u
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rp
b25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJz
ZXIuY3BwCmluZGV4IDBmOGNjYjdlMmMzYjY0MTE2MzVjZDlmNWIwNDhiMzU2MzIwNWZhNzQuLmEz
MTBkNzVlMGUwNzk1MzE4OTJjZmU2N2JiNTYzYzlkNjI3OGFmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKQEAgLTYwNyw3ICs2MDcs
NyBAQCBhdXRvIFNlY3Rpb25QYXJzZXI6OnBhcnNlSW5pdEV4cHIodWludDhfdCYgb3Bjb2RlLCB1
aW50NjRfdCYgYml0c09ySW1wb3J0TnVtYmVyLAogCiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpIHsKICAgICAgICAgICAgIFNpZ25h
dHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbV9pbmZvLT5zaWduYXR1cmVJbmRleEZyb21GdW5j
dGlvbkluZGV4U3BhY2UoaW5kZXgpOwotICAgICAgICAgICAgcmVzdWx0VHlwZSA9IHsgVHlwZUtp
bmQ6OlR5cGVJZHgsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfTsKKyAgICAgICAgICAg
IHJlc3VsdFR5cGUgPSB7IFR5cGVLaW5kOjpSZWYsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5k
ZXggfTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXN1bHRUeXBlID0gVHlwZXM6OkZ1
bmNyZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJs
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUuY3BwCmluZGV4IDgx
MjY4Y2Y1Y2VjYWExMjEyYzI0NzQwZmQ3ZjM0MjIxMDBlZWZhNjIuLjMxM2ZjYWQzOWQ2OTE4NTk1
NWFmOTgyNTU3OWRhMjIzMGJiNGZkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21UYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVRhYmxlLmNwcApAQCAtMTc3LDkgKzE3NywxNiBAQCBERUZJTkVfVklTSVRfQUdHUkVHQVRFKFRh
YmxlKTsKIAogVHlwZSBUYWJsZTo6d2FzbVR5cGUoKSBjb25zdAogewotICAgIGlmIChpc0V4dGVy
bnJlZlRhYmxlKCkpCisgICAgaWYgKGlzRXh0ZXJucmVmVGFibGUoKSkgeworICAgICAgICBpZiAo
T3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAg
ICAgICAgcmV0dXJuIFR5cGUge1R5cGVLaW5kOjpSZWZOdWxsLCBOdWxsYWJsZTo6WWVzLCBzdGF0
aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oVHlwZUtpbmQ6OkV4dGVybnJlZil9OwogICAgICAgICBy
ZXR1cm4gVHlwZXM6OkV4dGVybnJlZjsKKyAgICB9CiAgICAgQVNTRVJUKGlzRnVuY3JlZlRhYmxl
KCkpOworCisgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIFR5cGUge1R5cGVLaW5kOjpSZWZOdWxsLCBOdWxsYWJs
ZTo6WWVzLCBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oVHlwZUtpbmQ6OkZ1bmNyZWYpfTsK
KwogICAgIHJldHVybiBUeXBlczo6RnVuY3JlZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggZDhmMjY1MGNh
YTU4NjcyMzU0YmQ1ZjM5ZjdkZWFiNjQxMGQwMDU0Yy4uN2QwMTdkZmIxNmYwNGI0MmJmZTFmZDI3
OGNkZjI5ZDRlYjg1YzM1NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCkBAIC0xMzgsOSArMTM4LDkgQEAgQUxXQVlTX0lO
TElORSBib29sIGlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24oVk0mIHZtLCBKU1ZhbHVlIG9iamVj
dCkKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBkZWZhdWx0VmFsdWVGb3JSZWZlcmVuY2VUeXBlKGNv
bnN0IFdhc206OlR5cGUgdHlwZSkKIHsKICAgICBBU1NFUlQoV2FzbTo6aXNSZWZUeXBlKHR5cGUp
KTsKLSAgICBpZiAodHlwZS5pc0V4dGVybnJlZigpKQorICAgIGlmIChXYXNtOjppc0V4dGVybnJl
Zih0eXBlKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgQVNTRVJUKHR5cGUu
aXNGdW5jcmVmKCkpOworICAgIEFTU0VSVChXYXNtOjppc0Z1bmNyZWYodHlwZSkpOwogICAgIHJl
dHVybiBqc051bGwoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRv
SlMuY3BwCmluZGV4IGY2N2YyNDJhNzg5MTNhZTVjMDJhYTU2OGU5OWFjNjVjZGJiODBmZGUuLjU1
ZDcwMTA4NWViYzQyYWFmYTM0YmNmOGZjZmMzNDA2YzVjYmY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKQEAgLTEwNyw3ICsxMDcsNiBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVkIGFib3ZlLgotICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6VHlwZUlkeDoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoK
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJMzI6CkBAIC0xODIsNyArMTgxLDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJD
b2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0K
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgLy8gSGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAt
MzI2LDcgKzMyNCw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQ
dHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJu
cmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgaml0Lm1v
dmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigp
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlv
bi5jcHAKaW5kZXggM2FiM2MzZDVjYjVjOTAwOWJlYzJiNmQ4MGQ0NDRjODBjMTQzZWFkZS4uMTAx
MDZmMjI4MTdlNGQ1YWU5ZDYyOWRiNTJlYmJkMjIyZmQ5ZTllOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTc5
LDE5ICs3OSwyMCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5RnVu
Y3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogCiAgICAgZm9yICh1bnNpZ25l
ZCBhcmdJbmRleCA9IDA7IGFyZ0luZGV4IDwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgKyth
cmdJbmRleCkgewogICAgICAgICBKU1ZhbHVlIGFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoYXJn
SW5kZXgpOwotICAgICAgICBzd2l0Y2ggKHNpZ25hdHVyZS5hcmd1bWVudChhcmdJbmRleCkua2lu
ZCkgewotICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6CisgICAgICAgIGNvbnN0IGF1
dG8mIGFyZ3VtZW50VHlwZSA9IHNpZ25hdHVyZS5hcmd1bWVudChhcmdJbmRleCk7CisgICAgICAg
IGlmIChhcmd1bWVudFR5cGUuaXNJMzIoKSkgewogICAgICAgICAgICAgYXJnID0gSlNWYWx1ZTo6
ZGVjb2RlKGFyZy50b0ludDMyKGdsb2JhbE9iamVjdCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9IHNpZ25h
dHVyZS5hcmd1bWVudChhcmdJbmRleCkuaXNOdWxsYWJsZSgpOworICAgICAgICB9IGVsc2UgaWYg
KFdhc206OmlzRXh0ZXJucmVmKGFyZ3VtZW50VHlwZSkpIHsKKyAgICAgICAgICAgIGlmICghYXJn
dW1lbnRUeXBlLmlzTnVsbGFibGUoKSAmJiBhcmcuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24t
bnVsbCBFeHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSkpOworICAgICAgICB9IGVsc2UgaWYgKFdh
c206OmlzUmVmVHlwZShhcmd1bWVudFR5cGUpKSB7CisgICAgICAgICAgICBib29sIGlzTnVsbGFi
bGUgPSBhcmd1bWVudFR5cGUuaXNOdWxsYWJsZSgpOwogICAgICAgICAgICAgV2ViQXNzZW1ibHlG
dW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKICAgICAgICAgICAgIFdlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKICAgICAgICAg
ICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJnLCB3YXNtRnVuY3Rpb24s
IHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhYXJnLmlzTnVsbCgpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFs
T2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikp
KTsKLSAgICAgICAgICAgIGlmIChzaWduYXR1cmUuYXJndW1lbnQoYXJnSW5kZXgpLmtpbmQgPT0g
V2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBlckZ1
bmN0aW9uKSkgewotICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5k
ZXggPSBzaWduYXR1cmUuYXJndW1lbnQoYXJnSW5kZXgpLmluZGV4OworICAgICAgICAgICAgaWYg
KGlzUmVmV2l0aFR5cGVJbmRleChhcmd1bWVudFR5cGUpICYmICh3YXNtRnVuY3Rpb24gfHwgd2Fz
bVdyYXBwZXJGdW5jdGlvbikpIHsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRl
eCBwYXJhbUluZGV4ID0gYXJndW1lbnRUeXBlLmluZGV4OwogICAgICAgICAgICAgICAgIFdhc206
OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwogICAgICAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rp
b24pCiAgICAgICAgICAgICAgICAgICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1
cmVJbmRleCgpOwpAQCAtMTAwLDI3ICsxMDEsMTQgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICAgICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwg
dm0sICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIp
KSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgICAgICBpZiAoIXNpZ25h
dHVyZS5hcmd1bWVudChhcmdJbmRleCkuaXNOdWxsYWJsZSgpICYmIGFyZy5pc051bGwoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIpKSk7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STY0OgorICAgICAgICB9
IGVsc2UgaWYgKGFyZ3VtZW50VHlwZS5pc0k2NCgpKQogICAgICAgICAgICAgYXJnID0gSlNWYWx1
ZTo6ZGVjb2RlKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYXJnLnRvQmlnSW50NjQoZ2xvYmFsT2Jq
ZWN0KSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkYzMjoKKyAgICAgICAgZWxzZSBpZiAoYXJndW1lbnRUeXBlLmlzRjMyKCkpCiAgICAgICAgICAg
ICBhcmcgPSBKU1ZhbHVlOjpkZWNvZGUoYml0d2lzZV9jYXN0PHVpbnQzMl90PihhcmcudG9GbG9h
dChnbG9iYWxPYmplY3QpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6RjY0OgorICAgICAgICBlbHNlIGlmIChhcmd1bWVudFR5cGUuaXNGNjQoKSkK
ICAgICAgICAgICAgIGFyZyA9IEpTVmFsdWU6OmRlY29kZShiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+
KGFyZy50b051bWJlcihnbG9iYWxPYmplY3QpKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6Vm9pZDoKLSAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6RnVuYzoKLSAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgorICAgICAgICBlbHNlCiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICBib3hlZEFyZ3MuYXBw
ZW5kKGFyZyk7CiAgICAgfQpAQCAtMjk0LDcgKzI4Miw4IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xv
dygpCiAgICAgICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3
YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdwcigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmTnVs
bDoKICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjogewogICAgICAgICAgICAg
Ly8gRW5zdXJlIHdlIGhhdmUgYSBXQVNNIGV4cG9ydGVkIGZ1bmN0aW9uLgogICAgICAgICAgICAg
aml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKQEAgLTMxNCw3ICszMDMsNyBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anND
YWxsRW50cnlwb2ludFNsb3coKQogICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKICAg
ICAgICAgICAgIGlzV2FzbUZ1bmN0aW9uLmxpbmsoJmppdCk7Ci0gICAgICAgICAgICBpZiAodHlw
ZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4KSB7CisgICAgICAgICAgICBpZiAoV2Fz
bTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgaml0LmxvYWQ2
NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9m
ZnNldE9mU2lnbmF0dXJlSW5kZXgoKSksIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0
Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVS
ZWNvcmQuY3BwCmluZGV4IGRiNDA5MmFkNjk0ODJmN2EwOWQzYmUxZjc1MjM0MjJkOWQ1YWYxM2Qu
LjM2ZmQwYzYwNjNhNjlhMjljZGYyNTVhOGI4MTRiZTA4YzI2ZDhjODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29y
ZC5jcHAKQEAgLTI0Niw5ICsyNDYsMTQgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6
bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxp
bmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBv
cnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIHNhbWUgdHlwZSIpKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPm11dGFiaWxpdHkoKSAhPSBXYXNtOjpHbG9i
YWxJbmZvcm1hdGlvbjo6SW1tdXRhYmxlKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0s
IGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEg
c2FtZSBtdXRhYmlsaXR5IikpKTsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtb2R1bGVJ
bmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGUua2luZCkgewotICAgICAg
ICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAg
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGF1dG8mIGRlY2xhcmVkR2xvYmFsVHlwZSA9IG1vZHVsZUluZm9ybWF0aW9uLmds
b2JhbHNbaW1wb3J0LmtpbmRJbmRleF0udHlwZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFdh
c206OmlzRXh0ZXJucmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlID0gZ2xvYmFsVmFsdWUtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbC50eXBlLmlzTnVsbGFibGUo
KSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
aW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm5vbi1udWxsIGV4
dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2lu
c3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNSZWZUeXBlKGRlY2xhcmVkR2xv
YmFsVHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9IGds
b2JhbC50eXBlLmlzTnVsbGFibGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2Vt
Ymx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51
bGxwdHI7CkBAIC0yNTgsNyArMjYzLDcgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6
bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11
c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNt
IGV4cG9ydGVkIGZ1bmN0aW9uIjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
aW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2Jh
bC50eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8
fCB3YXNtV3JhcHBlckZ1bmN0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlz
UmVmV2l0aFR5cGVJbmRleChnbG9iYWwudHlwZSkgJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3Jh
cHBlckZ1bmN0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNpZ25h
dHVyZUluZGV4IHBhcmFtSW5kZXggPSBnbG9iYWwudHlwZS5pbmRleDsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleDsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uKQpAQCAtMjY5LDI0ICsyNzQsMTAgQEAg
dm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVj
dCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJBcmd1
bWVudCBmdW5jdGlvbiBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNl
LT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVj
dCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnbG9iYWwudHlwZS5pc051bGxh
YmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwg
dm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJub24tbnVs
bCBleHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
bV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6STY0OgotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpG
MzI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDoKKyAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJlZEdsb2JhbFR5cGUuaXNJMzIoKSB8fCBk
ZWNsYXJlZEdsb2JhbFR5cGUuaXNJNjQoKSB8fCBkZWNsYXJlZEdsb2JhbFR5cGUuaXNGMzIoKSB8
fCBkZWNsYXJlZEdsb2JhbFR5cGUuaXNGNjQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
aW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGdsb2JhbFZh
bHVlLT5nbG9iYWwoKS0+Z2V0UHJpbWl0aXZlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICBjb25zdCBhdXRvIGdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlv
bi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGU7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghaXNSZWZUeXBlKGdsb2JhbFR5cGUpKSB7CkBAIC0zMDEsOSArMjkyLDcgQEAgdm9pZCBXZWJB
c3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIGkKICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGlpaS4gQXBwZW5kIFRvV2ViQXNzZW1ibHlWYWx1ZSh2KSB0byBpbXBvcnRzLgotICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGdsb2JhbFR5cGUua2luZCkgewotICAgICAgICAgICAg
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgICAgICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChXYXNtOjppc0Z1bmNyZWYoZ2xvYmFsVHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgaXNOdWxsYWJsZSA9IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsK
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNt
V3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKQEAgLTMxMSw3ICszMDAsNyBAQCB2b2lkIFdlYkFz
c2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU09iamVjdCogaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1z
ZyA9IGlzTnVsbGFibGUgPyAibXVzdCBiZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24gb3IgbnVs
bCIgOiAibXVzdCBiZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24iOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJv
cihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBn
bG9iYWwiLCBtc2cpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoZ2xvYmFsVHlwZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4
ICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1JlZldpdGhUeXBlSW5kZXgoZ2xvYmFsVHlwZSkgJiYgKHdhc21G
dW5jdGlvbiB8fCB3YXNtV3JhcHBlckZ1bmN0aW9uKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5kZXggPSBnbG9iYWwudHlwZS5pbmRl
eDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJ
bmRleDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uKQpAQCAt
MzIyLDMxICszMTEsMjIgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlua0ltcGwo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlu
a0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9y
dGVkIGdsb2JhbCIsICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVu
Y2UgdHlwZSIpKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4
LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5y
ZWY6CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNFeHRlcm5yZWYoZ2xv
YmFsVHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsVHlwZS5pc051
bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVj
dCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0
IGJlIGEgbm9uLW51bGwgdmFsdWUiKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0
YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnbG9iYWxU
eXBlLmlzSTMyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5j
ZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZS50b0ludDMyKGdsb2JhbE9iamVj
dCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
IGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDogeworICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChnbG9iYWxUeXBlLmlzSTY0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3Qg
Yml0cyA9IHZhbHVlLnRvQmlnSW50NjQoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZElu
ZGV4LCBiaXRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnbG9iYWxUeXBlLmlzRjMyKCkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBv
cnQua2luZEluZGV4LCBiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KHZhbHVlLnRvRmxvYXQoZ2xvYmFs
T2JqZWN0KSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDoKKyAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoZ2xvYmFsVHlwZS5pc0Y2NCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0
YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgYml0d2lzZV9jYXN0
PHVpbnQ2NF90Pih2YWx1ZS5hc051bWJlcigpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZS5pbmhlcml0czxKU1dlYkFzc2Vt
Ymx5R2xvYmFsPih2bSkpCkBAIC01MjgsNyArNTA4LDggQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVs
ZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGkKICAgICAgICAgICAgIHN3aXRjaCAoZ2xvYmFsLnR5cGUua2luZCkgewogICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlR5cGVJ
ZHg6CisgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWY6CisgICAgICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STY0OgogICAgICAg
ICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vd2FzbS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2Fz
bS5qc29uCmluZGV4IDRmOGRkOWUzZDIxMzQzNTAwMDAwNmUyNDE0NmIwMTk0YzlhYzg4ZjEuLmM0
Mzc3ZmExYzcxYmQ4NDA1MTQ3ZWQxZjY3MWZkMjVkOTA2N2E3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS93YXNtLmpzb24KQEAgLTE2LDEyICsxNiwxMSBAQAogICAgICAgICAicmVmX251bGwi
OiAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMCwgImIzdHlwZSI6ICJCMzo6SW50
NjQiIH0sCiAgICAgICAgICJyZWYiOiAgICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUi
OiAgLTIxLCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfSwKICAgICAgICAgImZ1bmMiOiAgICAgIHsg
InR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMzIsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0s
Ci0gICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTY0
LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidHlwZV9pZHgiOiAgeyAidHlwZSI6
ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTEyOCwgImIzdHlwZSI6ICJCMzo6SW50NjQiIH0KKyAgICAg
ICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNjQsICJiM3R5
cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAogICAgICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0
IiwgImYzMiIsICJmNjQiLCAiZXh0ZXJucmVmIiwgImZ1bmNyZWYiXSwKICAgICAiYmxvY2tfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiLCAiZXh0ZXJucmVmIiwgImZ1
bmNyZWYiXSwKLSAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwgInR5cGVf
aWR4Il0sCisgICAgInJlZl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJyZWYiLCAi
cmVmX251bGwiXSwKICAgICAiZXh0ZXJuYWxfa2luZCI6IHsKICAgICAgICAgIkZ1bmN0aW9uIjog
eyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDAgfSwKICAgICAgICAgIlRhYmxlIjogICAgeyAi
dHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDEgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMjk0MTI4NTU1ZmQzMTNkMmZiY2Q0ZWExZmI2MTgx
ZTFlOGI0YzcxLi45NzFlZDc1OGQwNjhhMjdjZDVkYWIyNzBiNDdkZmFkYTI5NWFlYTJhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjEtMDgtMzEgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNrb3ZAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV0FTTS1GdW5jdGlvbi1SZWZlcmVuY2VzXSBBZGQgY2FsbF9yZWYg
c3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBBZGQgcm91dGluZSB0byBydW4gZnVuY3Rpb24gcmVmZXJlbmNlcyBzcGVjIHRl
c3RzLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMS0w
OC0zMCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBkb3VibGUtdGFwLW9uLWVkaXRhYmxlLWNvbnRlbnQtZm9yLXNlbGVjdGlvbi10aGVuLWRy
YWctKiB0ZXN0cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVz
dHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGE0NGFjNTBlNjkw
OTI5Mjg3ZGFjODMyMDhlNjUyMzM0Mjc0N2JjOWYuLmUxNDNjMjMzZjRmYTJhMjExNmRjOGUzMDE0
YTc5MzYyNjExMDlmMGIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTMxOSw2
ICsxMzE5LDEwIEBAIGRlZiBydW5XZWJBc3NlbWJseVJlZmVyZW5jZVNwZWNUZXN0KG1vZGUpCiAg
ICAgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgInJlZi1zcGVjLWhhcm5lc3MiKQog
ZW5kCiAKK2RlZiBydW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3BlY1Rlc3QobW9kZSkK
KyAgICBydW5XZWJBc3NlbWJseVNwZWNUZXN0QmFzZShtb2RlLCAic3BlYy1oYXJuZXNzIiwgIi0t
dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcz10cnVlIikKK2VuZAorCiBkZWYg
cnVuV2ViQXNzZW1ibHlMb3dFeGVjdXRhYmxlTWVtb3J5KCpvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpCiAgICAgcmV0dXJuIGlmICEkaml0VGVzdHMKICAgICByZXR1cm4gaWYgISRpc0ZUTFBs
YXRmb3JtCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDEzNjQ4YjQxNGUyMmNkNmE1ZjU2NWRlZmIyMzM5ZWFlN2ViOTFkYTEuLjQxODcyM2Vi
NTVlNjQ2MjY3ZmUwY2Y5OWJhOTIyZTE3NGU1MTY3ZWYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDgt
MzEgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNrb3ZAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbV0FTTS1GdW5jdGlvbi1SZWZlcmVuY2VzXSBBZGQgY2FsbF9yZWYgc3BlYyB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQg
dGVzdHMgZm9yIGNhbGxfcmVmIGluc3RydWN0aW9uIGZyb20gdGhlIHNwZWMgcmVwbzoKKyAgICAg
ICAgaHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L2Z1bmN0aW9uLXJlZmVyZW5jZXMvYmxv
Yi9tYXN0ZXIvdGVzdC9jb3JlL2NhbGxfcmVmLndhc3QuCisgICAgICAgIEFsc28sIHJlbW92ZWQg
cmVkdW5kYW5kIFR5cGVLaW5kOjpUeXBlSWR4IGFuZCB1c2VkIG5ldyBSZWYgb3IgUmVmTnVsbAor
ICAgICAgICBraW5kcyBpbnN0ZWFkLgorCisgICAgICAgICogd2FzbS55YW1sOgorICAgICAgICAq
IHdhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanM6IEFk
ZGVkLgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDIxLTA4LTMwICBSb3NzIEtpcnNs
aW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXVtJbnRsXSBFcnJv
cnMgZm9yIC5jYWxsKHt9KSBhcmUgdG9vIHZlcmJvc2UKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS55YW1sIGIvSlNUZXN0cy93YXNtLnlhbWwKaW5kZXggMmVjYjYzNGRiZjViMmJlZTcyY2RkMTNj
NDAxNzliZjJmNWU5NGJjMS4uZGY1NTlhYjg4YzhmYzRjYjE1YmI5YjE3NmQzZDFkNjY2OTVhNGQ4
ZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtLnlhbWwKKysrIGIvSlNUZXN0cy93YXNtLnlhbWwK
QEAgLTEzNSw2ICsxMzUsOSBAQAogLSBwYXRoOiB3YXNtL3RocmVhZHMtc3BlYy10ZXN0cy93YWl0
LWxhcmdlLndhc3QuanMKICAgY21kOiBydW5XZWJBc3NlbWJseVNwZWNUZXN0IDpub3JtYWwKIAor
LSBwYXRoOiB3YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0cy9jYWxsX3JlZi53YXN0
LmpzCisgIGNtZDogcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVyZW5jZVNwZWNUZXN0IDpub3Jt
YWwKKwogLSBwYXRoOiB3YXNtL3NwZWMtdGVzdHMvYWRkcmVzcy53YXN0LmpzCiAgIGNtZDogcnVu
V2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAtIHBhdGg6IHdhc20vc3BlYy10ZXN0cy9hbGln
bi53YXN0LmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy1z
cGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMgYi9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJl
bmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcyYzU2NzJiMDEw
ODhiYmJjMzg5OTQxZGUxYWViNmJiNzU1ZjIxMgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
d2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qcwpAQCAt
MCwwICsxLDk2IEBACitsZXQgJDEgPSBpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAw
XHgwMFx4MDBceDAxXHgxOFx4MDRceDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBceDAxXHg3ZVx4MDFc
eDdlXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHg2MFx4MDJceDZiXHgwMFx4N2ZceDAxXHg3Zlx4
MDNceDBhXHgwOVx4MDNceDAwXHgwMFx4MDBceDAxXHgwMlx4MDFceDAxXHgwMVx4MDZceDFmXHgw
NVx4NmJceDAxXHgwMFx4ZDJceDA0XHgwYlx4NmJceDAyXHgwMFx4ZDJceDA1XHgwYlx4NmJceDAx
XHgwMFx4ZDJceDA2XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA3XHgwYlx4NmJceDAxXHgwMFx4ZDJc
eDA4XHgwYlx4MDdceDJhXHgwNlx4MDNceDcyXHg3NVx4NmVceDAwXHgwM1x4MDNceDY2XHg2MVx4
NjNceDAwXHgwNFx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDVceDAzXHg2
Nlx4NjlceDYyXHgwMFx4MDZceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDA3XHgwM1x4NmZceDY0
XHg2NFx4MDBceDA4XHgwOVx4MTdceDA1XHgwM1x4MDBceDAyXHgwMVx4MDJceDAzXHgwMFx4MDFc
eDA0XHgwM1x4MDBceDAxXHgwNVx4MDNceDAwXHgwMVx4MDZceDAzXHgwMFx4MDJceDA3XHgwOFx4
MGFceGE3XHgwMVx4MDlceDA3XHgwMFx4MjBceDAxXHgyMFx4MDBceDE0XHgwYlx4MDdceDAwXHgy
MFx4MDBceDIwXHgwMFx4NmNceDBiXHgwN1x4MDBceDQxXHgwMFx4MjBceDAwXHg2Ylx4MGJceDE1
XHgwMVx4MDJceDZjXHgwMFx4ZDJceDAxXHgyMVx4MDFceGQyXHgwMlx4MjFceDAyXHgyMFx4MDBc
eDIwXHgwMVx4MTRceDIwXHgwMlx4MTRceDBiXHgxNlx4MDBceDIwXHgwMFx4NTBceDA0XHg3ZVx4
NDJceDAxXHgwNVx4MjBceDAwXHgyMFx4MDBceDQyXHgwMVx4N2RceDIzXHgwMFx4MTRceDdlXHgw
Ylx4MGJceDE4XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHgyMFx4MDFceDA1XHgyMFx4MDBceDQy
XHgwMVx4N2RceDIwXHgwMFx4MjBceDAxXHg3ZVx4MjNceDAxXHgxNFx4MGJceDBiXHgxZVx4MDBc
eDIwXHgwMFx4NDJceDAxXHg1OFx4MDRceDdlXHg0Mlx4MDFceDA1XHgyMFx4MDBceDQyXHgwMlx4
N2RceDIzXHgwMlx4MTRceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAyXHgxNFx4N2NceDBiXHgw
Ylx4MTNceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHgyY1x4MDVceDIwXHgwMFx4NDJceDAx
XHg3ZFx4MjNceDA0XHgxNFx4MGJceDBiXHgxNFx4MDBceDIwXHgwMFx4NTBceDA0XHg3ZVx4NDJc
eGUzXHgwMFx4MDVceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAzXHgxNFx4MGJceDBiIik7CisK
K2Fzc2VydF9yZXR1cm4oKCkgPT4gY2FsbCgkMSwgInJ1biIsIFswXSksIDApOworYXNzZXJ0X3Jl
dHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzNdKSwgLTkpOworCisvLyBjYWxsX3JlZi53YXN0
Ojk5CisvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIChyZWYubnVsbCA8aGVhcHR5cGU+KTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcwNy4KKy8vIChhc3NlcnRf
dHJhcCAoaW52b2tlICJudWxsIikgIm51bGwgZnVuY3Rpb24iKQorCisvLyBjYWxsX3JlZi53YXN0
Ojk5CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgw
MFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBh
XHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBc
eDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4
MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDApKSAoaTY0LmNvbnN0IDEpKQor
CisvLyBjYWxsX3JlZi53YXN0OjEwMAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYx
XHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFc
eDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjFceDYzXHgwMFx4
MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgw
YVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAx
XHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAi
cnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYyIgKGk2NC5jb25zdCAx
KSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDEKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4
NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgw
M1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcy
XHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHgwNVx4MTBc
eDAwXHgwMVx4NDJceGY4XHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIs
IGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGlu
dm9rZSAiZmFjIiAoaTY0LmNvbnN0IDUpKSAoaTY0LmNvbnN0IDEyMCkpCisKKy8vIGNhbGxfcmVm
Lndhc3Q6MTAyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFc
eDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4
MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4MDNceDAyXHgw
MVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxZVx4MDFceDFj
XHgwMFx4MDJceDQwXHg0Mlx4MTlceDEwXHgwMFx4MDFceDQyXHg4MFx4ODBceDgwXHhkZVx4ODdc
eDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIs
IGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGlu
dm9rZSAiZmFjIiAoaTY0LmNvbnN0IDI1KSkgKGk2NC5jb25zdCA3MDM0NTM1Mjc3NTczOTYzNzc2
KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDMKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAw
XHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBc
eDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4
NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgw
M1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceDAw
XHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJc
eDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9y
ZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAwKSAoaTY0LmNvbnN0IDEpKSAoaTY0
LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNAorcnVuKCgpID0+IGNhbGwoaW5zdGFu
Y2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDBc
eDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgwMlx4MjRceDMxXHgwN1x4
NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgw
N1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQw
XHg0Mlx4MDFceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBc
eDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAo
YXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDEpIChpNjQuY29uc3Qg
MSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA1CitydW4oKCkgPT4gY2Fs
bChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJc
eDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgwZVx4MDFceDAyXHgyNFx4
MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgw
MFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE4XHgwMVx4MTZceDAw
XHgwMlx4NDBceDQyXHgwNVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4ZjhceDAwXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDUp
IChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMTIwKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDYK
K3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgw
MFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBl
XHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MjBceDAxXHgxZVx4MDBceDAyXHg0MFx4NDJceDE5XHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHg4
MFx4ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFceDUxXHg0NVx4MGRceDAw
XHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8g
KGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAyNSkgKGk2NC5jb25z
dCAxKSkgKGk2NC5jb25zdCA3MDM0NTM1Mjc3NTczOTYzNzc2KQorCisvLyBjYWxsX3JlZi53YXN0
OjExMQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4
MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgw
YVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFceDAzXHgwMlx4MDFceDAw
XHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBc
eDAyXHg0MFx4NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4
MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChh
c3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCAwKSkgKGk2NC5jb25zdCAxKSkK
KworLy8gY2FsbF9yZWYud2FzdDoxMTIKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAx
XHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDY5XHg2Mlx4MDBc
eDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4
MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgw
MVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAg
InJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmaWIiIChpNjQuY29uc3Qg
MSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTEzCitydW4oKCkgPT4gY2Fs
bChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJc
eDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4
MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDJceDEw
XHgwMFx4MDFceDQyXHgwMlx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAiZmliIiAoaTY0LmNvbnN0IDIpKSAoaTY0LmNvbnN0IDIpKQorCisvLyBjYWxsX3JlZi53YXN0
OjExNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4
MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgw
YVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFceDAzXHgwMlx4MDFceDAw
XHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBc
eDAyXHg0MFx4NDJceDA1XHgxMFx4MDBceDAxXHg0Mlx4MDhceDAxXHg1MVx4NDVceDBkXHgwMFx4
MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChh
c3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCA1KSkgKGk2NC5jb25zdCA4KSkK
KworLy8gY2FsbF9yZWYud2FzdDoxMTUKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAx
XHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDY5XHg2Mlx4MDBc
eDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4
MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgxNFx4MTBceDAwXHgwMVx4NDJceGMyXHhk
NVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIs
ICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2
NC5jb25zdCAyMCkpIChpNjQuY29uc3QgMTA5NDYpKQorCisvLyBjYWxsX3JlZi53YXN0OjExNwor
cnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYlx4MDFc
eDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4
MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgw
Mlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBm
XHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNz
ZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDApKSAoaTY0LmNvbnN0IDQ0KSkK
KworLy8gY2FsbF9yZWYud2FzdDoxMTgKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAx
XHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgwNFx4NjVceDc2XHg2NVx4NmVc
eDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4
MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHhl
M1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIs
ICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImV2ZW4iIChp
NjQuY29uc3QgMSkpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxsX3JlZi53YXN0OjExOQorcnVu
KCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgw
MVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYlx4MDFceDAy
XHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdc
eDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4
NDBceDQyXHhlNFx4MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5jb25zdCAxMDApKSAoaTY0LmNvbnN0IDQ0
KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjAKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAw
XHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBc
eDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgwNFx4NjVceDc2XHg2NVx4
NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgw
MFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4Y2RceDAwXHgxMFx4MDBceDAx
XHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJl
dmVuIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6
MTIxCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgw
MFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBh
XHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBc
eDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4
MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgw
MFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8v
IChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAwKSkgKGk2NC5jb25zdCA5
OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTIyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYw
XHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRc
eDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4
MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgy
Y1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEp
KSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAib2RkIiAoaTY0LmNv
bnN0IDEpKSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjMKK3J1bigoKSA9
PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5
XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRc
eDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4
MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHhj
OFx4MDFceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBi
XHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRf
cmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAyMDApKSAoaTY0LmNvbnN0IDk5KSkKKwor
Ly8gY2FsbF9yZWYud2FzdDoxMjQKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4
NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3
ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4
MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwg
ICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAib2RkIiAoaTY0LmNvbnN0
IDc3KSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIFVucmVhY2hhYmxlIHR5cGluZy4KKworLy8gY2Fs
bF9yZWYud2FzdDoxMjkKK2xldCAkMiA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4
MDBceDAwXHgwMFx4MDFceDA1XHgwMVx4NjBceDAwXHgwMVx4N2ZceDAzXHgwMlx4MDFceDAwXHgw
N1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1
XHgwMFx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MDBceDE0XHgwYiIpOworYXNzZXJ0X3RyYXAo
KCkgPT4gY2FsbCgkMiwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDox
MzcKK2xldCAkMyA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAxXHg3Zlx4MDNceDAzXHgw
Mlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4NjhceDYx
XHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4MDFceDAwXHgwYVx4MGRc
eDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA2XHgwMFx4MDBceGQyXHgwMFx4MTRceDBiIik7Cith
c3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQzLCAidW5yZWFjaGFibGUiLCBbXSkpOworCisvLyBjYWxs
X3JlZi53YXN0OjE0OQorbGV0ICQ0ID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgw
MFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdm
XHgwM1x4MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFc
eDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4
MDBceDBhXHgxMlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MGJceDAwXHgwMFx4NDFceDAwXHhk
Mlx4MDBceDE0XHgxYVx4NDFceDAwXHgwYiIpOworYXNzZXJ0X3RyYXAoKCkgPT4gY2FsbCgkNCwg
InVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDoxNjQKKy8vIEZJWE1FOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMjc4LgorLy8gYXNzZXJ0
X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2
MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4MDNceDAyXHgwMFx4MDFceDA3
XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVc
eDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBhXHgwZlx4MDJceDA0XHgwMFx4
MjBceDAwXHgwYlx4MDhceDAwXHgwMFx4NDJceDAwXHhkMlx4MDBceDE0XHgwYiIpOworCisvLyBj
YWxsX3JlZi53YXN0OjE3OQorLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjAyNzguCisvLyBhc3NlcnRfaW52YWxpZCgiXHgwMFx4NjFceDczXHg2ZFx4
MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBceDAwXHgw
MVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJceDc1XHg2ZVx4NzJceDY1
XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4MDVceDAxXHgwM1x4MDBc
eDAxXHgwMFx4MGFceDEwXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgwOVx4MDBceDAwXHhkMlx4
MDBceDE0XHgxYVx4NDJceDAwXHgwYiIpOworCisvLyBjYWxsX3JlZi53YXN0OjE5NQorYXNzZXJ0
X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDVceDAxXHg2
MFx4MDFceDZmXHgwMFx4MDNceDAyXHgwMVx4MDBceDBhXHgwN1x4MDFceDA1XHgwMFx4MjBceDAw
XHgxNFx4MGIiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2Vz
L3JlZl90eXBlcy5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzL3JlZl90eXBl
cy5qcwppbmRleCA3YmFmOWMyYzk5MWNhYjExNTQxNzY1NjhhMDkxY2U4NDE5ZmUzYmU5Li5mMzk2
NWVkYjg0YTk0N2ZkYzExNmI3Mjk2Zjc1ZTA4NzRkY2QyZDY2IDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKKysrIGIvSlNUZXN0cy93YXNt
L2Z1bmN0aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzCkBAIC0xODMsNiArMTgzLDcgQEAgYXN5
bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNrKCkgewogICAgICJpbXBvcnRlZCBnbG9iYWwg
bTpnIG11c3QgYmUgYSBzYW1lIHR5cGUiCiAgICk7CiAKKwogICAvKgogICAgKiAobW9kdWxlCiAg
ICAqICAgKGltcG9ydCAibSIgImciIChnbG9iYWwgKHJlZiBleHRlcm4pKSkpCkBAIC0yMDgsNyAr
MjA5LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNrKCkgewogICAgICAgKQog
ICAgIH0sCiAgICAgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLAotICAgICJXZWJBc3NlbWJseS5N
b2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogc2V0X2dsb2JhbCAwIHdpdGggdHlwZSBFeHRlcm5yZWYi
CisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBzZXRfZ2xvYmFsIDAg
d2l0aCB0eXBlIFJlZiB3aXRoIGEgdmFyaWFibGUgb2YgdHlwZSBSZWZOdWxsLCBpbiBmdW5jdGlv
biBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ1ZmZlcikn
KSIKICAgKTsKIH0KIApAQCAtMjcyLDcgKzI3Myw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3ROb25O
dWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkgewogICAgICAgICAiXHgwMFx4NjFceDczXHg2ZFx4
MDFceDAwXHgwMFx4MDBceDAxXHgwN1x4MDFceDYwXHgwMVx4NmZceDAxXHg2Ylx4NmZceDAzXHgw
Mlx4MDFceDAwXHgwYVx4MDZceDAxXHgwNFx4MDBceDIwXHgwMFx4MGJceDAwXHgwYlx4MDRceDZl
XHg2MVx4NmRceDY1XHgwMVx4MDRceDAxXHgwMFx4MDFceDY2IgogICAgICAgKSwKICAgICBXZWJB
c3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5l
eHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYiCisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0
IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gUmVm
TnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25l
dyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScpIgogICApOwogfQogCkBAIC0zMDAsNyArMzAx
LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdE5vbk51bGxGdW5jcmVmSW5jb21wYXRpYmxlKCkgewog
ICAgICAgICAiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwN1x4MDFceDYw
XHgwMVx4NzBceDAxXHg2Ylx4NzBceDAzXHgwMlx4MDFceDAwXHgwYVx4MDZceDAxXHgwNFx4MDBc
eDIwXHgwMFx4MGJceDAwXHgwYlx4MDRceDZlXHg2MVx4NmRceDY1XHgwMVx4MDRceDAxXHgwMFx4
MDFceDY2IgogICAgICAgKSwKICAgICBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgImNv
bnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBGdW5jcmVmIgorICAgICJX
ZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMg
d2l0aCB1bmV4cGVjdGVkIHR5cGUuIFJlZk51bGwgaXMgbm90IGEgUmVmLCBpbiBmdW5jdGlvbiBh
dCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ1ZmZlciknKSIK
ICAgKTsKIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMv
d2FzbS93YXNtLmpzb24KaW5kZXggNGY4ZGQ5ZTNkMjEzNDM1MDAwMDA2ZTI0MTQ2YjAxOTRjOWFj
ODhmMS4uYzQzNzdmYTFjNzFiZDg0MDUxNDdlZDFmNjcxZmQyNWQ5MDY3YTdhMSAxMDA2NDQKLS0t
IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBA
IC0xNiwxMiArMTYsMTEgQEAKICAgICAgICAgInJlZl9udWxsIjogIHsgInR5cGUiOiAidmFyaW50
NyIsICJ2YWx1ZSI6ICAtMjAsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAicmVm
IjogICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMSwgImIzdHlwZSI6ICJC
Mzo6SW50NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAi
dmFsdWUiOiAgLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidm9pZCI6ICAg
ICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6ICJCMzo6Vm9p
ZCIgfSwKLSAgICAgICAgInR5cGVfaWR4IjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6
IC0xMjgsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9CisgICAgICAgICJ2b2lkIjogICAgICB7ICJ0
eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9CiAg
ICAgfSwKICAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImV4
dGVybnJlZiIsICJmdW5jcmVmIl0sCiAgICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAi
ZjMyIiwgImY2NCIsICJ2b2lkIiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCi0gICAgInJlZl90
eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJ0eXBlX2lkeCJdLAorICAgICJyZWZfdHlw
ZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAicmVmIiwgInJlZl9udWxsIl0sCiAgICAgImV4
dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUiOiAidWludDgiLCAi
dmFsdWUiOiAwIH0sCiAgICAgICAgICJUYWJsZSI6ICAgIHsgInR5cGUiOiAidWludDgiLCAidmFs
dWUiOiAxIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439723</attachid>
            <date>2021-09-30 04:08:47 -0700</date>
            <delta_ts>2021-10-24 03:55:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20210930180845.patch</filename>
            <type>text/plain</type>
            <size>74594</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
MjRmZjM4ODdhOTQ1NGVhMjcwODAwNGYwN2MzYjdiNjUzNmY0YjlkLi45OTFiOWFjMWRhOWMzNDEz
OTE2MzhhN2ZjZGM5NDY4Yjk4NmNmY2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlZCByZWR1bmRhbmQgVHlwZUtpbmQ6OlR5cGVJ
ZHggYmVjYXVzZSBuZXcgUmVmIGFuZCBSZWZOdWxsIG9wY29kZXMgY292ZXIKKyAgICAgICAgdGhl
IHNhbWUgY2FzZXMuCisgICAgICAgIEFsc28gdXNlIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmL0V4dGVybnJlZiB3aGVuIHR5cGVkCisgICAgICAgIGZ1bmN0aW9uIHJlZmVy
ZW5jZXMgcHJvcG9zYWwgaXMgZW5hYmxlZC4KKyAgICAgICAgCisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdSZWYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAoSlNDOjpXYXNtOjpB
aXJJUkdlbmVyYXRvcjo6bW92ZU9wRm9yVmFsdWVUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZExvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFk
ZFJlZkZ1bmMpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6Z1R5cGVJZHgp
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAg
ICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzUmVmVHlwZSk6
CisgICAgICAgIChKU0M6Oldhc206OmlzRXh0ZXJucmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
aXNGdW5jcmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3JlZlR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpFeHRlcm5yZWZUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNTdWJ0eXBlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6aXNEZWZhdWx0YWJsZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJsZUlu
Zm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBh
cnNlRXhwcmVzc2lvbik6CisgICAgICAgICogd2FzbS9XYXNtR2xvYmFsLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6R2xvYmFsOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9i
YWw6OnNldCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBs
KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKToKKyAgICAgICAgKiB3
YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VjdGlvblBh
cnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpUYWJsZTo6d2FzbVR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwOgorICAgICAgICAoSlND
OjpKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5
cGUpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMDktMjkgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzdHJlbmd0aCByZWR1Y3Rp
b24gb24gJSBvcGVyYXRvciBzaG91bGQgaGFuZGxlIGFuIElOVF9NSU4gZGl2aXNvci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCmluZGV4
IDY0NTc0ZjdhYzliMDAwZTFiZGJjYWVhMTFjOTE0YjIzYjIyODFjNzIuLjM5OGY1NWIzZTc1NjVk
YjM2MjQ2ZjdlMWUyMTMxOTM5ZTAxMWE5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcApAQCAtNDAzLDE1ICs0MDMsMTcgQEAgQ1N0
cmluZyBCeXRlY29kZUR1bXBlcjo6Zm9ybWF0Q29uc3RhbnQoVHlwZSB0eXBlLCB1aW50NjRfdCBj
b25zdGFudCkgY29uc3QKICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgIHJldHVybiB0
b0NTdHJpbmcoYml0d2lzZV9jYXN0PGRvdWJsZT4oY29uc3RhbnQpKTsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNy
ZWY6Ci0gICAgICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoY29uc3RhbnQpID09IGpzTnVsbCgpKQot
ICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKLSAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQ
b2ludGVyKGJpdHdpc2VfY2FzdDx2b2lkKj4oY29uc3RhbnQpKSk7Ci0gICAgZGVmYXVsdDoKKyAg
ICBkZWZhdWx0OiB7CisgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5yZWYo
dHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChKU1ZhbHVlOjpkZWNvZGUoY29uc3RhbnQpID09IGpz
TnVsbCgpKQorICAgICAgICAgICAgICAgIHJldHVybiAibnVsbCI7CisgICAgICAgICAgICByZXR1
cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25zdGFudCkpKTsK
KyAgICAgICAgfQorCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybiAiIjsKICAgICB9CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXYXNtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApp
bmRleCBmOWMyOTQ2MDA2MTg3M2QwMDQ0OThhODAwNDQ2NjJjZTIxN2Y2YmU0Li5lOTViNjIwZDU0
MzYxYjk4MTNiNGZkNjIyMTQ2NTFjMjY2MDQ2ODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBw
cml2YXRlOgogICAgIFR5cGVkVG1wIGc2NCgpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIFR5
cGVzOjpJNjQgfTsgfQogICAgIFR5cGVkVG1wIGdFeHRlcm5yZWYoKSB7IHJldHVybiB7IG5ld1Rt
cChCMzo6R1ApLCBUeXBlczo6RXh0ZXJucmVmIH07IH0KICAgICBUeXBlZFRtcCBnRnVuY3JlZigp
IHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIFR5cGVzOjpGdW5jcmVmIH07IH0KLSAgICBUeXBl
ZFRtcCBnVHlwZUlkeChUeXBlIHR5cGUpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIHR5cGUg
fTsgfQorICAgIFR5cGVkVG1wIGdSZWYoVHlwZSB0eXBlKSB7IHJldHVybiB7IG5ld1RtcChCMzo6
R1ApLCB0eXBlIH07IH0KICAgICBUeXBlZFRtcCBmMzIoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6
RlApLCBUeXBlczo6RjMyIH07IH0KICAgICBUeXBlZFRtcCBmNjQoKSB7IHJldHVybiB7IG5ld1Rt
cChCMzo6RlApLCBUeXBlczo6RjY0IH07IH0KIApAQCAtNDI2LDggKzQyNiw5IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICByZXR1cm4gZzY0KCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNy
ZWY6CiAgICAgICAgICAgICByZXR1cm4gZ0Z1bmNyZWYoKTsKLSAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6VHlwZUlkeDoKLSAgICAgICAgICAgIHJldHVybiBnVHlwZUlkeCh0eXBlKTsKKyAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAg
ICAgICAgICAgcmV0dXJuIGdSZWYodHlwZSk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVy
bnJlZjoKICAgICAgICAgICAgIHJldHVybiBnRXh0ZXJucmVmKCk7CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkYzMjoKQEAgLTYwNCw3ICs2MDUsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6STY0OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgICAgIHJlc3VsdFR5cGUg
PSBCMzo6SW50NjQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGMzI6CkBAIC02NTQsNyArNjU2LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgICAgIHJldHVybiBNb3ZlOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
MzI6CiAgICAgICAgICAgICByZXR1cm4gTW92ZUZsb2F0OwpAQCAtOTEyLDcgKzkxNSw4IEBAIEFp
cklSR2VuZXJhdG9yOjpBaXJJUkdlbmVyYXRvcihjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYgaW5m
bywgQjM6OlByb2NlZHVyZSYgcHJvCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5j
cmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBh
cHBlbmQoTW92ZSwgYXJnLCBtX2xvY2Fsc1tpXSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTAxNSw3ICsxMDE5LDggQEAgYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkTG9jYWwoVHlwZSB0eXBlLCB1aW50MzJfdCBjb3VudCkgLT4gUGFydGlhbFJl
c3VsdAogICAgICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAg
ICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGFwcGVuZChNb3ZlLCBBcmc6
OmltbShKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpKSwgbG9jYWwpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTEwNTEsNyArMTA1Niw4IEBAIGF1
dG8gQWlySVJHZW5lcmF0b3I6OmFkZENvbnN0YW50KEJhc2ljQmxvY2sqIGJsb2NrLCBUeXBlIHR5
cGUsIHVpbnQ2NF90IHZhbHVlKSAtCiAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgIGNhc2Ug
VHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgIGNh
c2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgIGNhc2Ug
VHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIGFwcGVuZChibG9jaywgTW92ZSwgQXJnOjpiaWdJ
bW0odmFsdWUpLCByZXN1bHQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFR5cGVLaW5kOjpG
MzI6CkBAIC0xMDk4LDcgKzExMDQsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRSZWZGdW5j
KHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aQogICAgIC8v
IEZJWE1FOiBFbWl0IHRoaXMgaW5saW5lIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk4NTA2Pi4KICAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1
bmN0aW9uUmVmZXJlbmNlcygpKSB7CiAgICAgICAgIFNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUlu
ZGV4ID0gbV9pbmZvLnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShpbmRleCk7
Ci0gICAgICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoVHlwZSB7IFR5cGVLaW5kOjpUeXBlSWR4LCBO
dWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH0pOworICAgICAgICByZXN1bHQgPSB0bXBGb3JU
eXBlKFR5cGUgeyBUeXBlS2luZDo6UmVmLCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH0p
OwogICAgIH0gZWxzZQogICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGVzOjpGdW5jcmVm
KTsKICAgICBlbWl0Q0NhbGwoJm9wZXJhdGlvbldhc21SZWZGdW5jLCByZXN1bHQsIGluc3RhbmNl
VmFsdWUoKSwgYWRkQ29uc3RhbnQoVHlwZXM6OkkzMiwgaW5kZXgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKaW5kZXggNmMwMjZl
MDhhNDA5ZTk5NWQ0MzE4ZGZiMTgwNDYyNmQwZmFkMTc1Zi4uMjQwZTEwMmJmZGEwODk4NzliMmI0
OTMzYTFkMTFmNzE2NTliMzllOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmgKQEAgLTEwNyw3ICsxMDcsOCBAQCBwcml2YXRlOgog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNy
ZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgY2FzZSBUeXBl
S2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNl
IFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgcmV0dXJuIG1hcnNoYWxsTG9jYXRpb25J
bXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3VudCwgc3RhY2tPZmZzZXQpOwogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKQEAgLTE5
Niw3ICsxOTcsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVy
bnJlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAg
cmV0dXJuIG1hcnNoYWxsTG9jYXRpb25JbXBsKHJvbGUsIGdwckFyZ3MsIGdwQXJndW1lbnRDb3Vu
dCwgc3RhY2tPZmZzZXQpOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkY2NDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApp
bmRleCBjMGNiMzFiN2NiZjAwNmFhMDE5MzZjMWY0NDZkNmIxODlmMGRlMTU1Li5kNmVkNjNmNzVi
MTVkZmNiNDk0YmE4N2E4OGZiOGM1NjczZTJiMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5oCkBAIC02OCw3ICs2OCw4IEBAIGlubGluZSBib29sIGlzVmFsdWVUeXBl
KFR5cGUgdHlwZSkKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgY2FzZSBUeXBl
S2luZDo6RnVuY3JlZjoKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlv
blJlZmVyZW5jZXMoKTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTc2LDIwICs3
Nyw2MSBAQCBpbmxpbmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitpbmxpbmUgYm9vbCBpc1JlZlR5cGUoVHlwZSB0eXBlKQoreworICAgIGlmIChP
cHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAg
IHJldHVybiB0eXBlLmlzUmVmKCkgfHwgdHlwZS5pc1JlZk51bGwoKTsKKyAgICByZXR1cm4gdHlw
ZS5pc0Z1bmNyZWYoKSB8fCB0eXBlLmlzRXh0ZXJucmVmKCk7Cit9CisKK2lubGluZSBib29sIGlz
RXh0ZXJucmVmKFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlU
eXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gaXNSZWZUeXBlKHR5cGUp
ICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJlSW5kZXg+KFR5cGVLaW5kOjpF
eHRlcm5yZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6OkV4dGVybnJlZjsK
K30KKworaW5saW5lIGJvb2wgaXNGdW5jcmVmKFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoT3B0aW9u
czo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1
cm4gaXNSZWZUeXBlKHR5cGUpICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJl
SW5kZXg+KFR5cGVLaW5kOjpGdW5jcmVmKTsKKyAgICByZXR1cm4gdHlwZS5raW5kID09IFR5cGVL
aW5kOjpGdW5jcmVmOworfQorCitpbmxpbmUgVHlwZSBGdW5jcmVmVHlwZSgpCit7CisgICAgaWYg
KE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAgICAg
ICAgcmV0dXJuIFdhc206OlR5cGUge1dhc206OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxs
YWJsZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNtOjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtp
bmQ6OkZ1bmNyZWYpfTsKKyAgICByZXR1cm4gVHlwZXM6OkZ1bmNyZWY7Cit9CisKK2lubGluZSBU
eXBlIEV4dGVybnJlZlR5cGUoKQoreworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5
cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBXYXNtOjpUeXBlIHtXYXNt
OjpUeXBlS2luZDo6UmVmTnVsbCwgV2FzbTo6TnVsbGFibGU6Olllcywgc3RhdGljX2Nhc3Q8V2Fz
bTo6U2lnbmF0dXJlSW5kZXg+KFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWYpfTsKKyAgICByZXR1
cm4gVHlwZXM6OkV4dGVybnJlZjsKK30KKworaW5saW5lIGJvb2wgaXNSZWZXaXRoVHlwZUluZGV4
KFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5j
dGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGlz
UmVmVHlwZSh0eXBlKSAmJiAhaXNFeHRlcm5yZWYodHlwZSkgJiYgIWlzRnVuY3JlZih0eXBlKTsK
K30KKwogaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKIHsKICAg
ICBpZiAoc3ViLmlzTnVsbGFibGUoKSAmJiAhcGFyZW50LmlzTnVsbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN1Yi5pc1R5cGVJZHgoKSAmJiBwYXJlbnQuaXNGdW5j
cmVmKCkpCisgICAgaWYgKChzdWIuaXNSZWYoKSB8fCBzdWIuaXNSZWZOdWxsKCkpICYmIGlzRnVu
Y3JlZihwYXJlbnQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBzdWIgPT0g
cGFyZW50OwotfQorICAgIGlmIChzdWIuaXNSZWYoKSAmJiBwYXJlbnQuaXNSZWZOdWxsKCkgJiYg
c3ViLmluZGV4ID09IHBhcmVudC5pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLWlubGlu
ZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUuaXNGdW5jcmVm
KCkgfHwgdHlwZS5pc0V4dGVybnJlZigpIHx8IHR5cGUuaXNUeXBlSWR4KCk7CisgICAgcmV0dXJu
IHN1YiA9PSBwYXJlbnQ7CiB9CiAKIGlubGluZSBib29sIGlzVmFsaWRIZWFwVHlwZUtpbmQoVHlw
ZUtpbmQga2luZCkKQEAgLTEwNiw3ICsxNDgsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5
cGVLaW5kKFR5cGVLaW5kIGtpbmQpCiAKIGlubGluZSBib29sIGlzRGVmYXVsdGFibGVUeXBlKFR5
cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gIWlzUmVmVHlwZSh0eXBlKSB8fCB0eXBlLmlzTnVsbGFi
bGUoKTsKKyAgICByZXR1cm4gIXR5cGUuaXNSZWYoKTsKIH0KIAogZW51bSBjbGFzcyBFeHRlcm5h
bEtpbmQgOiB1aW50OF90IHsKQEAgLTMyMyw3ICszNjUsNyBAQCBwdWJsaWM6CiAgICAgdWludDMy
X3QgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX21heGltdW07IH0KICAgICBU
YWJsZUVsZW1lbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBUeXBl
IHdhc21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1
bmNyZWYgPyBUeXBlczo6RnVuY3JlZiA6IFR5cGVzOjpFeHRlcm5yZWY7IH0KKyAgICBUeXBlIHdh
c21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYgPyBGdW5jcmVmVHlwZSgpIDogRXh0ZXJucmVmVHlwZSgpOyB9CiAKIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9pbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25QYXJzZXIuaAppbmRleCA0ZTZiODMyMjA0MDc3NmEyNTE3MjJlZWEyMThmNDZjMmMz
OTkxMzEwLi43NzliY2NlMTA3NTBiMmQ1NzBlMDIzMGE4YzEwZGI5ZDJmN2E2NzllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMTA4
MSw3ICsxMDgxLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0Up
CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBt
X2luZm8uc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAg
ICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmNvbnN0cnVjdEFuZEFwcGVuZChUeXBlIHtUeXBlS2lu
ZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7VHlwZUtp
bmQ6OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CiAgICAgICAg
ICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTEyMjMsNyArMTIyMyw3IEBAIEZPUl9F
QUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogCiAgICAgY2FzZSBDYWxsUmVm
OiB7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5
VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSwgImZ1bmN0aW9uIHJlZmVyZW5jZXMgYXJlIG5vdCBl
bmFibGVkIik7Ci0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1fZXhwcmVzc2lvblN0
YWNrLmxhc3QoKS50eXBlKCkuaXNUeXBlSWR4KCksICJub24tZnVuY3JlZiBjYWxsX3JlZiB2YWx1
ZSAiLCBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOworICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKCFpc1JlZldpdGhUeXBlSW5kZXgobV9leHByZXNzaW9uU3RhY2su
bGFzdCgpLnR5cGUoKSksICJub24tZnVuY3JlZiBjYWxsX3JlZiB2YWx1ZSAiLCBtX2V4cHJlc3Np
b25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOwogCiAgICAgICAgIGNvbnN0IFNpZ25hdHVyZUlu
ZGV4IGNhbGxlZVNpZ25hdHVyZUluZGV4ID0gbV9leHByZXNzaW9uU3RhY2subGFzdCgpLnR5cGUo
KS5pbmRleDsKICAgICAgICAgY29uc3QgU2lnbmF0dXJlJiBjYWxsZWVTaWduYXR1cmUgPSBTaWdu
YXR1cmVJbmZvcm1hdGlvbjo6Z2V0KGNhbGxlZVNpZ25hdHVyZUluZGV4KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21HbG9iYWwuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKaW5kZXggNTlkYTk3N2MzY2E2ZmE0Y2EzNTdl
MGNmNWRlYTRkNTY2YmIwYzk0ZC4uMDNiN2U3MjExMzk4YmRhZGVmYzZjNmFjM2ZkYWZkNmE2MGZi
NzNmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKQEAgLTQ4
LDcgKzQ4LDggQEAgSlNWYWx1ZSBHbG9iYWw6OmdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KSBjb25zdAogICAgICAgICByZXR1cm4ganNOdW1iZXIocHVyaWZ5TmFOKGJpdHdpc2VfY2Fz
dDxkb3VibGU+KG1fdmFsdWUubV9wcmltaXRpdmUpKSk7CiAgICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgcmV0dXJuIG1fdmFsdWUubV9leHRlcm5yZWYuZ2V0KCk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC04NSw1NyArODYsNDggQEAg
dm9pZCBHbG9iYWw6OnNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFy
Z3VtZW50KQogICAgICAgICBtX3ZhbHVlLm1fcHJpbWl0aXZlID0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90Pih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9vd25lcik7Ci0gICAgICAgIGlm
ICghbV90eXBlLmlzTnVsbGFibGUoKSAmJiBhcmd1bWVudC5pc051bGwoKSkgewotICAgICAgICAg
ICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYg
Y2Fubm90IGJlIG51bGwiKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAg
ICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwgYXJndW1l
bnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
LSAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
b3duZXIpOwotICAgICAgICBib29sIGlzTnVsbGFibGUgPSBtX3R5cGUuaXNOdWxsYWJsZSgpOwot
ICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwotICAg
ICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51
bGxwdHI7Ci0gICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJndW1l
bnQsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFpc051bGxhYmxlIHx8
ICFhcmd1bWVudC5pc051bGwoKSkpIHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9i
YWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24i
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG1fdHlwZS5r
aW5kID09IFR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJG
dW5jdGlvbikpIHsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5kZXgg
PSBtX3R5cGUuaW5kZXg7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRl
eDsKLSAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgYXJnSW5k
ZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJ
bmRleCgpOwotICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgpIHsKLSAgICAg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0
ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkFyZ3VtZW50IGZ1
bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpOworICAgIGRlZmF1bHQ6
IHsKKyAgICAgICAgaWYgKGlzRXh0ZXJucmVmKG1fdHlwZSkpIHsKKyAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKG1fb3duZXIpOworICAgICAgICAgICAgaWYgKCFtX3R5cGUuaXNOdWxsYWJsZSgp
ICYmIGFyZ3VtZW50LmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24o
Z2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9y
KGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbV92
YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwgYXJndW1lbnQpOwor
ICAgICAgICB9IGVsc2UgaWYgKG1fdHlwZS5raW5kID09IFR5cGVLaW5kOjpSZWYgfHwgbV90eXBl
LmtpbmQgPT0gVHlwZUtpbmQ6OlJlZk51bGwgfHwgbV90eXBlLmtpbmQgPT0gVHlwZUtpbmQ6OkZ1
bmNyZWYpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOworICAgICAgICAg
ICAgYm9vbCBpc051bGxhYmxlID0gbV90eXBlLmlzTnVsbGFibGUoKTsKKyAgICAgICAgICAgIFdl
YkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7
CisgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIGFyZ3VtZW50
LCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAh
YXJndW1lbnQuaXNOdWxsKCkpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGds
b2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlv
biIpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoaXNSZWZXaXRoVHlwZUluZGV4KG1fdHlwZSkgJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNt
V3JhcHBlckZ1bmN0aW9uKSkgeworICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4
IHBhcmFtSW5kZXggPSBtX3R5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0
dXJlSW5kZXggYXJnSW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKKyAg
ICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4
KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBhcmdJbmRleCA9
IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7CisgICAgICAgICAgICAgICAg
aWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1h
dGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1fdmFsdWUubV9l
eHRlcm5yZWYuc2V0KG1fb3duZXItPnZtKCksIG1fb3duZXIsIGFyZ3VtZW50KTsKICAgICAgICAg
fQotICAgICAgICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVy
LCBhcmd1bWVudCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAg
ICBicmVhazsKICAgICB9CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+CiB2b2lkIEds
b2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBsKFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgc3dpdGNo
IChtX3R5cGUua2luZCkgewotICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOiB7CisgICAgaWYgKGlzRnVuY3JlZihtX3R5cGUpIHx8IGlzRXh0
ZXJucmVmKG1fdHlwZSkpIHsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9vd25lcik7CiAgICAg
ICAgIHZpc2l0b3IuYXBwZW5kKG1fdmFsdWUubV9leHRlcm5yZWYpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCA4
MWE1Y2RiY2FlMzI4NmJlMzJjYTQ5MGRlNDVlZTNhZmY3ODE5ODU2Li4wOTlhMDNmYjlmMWMyNTRm
ZjM5MDU2ZDcyNDFhZjZhNTA1NzNlY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAgLTU0Nyw3ICs1NDcsOCBAQCBhdXRvIExM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBz
aWduYXR1cmUpIC0+IExMSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoK
LSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgaWYgKGdw
ckluZGV4IDwgZ3ByQ291bnQpCiAgICAgICAgICAgICAgICAgKytncHJJbmRleDsKICAgICAgICAg
ICAgIGVsc2UgaWYgKHN0YWNrSW5kZXgrKyA+PSBzdGFja0NvdW50KQpAQCAtNTYyLDggKzU2Myw2
IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBT
aWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgog
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAg
IH07CkBAIC02MDUsNyArNjA0LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5
cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRleCA+IGdwckxpbWl0KQogICAgICAg
ICAgICAgICAgIGFyZ3VtZW50c1tpXSA9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKC0tZ3BySW5k
ZXgpOwogICAgICAgICAgICAgZWxzZQpAQCAtNjIwLDggKzYyMCw2IEBAIGF1dG8gTExJbnRHZW5l
cmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVy
ZSkgLT4gTExJCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9p
ZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTYzNSw3ICs2MzMs
OCBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3Qg
U2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAg
ICAgICAgaWYgKGdwckluZGV4ID4gZ3ByTGltaXQpCiAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5
UmVzdWx0c1tpXSA9IHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKC0tZ3BySW5kZXgpOwogICAgICAg
ICAgICAgZWxzZQpAQCAtNjUwLDggKzY0OSw2IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJ
bmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAg
ICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0KQEAgLTY5Myw3ICs2OTAsOCBAQCBhdXRvIExM
SW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUoY29uc3QgU2lnbmF0dXJlJiBz
aWduYXR1cmUpIC0+IFZlYwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoK
LSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgaWYgKGdw
ckluZGV4IDwgbWF4R1BSSW5kZXgpCiAgICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZCh2
aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChudW1iZXJPZkxMSW50Q2FsbGVlU2F2ZVJlZ2lzdGVycyAr
IGdwckluZGV4KyspKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcwOCw4ICs3MDYsNiBAQCBhdXRv
IExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZWUoY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUpIC0+IFZlYwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC03
NTAsNyArNzQ2LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNp
Z25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CiAgICAgICAgICAgICBhZGRBcmd1bWVudChpLCBncHJJbmRleCwgbWF4R1BSSW5kZXgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTc1OSw4ICs3
NTYsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNzc1LDE2ICs3NzAsMTEgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkTG9jYWwo
VHlwZSB0eXBlLCB1aW50MzJfdCBjb3VudCkgLT4gUGFydGlhbFJlc3VsdAogICAgIGNoZWNrQ29u
c2lzdGVuY3koKTsKIAogICAgIG1fY29kZUJsb2NrLT5tX251bVZhcnMgKz0gY291bnQ7Ci0gICAg
c3dpdGNoICh0eXBlLmtpbmQpIHsKLSAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKKyAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0
ZXJucmVmKHR5cGUpKSB7CiAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgbV91
bml0aWFsaXplZExvY2Fscy5hcHBlbmQocHVzaChOb0NvbnNpc3RlbmN5Q2hlY2spKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICB9IGVsc2UKICAgICAgICAgbV9zdGFja1NpemUg
Kz0gY291bnQ7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICByZXR1cm4geyB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKaW5kZXggODVi
NDI0ZmIxODQ4OTMwOGRmMjdmOWE2MTdlN2Y3MzBmNjNlMjU2OS4uMTQ2YmYwOTE2OTdkYThjNjZh
OTIxOGMzZTdhOGIwZDJkZGQzM2VhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGVyYXRpb25zLmNwcApAQCAtNTQ5LDcgKzU0OSw4IEBAIEpTQ19ERUZJTkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBJCiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBidWZmZXIuYXQoaW5kZXgpOwogCiAgICAg
ICAgIHVpbnQ2NF90IHVuYm94ZWRWYWx1ZSA9IDA7Ci0gICAgICAgIHN3aXRjaCAoc2lnbmF0dXJl
LT5yZXR1cm5UeXBlKGluZGV4KS5raW5kKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIHJldHVyblR5
cGUgPSBzaWduYXR1cmUtPnJldHVyblR5cGUoaW5kZXgpOworICAgICAgICBzd2l0Y2ggKHJldHVy
blR5cGUua2luZCkgewogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICB1
bmJveGVkVmFsdWUgPSB2YWx1ZS50b0ludDMyKGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTU2MiwxNyArNTYzLDE2IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVy
YXRpb25JdGVyYXRlUmVzdWx0cywgdm9pZCwgKENhbGxGcmFtZSogY2FsbEZyYW1lLCBJCiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkY2NDoKICAgICAgICAgICAgIHVuYm94ZWRWYWx1ZSA9IGJpdHdp
c2VfY2FzdDx1aW50NjRfdD4odmFsdWUudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSk7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAg
IGlmICghdmFsdWUuaXNDYWxsYWJsZSh2bSkpIHsKLSAgICAgICAgICAgICAgICB0aHJvd1R5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRnVuY3JlZiB2YWx1ZSBpcyBub3QgYSBmdW5jdGlv
biJfcyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgRkFMTFRIUk9VR0g7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAg
ICAgICAgIHVuYm94ZWRWYWx1ZSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4odmFsdWUpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICBpZiAo
aXNGdW5jcmVmKHJldHVyblR5cGUpIHx8IGlzRXh0ZXJucmVmKHJldHVyblR5cGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFpc0V4dGVybnJlZihyZXR1cm5UeXBlKSAmJiAhdmFsdWUuaXNDYWxs
YWJsZSh2bSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIkZ1bmNyZWYgdmFsdWUgaXMgbm90IGEgZnVuY3Rpb24iX3MpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHVuYm94ZWRWYWx1ZSA9IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4odmFsdWUpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Q
YXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCA2
M2Q4OWQ2MWQ0MzUzMGEyNmZiNTQxNWUyNzAxY2MzMGE3M2EzMjg0Li44ZWNkMjUxMGNjYjJmYmQz
NmM4NWFmNTU0M2UzNzEwNzRkOTRjMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhcnNlci5oCkBAIC0zMDUsNyArMzA1LDExIEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8
U3VjY2Vzc1R5cGU+OjpwYXJzZVZhbHVlVHlwZShjb25zdCBNb2R1bGVJbmZvcm1hdGlvbiYKICAg
ICBUeXBlS2luZCB0eXBlS2luZCA9IHN0YXRpY19jYXN0PFR5cGVLaW5kPihraW5kKTsKICAgICBi
b29sIGlzTnVsbGFibGUgPSB0cnVlOwogICAgIFNpZ25hdHVyZUluZGV4IHNpZ0luZGV4ID0gMDsK
LSAgICBpZiAodHlwZUtpbmQgPT0gVHlwZUtpbmQ6OlJlZiB8fCB0eXBlS2luZCA9PSBUeXBlS2lu
ZDo6UmVmTnVsbCkgeworCisgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5j
dGlvblJlZmVyZW5jZXMoKSAmJiAodHlwZUtpbmQgPT0gVHlwZUtpbmQ6OkZ1bmNyZWYgfHwgdHlw
ZUtpbmQgPT0gVHlwZUtpbmQ6OkV4dGVybnJlZikpIHsKKyAgICAgICAgc2lnSW5kZXggPSBzdGF0
aWNfY2FzdDxTaWduYXR1cmVJbmRleD4odHlwZUtpbmQpOworICAgICAgICB0eXBlS2luZCA9IFR5
cGVLaW5kOjpSZWZOdWxsOworICAgIH0gZWxzZSBpZiAodHlwZUtpbmQgPT0gVHlwZUtpbmQ6OlJl
ZiB8fCB0eXBlS2luZCA9PSBUeXBlS2luZDo6UmVmTnVsbCkgewogICAgICAgICBpZiAoIU9wdGlv
bnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIApAQCAtMzE4LDkgKzMyMiw4IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBQ
YXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhbHVlVHlwZShjb25zdCBNb2R1bGVJbmZvcm1hdGlv
biYKICAgICAgICAgICAgIFR5cGVLaW5kIGhlYXBLaW5kID0gc3RhdGljX2Nhc3Q8VHlwZUtpbmQ+
KGhlYXBUeXBlKTsKICAgICAgICAgICAgIGlmICghaXNWYWxpZEhlYXBUeXBlS2luZChoZWFwS2lu
ZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgdHlwZUtpbmQg
PSBoZWFwS2luZDsKKyAgICAgICAgICAgIHNpZ0luZGV4ID0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJl
SW5kZXg+KGhlYXBLaW5kKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHR5cGVLaW5k
ID0gVHlwZUtpbmQ6OlR5cGVJZHg7CiAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90
PihoZWFwVHlwZSkgPj0gaW5mby51c2VkU2lnbmF0dXJlcy5zaXplKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgc2lnSW5kZXggPSBTaWduYXR1cmVJbmZvcm1h
dGlvbjo6Z2V0KGluZm8udXNlZFNpZ25hdHVyZXNbaGVhcFR5cGVdLmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcAppbmRleCAwZjhj
Y2I3ZTJjM2I2NDExNjM1Y2Q5ZjViMDQ4YjM1NjMyMDVmYTc0Li5hMzEwZDc1ZTBlMDc5NTMxODky
Y2ZlNjdiYjU2M2M5ZDYyNzhhZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCkBAIC02MDcsNyArNjA3LDcgQEAgYXV0byBTZWN0aW9u
UGFyc2VyOjpwYXJzZUluaXRFeHByKHVpbnQ4X3QmIG9wY29kZSwgdWludDY0X3QmIGJpdHNPcklt
cG9ydE51bWJlciwKIAogICAgICAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1
bmN0aW9uUmVmZXJlbmNlcygpKSB7CiAgICAgICAgICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1
cmVJbmRleCA9IG1faW5mby0+c2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGlu
ZGV4KTsKLSAgICAgICAgICAgIHJlc3VsdFR5cGUgPSB7IFR5cGVLaW5kOjpUeXBlSWR4LCBOdWxs
YWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH07CisgICAgICAgICAgICByZXN1bHRUeXBlID0geyBU
eXBlS2luZDo6UmVmLCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH07CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgcmVzdWx0VHlwZSA9IFR5cGVzOjpGdW5jcmVmOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcAppbmRleCA4MTI2OGNmNWNlY2FhMTIxMmMy
NDc0MGZkN2YzNDIyMTAwZWVmYTYyLi4wYzgyZDA3ZDllNjkzNDE3OWM3NGUyZjQzNjQ4MTliOWMy
N2M4ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKQEAgLTE3
OCw5ICsxNzgsOSBAQCBERUZJTkVfVklTSVRfQUdHUkVHQVRFKFRhYmxlKTsKIFR5cGUgVGFibGU6
Ondhc21UeXBlKCkgY29uc3QKIHsKICAgICBpZiAoaXNFeHRlcm5yZWZUYWJsZSgpKQotICAgICAg
ICByZXR1cm4gVHlwZXM6OkV4dGVybnJlZjsKKyAgICAgICAgcmV0dXJuIEV4dGVybnJlZlR5cGUo
KTsKICAgICBBU1NFUlQoaXNGdW5jcmVmVGFibGUoKSk7Ci0gICAgcmV0dXJuIFR5cGVzOjpGdW5j
cmVmOworICAgIHJldHVybiBGdW5jcmVmVHlwZSgpOwogfQogCiBGdW5jUmVmVGFibGUqIFRhYmxl
Ojphc0Z1bmNyZWZUYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1RvV2FzbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2Fz
bS5jcHAKaW5kZXggNzJiYTg3NDM4OWFhM2FlNjk4NzY1NGMyYjM0NjZkMTU4YmY4YTdmYS4uZDE1
NWQ4YTM0YmYxYjM1NmM4NzBmMGI2ZmU5OTEyMmVmMTVmNjk3OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcApAQCAtNDUsMTAgKzQ1LDYgQEAgdm9pZCBtYXJz
aGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVy
ZSwgY29uc3QgQ2FsbEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgICAg
IGppdC5tb3ZlVHJ1c3RlZFZhbHVlKGpzVW5kZWZpbmVkKCksIGRzdCk7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICAgICAgaml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5
bG9hZEdQUigpKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJ
MzI6CiAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNyYy5ncHIoKSwgZHN0LnBh
eWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBqaXQuYm94SW50MzIoZHN0LnBheWxvYWRHUFIoKSwg
ZHN0LCBEb05vdEhhdmVUYWdSZWdpc3RlcnMpOwpAQCAtNjMsOSArNTksMTIgQEAgdm9pZCBtYXJz
aGFsbEpTUmVzdWx0KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVy
ZSwgY29uc3QgQ2FsbEkKICAgICAgICAgICAgIGlzTmFOLmxpbmsoJmppdCk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgaml0LmJy
ZWFrcG9pbnQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OiB7CisgICAg
ICAgICAgICBpZiAoaXNGdW5jcmVmKHR5cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKQorICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIoKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsKKyAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcAppbmRleCA5YzVmMThhNjgzOTY4OTUyZDA0NDhm
NGQyODBiODdmNjNmMWJjMmNhLi41NzFlMDVhYWNmZjYzMTZkMWRjZTVjNjhjMzM1ZjdjYzFiYjIz
MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5R2xvYmFsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5R2xvYmFsLmNwcApAQCAtMTA1LDE0ICsxMDUsMTQgQEAgSlNPYmplY3QqIEpTV2ViQXNz
ZW1ibHlHbG9iYWw6OnR5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpGNjQ6CiAgICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFs
U3RyaW5nKHZtLCAiZjY0Iik7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkV4dGVybnJlZjoKLSAgICAgICAgdmFsdWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmco
dm0sICJleHRlcm5yZWYiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6RnVuY3JlZjoKLSAgICAgICAgdmFsdWVTdHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0s
ICJmdW5jcmVmIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoV2Fz
bTo6aXNGdW5jcmVmKHZhbHVlVHlwZSkpCisgICAgICAgICAgICB2YWx1ZVN0cmluZyA9IGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsKKyAgICAgICAgZWxzZSBpZiAoV2FzbTo6aXNF
eHRlcm5yZWYodmFsdWVUeXBlKSkKKyAgICAgICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2
aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIH0KICAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInZhbHVlIiksIHZhbHVlU3Ry
aW5nKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmgKaW5kZXggZDhmMjY1MGNhYTU4NjcyMzU0YmQ1ZjM5ZjdkZWFiNjQxMGQw
MDU0Yy4uN2QwMTdkZmIxNmYwNGI0MmJmZTFmZDI3OGNkZjI5ZDRlYjg1YzM1NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5o
CkBAIC0xMzgsOSArMTM4LDkgQEAgQUxXQVlTX0lOTElORSBib29sIGlzV2ViQXNzZW1ibHlIb3N0
RnVuY3Rpb24oVk0mIHZtLCBKU1ZhbHVlIG9iamVjdCkKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBk
ZWZhdWx0VmFsdWVGb3JSZWZlcmVuY2VUeXBlKGNvbnN0IFdhc206OlR5cGUgdHlwZSkKIHsKICAg
ICBBU1NFUlQoV2FzbTo6aXNSZWZUeXBlKHR5cGUpKTsKLSAgICBpZiAodHlwZS5pc0V4dGVybnJl
ZigpKQorICAgIGlmIChXYXNtOjppc0V4dGVybnJlZih0eXBlKSkKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgQVNTRVJUKHR5cGUuaXNGdW5jcmVmKCkpOworICAgIEFTU0VSVChX
YXNtOjppc0Z1bmNyZWYodHlwZSkpOwogICAgIHJldHVybiBqc051bGwoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCmluZGV4IGY2N2YyNDJhNzg5MTNh
ZTVjMDJhYTU2OGU5OWFjNjVjZGJiODBmZGUuLmYwMjMzNmIzMTMzN2RkODVmN2E5NWJjNjM5ZDlk
YTQzNDA5YzU4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dh
c21Ub0pTLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5j
cHAKQEAgLTEwNyw3ICsxMDcsNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2Fz
bUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJl
ZjoKICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5k
bGVkIGFib3ZlLgotICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkZ1bmNyZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CkBAIC0xODIsNyArMTgx
LDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJp
bmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gSGFuZGxlZCBhYm92ZS4KLSAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAtMjc5LDE0ICsyNzcsOCBAQCBFeHBlY3RlZDxN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdh
c21Ub0pTKFZNJiB2bQogICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gaml0LmxhYmVsKCk7CiAKICAg
ICBpZiAoc2lnbmF0dXJlLnJldHVybkNvdW50KCkgPT0gMSkgewotICAgICAgICBzd2l0Y2ggKHNp
Z25hdHVyZS5yZXR1cm5UeXBlKDApLmtpbmQpIHsKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9p
ZDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgotICAgICAgICAgICAgLy8gRm9y
IHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3aXRoIHRoZXNlIHR5cGVzIGluIHRo
ZWlyIHNpZ25hdHVyZSByZXR1cm4gYXJlIGEgV2ViQXNzZW1ibHkuTW9kdWxlIHZhbGlkYXRpb24g
ZXJyb3IuCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNvbnN0IGF1dG8mIHJldHVyblR5cGUgPSBzaWduYXR1cmUu
cmV0dXJuVHlwZSgwKTsKKyAgICAgICAgc3dpdGNoIChyZXR1cm5UeXBlLmtpbmQpIHsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6STY0OiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUg
STY0IGV4dHJhY3Rpb24gZnJvbSBCaWdJbnQuCiAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMDUzCkBAIC0zMjQsMTEgKzMxNiw2IEBAIEV4
cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFp
bHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVm
OgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQ
Uiwgd2FzbUNhbGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkpOwotICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjogewogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBkb25lOwogICAgICAgICAgICAgRlBSUmVnIGRlc3QgPSB3YXNtQ2FsbEluZm8ucmVz
dWx0c1swXS5mcHIoKTsKQEAgLTM5MCw2ICszNzcsMTMgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYg
dm0KICAgICAgICAgICAgIGRvbmUubGluaygmaml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CisgICAgICAgIGRlZmF1bHQ6ICB7CisgICAgICAgICAgICBpZiAoV2FzbTo6aXNGdW5j
cmVmKHJldHVyblR5cGUpIHx8IFdhc206OmlzRXh0ZXJucmVmKHJldHVyblR5cGUpKQorICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCB3YXNtQ2FsbEluZm8u
cmVzdWx0c1swXS5ncHIoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgLy8g
Rm9yIHRoZSBKYXZhU2NyaXB0IGVtYmVkZGluZywgaW1wb3J0cyB3aXRoIHRoZXNlIHR5cGVzIGlu
IHRoZWlyIHNpZ25hdHVyZSByZXR1cm4gYXJlIGEgV2ViQXNzZW1ibHkuTW9kdWxlIHZhbGlkYXRp
b24gZXJyb3IuCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChzaWduYXR1cmUucmV0dXJuQ291
bnQoKSA+IDEpIHsKICAgICAgICAgR1BSUmVnIHdhc21Db250ZXh0SW5zdGFuY2VHUFIgPSBQaW5u
ZWRSZWdpc3RlckluZm86OmdldCgpLndhc21Db250ZXh0SW5zdGFuY2VQb2ludGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNw
cAppbmRleCAzYWIzYzNkNWNiNWM5MDA5YmVjMmI2ZDgwZDQ0NGM4MGMxNDNlYWRlLi4xMDEwNmYy
MjgxN2U0ZDVhZTlkNjI5ZGI1MmViYmQyMjJmZDllOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtNzksMTkg
Kzc5LDIwIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2ViQXNzZW1ibHlGdW5jdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKICAgICBmb3IgKHVuc2lnbmVkIGFy
Z0luZGV4ID0gMDsgYXJnSW5kZXggPCBzaWduYXR1cmUuYXJndW1lbnRDb3VudCgpOyArK2FyZ0lu
ZGV4KSB7CiAgICAgICAgIEpTVmFsdWUgYXJnID0gY2FsbEZyYW1lLT5hcmd1bWVudChhcmdJbmRl
eCk7Ci0gICAgICAgIHN3aXRjaCAoc2lnbmF0dXJlLmFyZ3VtZW50KGFyZ0luZGV4KS5raW5kKSB7
Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjoKKyAgICAgICAgY29uc3QgYXV0byYg
YXJndW1lbnRUeXBlID0gc2lnbmF0dXJlLmFyZ3VtZW50KGFyZ0luZGV4KTsKKyAgICAgICAgaWYg
KGFyZ3VtZW50VHlwZS5pc0kzMigpKSB7CiAgICAgICAgICAgICBhcmcgPSBKU1ZhbHVlOjpkZWNv
ZGUoYXJnLnRvSW50MzIoZ2xvYmFsT2JqZWN0KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKLSAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6RnVuY3JlZjogewotICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gc2lnbmF0dXJl
LmFyZ3VtZW50KGFyZ0luZGV4KS5pc051bGxhYmxlKCk7CisgICAgICAgIH0gZWxzZSBpZiAoV2Fz
bTo6aXNFeHRlcm5yZWYoYXJndW1lbnRUeXBlKSkgeworICAgICAgICAgICAgaWYgKCFhcmd1bWVu
dFR5cGUuaXNOdWxsYWJsZSgpICYmIGFyZy5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxs
IEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIpKSk7CisgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6
aXNSZWZUeXBlKGFyZ3VtZW50VHlwZSkpIHsKKyAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9
IGFyZ3VtZW50VHlwZS5pc051bGxhYmxlKCk7CiAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0
aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwogICAgICAgICAgICAgV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb24qIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBudWxscHRyOwogICAgICAgICAgICAg
aWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmcsIHdhc21GdW5jdGlvbiwgd2Fz
bVdyYXBwZXJGdW5jdGlvbikgJiYgKCFpc051bGxhYmxlIHx8ICFhcmcuaXNOdWxsKCkpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFs
T2JqZWN0LCBzY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmpl
Y3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSkpOwot
ICAgICAgICAgICAgaWYgKHNpZ25hdHVyZS5hcmd1bWVudChhcmdJbmRleCkua2luZCA9PSBXYXNt
OjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rp
b24pKSB7Ci0gICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRleCA9
IHNpZ25hdHVyZS5hcmd1bWVudChhcmdJbmRleCkuaW5kZXg7CisgICAgICAgICAgICBpZiAoaXNS
ZWZXaXRoVHlwZUluZGV4KGFyZ3VtZW50VHlwZSkgJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3Jh
cHBlckZ1bmN0aW9uKSkgeworICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBh
cmFtSW5kZXggPSBhcmd1bWVudFR5cGUuaW5kZXg7CiAgICAgICAgICAgICAgICAgV2FzbTo6U2ln
bmF0dXJlSW5kZXggYXJnSW5kZXg7CiAgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikK
ICAgICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUlu
ZGV4KCk7CkBAIC0xMDAsMjcgKzEwMSwxNCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bFdlYkFzc2VtYmx5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
ICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwg
c2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
IkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgICAgIGlmICghc2lnbmF0dXJl
LmFyZ3VtZW50KGFyZ0luZGV4KS5pc051bGxhYmxlKCkgJiYgYXJnLmlzTnVsbCgpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3Qs
IHZtLCAiTm9uLW51bGwgRXh0ZXJucmVmIGNhbm5vdCBiZSBudWxsIikpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CisgICAgICAgIH0gZWxz
ZSBpZiAoYXJndW1lbnRUeXBlLmlzSTY0KCkpCiAgICAgICAgICAgICBhcmcgPSBKU1ZhbHVlOjpk
ZWNvZGUoYml0d2lzZV9jYXN0PHVpbnQ2NF90PihhcmcudG9CaWdJbnQ2NChnbG9iYWxPYmplY3Qp
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMy
OgorICAgICAgICBlbHNlIGlmIChhcmd1bWVudFR5cGUuaXNGMzIoKSkKICAgICAgICAgICAgIGFy
ZyA9IEpTVmFsdWU6OmRlY29kZShiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGFyZy50b0Zsb2F0KGds
b2JhbE9iamVjdCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdhc206OlR5
cGVLaW5kOjpGNjQ6CisgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50VHlwZS5pc0Y2NCgpKQogICAg
ICAgICAgICAgYXJnID0gSlNWYWx1ZTo6ZGVjb2RlKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYXJn
LnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpWb2lkOgotICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpG
dW5jOgotICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpSZWY6CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIGJveGVkQXJncy5hcHBlbmQo
YXJnKTsKICAgICB9CkBAIC0yOTQsNyArMjgyLDggQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpT
RW50cnlQdHJUYWc+IFdlYkFzc2VtYmx5RnVuY3Rpb246OmpzQ2FsbEVudHJ5cG9pbnRTbG93KCkK
ICAgICAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9Xb3JkKHNjcmF0Y2hHUFIsIHdhc21D
YWxsSW5mby5wYXJhbXNbaV0uZ3ByKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgog
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7CiAgICAgICAgICAgICAvLyBF
bnN1cmUgd2UgaGF2ZSBhIFdBU00gZXhwb3J0ZWQgZnVuY3Rpb24uCiAgICAgICAgICAgICBqaXQu
bG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwpAQCAtMzE0LDcgKzMwMyw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxF
bnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OmluZm8oKSkpKTsKIAogICAgICAg
ICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsKLSAgICAgICAgICAgIGlmICh0eXBlLmtp
bmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHgpIHsKKyAgICAgICAgICAgIGlmIChXYXNtOjpp
c1JlZldpdGhUeXBlSW5kZXgodHlwZSkpIHsKICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpz
UGFyYW0sIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVs
cGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0
T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5cGUuaW5kZXgpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFs
Q29uc3RydWN0b3IuY3BwCmluZGV4IDhmNjVhZWQ5ZmQxYWJkNzk3ZTRhNjdjODhlZjYxZThhYTcx
NDE5NzkuLjJkYjBlOTBiNGVjMzY2MGQ4YjMwMDUxMzRiN2VlZTM4MTExY2YzNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC05NSw5ICs5NSw5IEBAIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iCiAgICAgICAgIGVsc2UgaWYgKHZhbHVlU3RyaW5nID09ICJmNjQiX3MpCiAgICAgICAg
ICAgICB0eXBlID0gV2FzbTo6VHlwZXM6OkY2NDsKICAgICAgICAgZWxzZSBpZiAodmFsdWVTdHJp
bmcgPT0gImFueWZ1bmMiX3MgfHwgdmFsdWVTdHJpbmcgPT0gImZ1bmNyZWYiX3MpCi0gICAgICAg
ICAgICB0eXBlID0gV2FzbTo6VHlwZXM6OkZ1bmNyZWY7CisgICAgICAgICAgICB0eXBlID0gV2Fz
bTo6RnVuY3JlZlR5cGUoKTsKICAgICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImV4dGVy
bnJlZiJfcykKLSAgICAgICAgICAgIHR5cGUgPSBXYXNtOjpUeXBlczo6RXh0ZXJucmVmOworICAg
ICAgICAgICAgdHlwZSA9IFdhc206OkV4dGVybnJlZlR5cGUoKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJXZWJBc3NlbWJs
eS5HbG9iYWwgZXhwZWN0cyBpdHMgJ3ZhbHVlJyBmaWVsZCB0byBiZSB0aGUgc3RyaW5nICdpMzIn
LCAnaTY0JywgJ2YzMicsICdmNjQnLCAnYW55ZnVuYycsICdmdW5jcmVmJywgb3IgJ2V4dGVybnJl
ZiciX3MpKSk7CiAgICAgfQpAQCAtMTM3LDI0ICsxMzcsMjIgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2IKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RnVuY3JlZjogewotICAgICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkK
LSAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBl
KTsKLSAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1bWVudCkg
JiYgIWFyZ3VtZW50LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xv
YmFsT2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9u
IikpOwotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfQotICAgICAgICBpbml0aWFs
VmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOiB7Ci0gICAgICAgIGlmIChhcmd1
bWVudC5pc1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgYXJndW1lbnQgPSBkZWZhdWx0VmFsdWVG
b3JSZWZlcmVuY2VUeXBlKHR5cGUpOwotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjpl
bmNvZGUoYXJndW1lbnQpOwotICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7CisgICAgICAg
IGlmIChXYXNtOjppc0Z1bmNyZWYodHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5p
c1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9y
UmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RG
dW5jdGlvbih2bSwgYXJndW1lbnQpICYmICFhcmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAg
ICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJl
IGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
fTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpTVmFsdWU6OmVu
Y29kZShhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlw
ZSkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAg
ICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAg
ICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiAKICAgICBSZWY8V2FzbTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFs
OjpjcmVhdGUodHlwZSwgbXV0YWJpbGl0eSwgaW5pdGlhbFZhbHVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNw
cAppbmRleCBkYjQwOTJhZDY5NDgyZjdhMDlkM2JlMWY3NTIzNDIyZDlkNWFmMTNkLi4zNmZkMGM2
MDYzYTY5YTI5Y2RmMjU1YThiODE0YmUwOGMyNmQ4Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBA
IC0yNDYsOSArMjQ2LDE0IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmtJbXBs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBpCiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3Io
Z2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xv
YmFsIiwgIm11c3QgYmUgYSBzYW1lIHR5cGUiKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
Z2xvYmFsVmFsdWUtPmdsb2JhbCgpLT5tdXRhYmlsaXR5KCkgIT0gV2FzbTo6R2xvYmFsSW5mb3Jt
YXRpb246OkltbXV0YWJsZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRp
b24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRG
YWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIHNhbWUgbXV0
YWJpbGl0eSIpKSk7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAobW9kdWxlSW5mb3JtYXRp
b24uZ2xvYmFsc1tpbXBvcnQua2luZEluZGV4XS50eXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjogeworICAgICAgICAgICAgICAgICAgICBjb25z
dCBhdXRvJiBkZWNsYXJlZEdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2lt
cG9ydC5raW5kSW5kZXhdLnR5cGU7CisgICAgICAgICAgICAgICAgICAgIGlmIChXYXNtOjppc0V4
dGVybnJlZihkZWNsYXJlZEdsb2JhbFR5cGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFnbG9iYWwudHlwZS5pc051bGxhYmxlKCkgJiYgdmFs
dWUuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZh
aWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJub24tbnVsbCBleHRlcm5yZWYg
Y2Fubm90IGJlIG51bGwiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+
aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgaWYgKFdhc206OmlzUmVmVHlwZShkZWNsYXJlZEdsb2JhbFR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzTnVsbGFibGUgPSBnbG9iYWwudHlw
ZS5pc051bGxhYmxlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0
aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwogICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBudWxscHRyOwpA
QCAtMjU4LDcgKzI2Myw3IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmtJbXBs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gaXNOdWxsYWJsZSA/ICJtdXN0IGJlIGEg
d2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRl
ZCBmdW5jdGlvbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZh
aWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWwudHlwZS5r
aW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdy
YXBwZXJGdW5jdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1JlZldpdGhU
eXBlSW5kZXgoZ2xvYmFsLnR5cGUpICYmICh3YXNtRnVuY3Rpb24gfHwgd2FzbVdyYXBwZXJGdW5j
dGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRl
eCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUuaW5kZXg7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKQEAgLTI2OSwyNCArMjc0LDEwIEBAIHZvaWQgV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmtJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiBpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
eGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBp
bXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVu
Y3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFu
Y2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxPYmplY3QpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsLnR5cGUuaXNOdWxsYWJsZSgpICYm
IHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNl
cHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBv
cnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibm9uLW51bGwgZXh0ZXJu
cmVmIGNhbm5vdCBiZSBudWxsIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFu
Y2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206
OlR5cGVLaW5kOjpJMzI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
Okk2NDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgotICAg
ICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoZGVjbGFyZWRHbG9iYWxUeXBlLmlzSTMyKCkgfHwgZGVjbGFyZWRH
bG9iYWxUeXBlLmlzSTY0KCkgfHwgZGVjbGFyZWRHbG9iYWxUeXBlLmlzRjMyKCkgfHwgZGVjbGFy
ZWRHbG9iYWxUeXBlLmlzRjY0KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNl
LT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCBnbG9iYWxWYWx1ZS0+Z2xv
YmFsKCktPmdldFByaW1pdGl2ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFs
c1tpbXBvcnQua2luZEluZGV4XS50eXBlOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmVm
VHlwZShnbG9iYWxUeXBlKSkgewpAQCAtMzAxLDkgKzI5Miw3IEBAIHZvaWQgV2ViQXNzZW1ibHlN
b2R1bGVSZWNvcmQ6OmxpbmtJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBpCiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAvLyBp
aWkuIEFwcGVuZCBUb1dlYkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4KLSAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoIChnbG9iYWxUeXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBX
YXNtOjpUeXBlS2luZDo6RnVuY3JlZjogeworICAgICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6
aXNGdW5jcmVmKGdsb2JhbFR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlz
TnVsbGFibGUgPSBnbG9iYWxUeXBlLmlzTnVsbGFibGUoKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJG
dW5jdGlvbiA9IG51bGxwdHI7CkBAIC0zMTEsNyArMzAwLDcgQEAgdm9pZCBXZWJBc3NlbWJseU1v
ZHVsZVJlY29yZDo6bGlua0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmpl
Y3QqIGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051
bGxhYmxlID8gIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11
c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIjsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFs
T2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwg
bXNnKSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGdsb2JhbFR5cGUua2luZCA9PSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2Fz
bUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24pKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaXNSZWZXaXRoVHlwZUluZGV4KGdsb2JhbFR5cGUpICYmICh3YXNtRnVuY3Rpb24g
fHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
YXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUuaW5kZXg7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKQEAgLTMyMiwzMSAr
MzExLDIyIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmxpbmtJbXBsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihn
bG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9i
YWwiLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUi
KSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
bV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgorICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFdhc206OmlzRXh0ZXJucmVmKGdsb2JhbFR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbFR5cGUuaXNOdWxsYWJsZSgp
ICYmIHZhbHVlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
eGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBp
bXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIG5v
bi1udWxsIHZhbHVlIikpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmlu
c3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsVHlwZS5pc0kz
MigpKQogICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRH
bG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpJNjQ6IHsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZ2xvYmFs
VHlwZS5pc0k2NCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IGJpdHMgPSB2
YWx1ZS50b0JpZ0ludDY0KGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgYml0
cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CisgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsVHlwZS5pc0YzMigpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJ
bmRleCwgYml0d2lzZV9jYXN0PHVpbnQzMl90Pih2YWx1ZS50b0Zsb2F0KGdsb2JhbE9iamVjdCkp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpGNjQ6CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGds
b2JhbFR5cGUuaXNGNjQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmlu
c3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGJpdHdpc2VfY2FzdDx1aW50NjRf
dD4odmFsdWUuYXNOdW1iZXIoKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIGlmICghdmFsdWUuaW5oZXJpdHM8SlNXZWJBc3NlbWJseUdsb2Jh
bD4odm0pKQpAQCAtNTI4LDcgKzUwOCw4IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6
OmxpbmtJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBpCiAgICAg
ICAgICAgICBzd2l0Y2ggKGdsb2JhbC50eXBlLmtpbmQpIHsKICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkZ1bmNyZWY6Ci0gICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpUeXBlSWR4OgorICAg
ICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgorICAgICAgICAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okkz
MjoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2NDoKICAgICAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL3dhc20uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgpp
bmRleCA0ZjhkZDllM2QyMTM0MzUwMDAwMDZlMjQxNDZiMDE5NGM5YWM4OGYxLi5jNDM3N2ZhMWM3
MWJkODQwNTE0N2VkMWY2NzFmZDI1ZDkwNjdhN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS93YXNtLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
d2FzbS5qc29uCkBAIC0xNiwxMiArMTYsMTEgQEAKICAgICAgICAgInJlZl9udWxsIjogIHsgInR5
cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMjAsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAog
ICAgICAgICAicmVmIjogICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMSwg
ImIzdHlwZSI6ICJCMzo6SW50NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgICB7ICJ0eXBlIjog
InZhcmludDciLCAidmFsdWUiOiAgLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAg
ICAidm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlw
ZSI6ICJCMzo6Vm9pZCIgfSwKLSAgICAgICAgInR5cGVfaWR4IjogIHsgInR5cGUiOiAidmFyaW50
NyIsICJ2YWx1ZSI6IC0xMjgsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9CisgICAgICAgICJ2b2lk
IjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIz
OjpWb2lkIiB9CiAgICAgfSwKICAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIi
LCAiZjY0IiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCiAgICAgImJsb2NrX3R5cGUiOiBbImkz
MiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJ2b2lkIiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0s
Ci0gICAgInJlZl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJ0eXBlX2lkeCJdLAor
ICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAicmVmIiwgInJlZl9udWxs
Il0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6IHsgInR5cGUi
OiAidWludDgiLCAidmFsdWUiOiAwIH0sCiAgICAgICAgICJUYWJsZSI6ICAgIHsgInR5cGUiOiAi
dWludDgiLCAidmFsdWUiOiAxIH0sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNDBiZDI5OGU5ODkxODg3NzExNDgzYzk1Nzg0MGZmMDY0ZWU3Yzdj
YS4uZjYyM2Q1MGIzNTE4ZGQxNjhiZGFmOWJjOWIzYzU5YzdhYWM4NmZiMCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIxLTA5LTMwICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dBU00tRnVuY3Rpb24tUmVmZXJlbmNlc10gQWRkIGNhbGxfcmVmIHNwZWMgdGVz
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcx
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgQWRkIG5ldyByb3V0aW5lIHRvIHJ1biB0eXBlZCBmdW5jdGlvbiByZWZlcmVuY2VzIHNwZWMg
dGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIx
LTA5LTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVGVybWluYXRlIFBDTSBkYWVtb24gYmVmb3JlIGFuZCBhZnRlciB1bml0IHRlc3QgdGhh
dCB1c2VzIGl0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
IGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRleCBlMDgxNmRjMDU2MWIx
ODBhOWVmYjY2NzhkYjgyY2M2NDZlMTliNDgxLi5hYWEwYzgzZTllY2M5YTU1OGJiOTA0M2Q5M2Y2
ODBlNjhjODU2OTAxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTEzMjUsNiAr
MTMyNSwxMCBAQCBkZWYgcnVuV2ViQXNzZW1ibHlSZWZlcmVuY2VTcGVjVGVzdChtb2RlKQogICAg
IHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsICJyZWYtc3BlYy1oYXJuZXNzIikKIGVu
ZAogCitkZWYgcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVyZW5jZVNwZWNUZXN0KG1vZGUpCisg
ICAgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwgInNwZWMtaGFybmVzcyIsICItLXVz
ZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXM9dHJ1ZSIpCitlbmQKKwogZGVmIHJ1
bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRp
b25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCiAgICAgcmV0dXJuIGlmICEkaXNGVExQbGF0
Zm9ybQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBhMDgyYjhiYjA5MTFlYjQ2Y2U0ZDA2ZWFkODViZGFjZjQ2NzA2NWMyLi5hMGNkMDA1ODRh
MDM4OWE3MzgwNTcyOTJlOTM2NDQ2ZWZiMDJiMjgwIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTMw
ICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W1dBU00tRnVuY3Rpb24tUmVmZXJlbmNlc10gQWRkIGNhbGxfcmVmIHNwZWMgdGVzdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcxMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIHRl
c3RzIGZvciBjYWxsX3JlZiBpbnN0cnVjdGlvbiBmcm9tIHRoZSBzcGVjIHJlcG86CisgICAgICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9mdW5jdGlvbi1yZWZlcmVuY2VzL2Jsb2Iv
bWFzdGVyL3Rlc3QvY29yZS9jYWxsX3JlZi53YXN0LgorICAgICAgICBBbHNvIGFkZGVkIHRlc3Rz
IGZvciBGdW5jcmVmL0V4dGVybnJlZiBpbiBXYXNtIHRhYmxlcyBhbmQgZ2xvYmFscyB0byB0ZXN0
CisgICAgICAgIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBGdW5jcmVmID0gKHJlZiBu
dWxsIGZ1bmNyZWYpLgorICAgICAgICAKKyAgICAgICAgKiB3YXNtLnlhbWw6CisgICAgICAgICog
d2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qczogQWRk
ZWQuCisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzL3JlZl90eXBlcy5qczoKKyAg
ICAgICAgKGFzeW5jIHRlc3RSZWZHbG9iYWxDaGVjayk6CisgICAgICAgIChhc3luYyB0ZXN0Tm9u
TnVsbEV4dGVybnJlZkluY29tcGF0aWJsZSk6CisgICAgICAgIChhc3luYyB0ZXN0Tm9uTnVsbEZ1
bmNyZWZJbmNvbXBhdGlibGUpOgorICAgICAgICAoYXN5bmMgdGVzdFdhc21KU0dsb2JhbHMpOgor
ICAgICAgICAoYXN5bmMgdGVzdFJlZlR5cGVzSW5UYWJsZXMpOgorICAgICAgICAqIHdhc20vd2Fz
bS5qc29uOgorCiAyMDIxLTA5LTI5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBERkcgc3RyZW5ndGggcmVkdWN0aW9uIG9uICUgb3BlcmF0b3Igc2hvdWxkIGhhbmRs
ZSBhbiBJTlRfTUlOIGRpdmlzb3IuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20ueWFtbCBiL0pT
VGVzdHMvd2FzbS55YW1sCmluZGV4IDJlY2I2MzRkYmY1YjJiZWU3MmNkZDEzYzQwMTc5YmYyZjVl
OTRiYzEuLmRmNTU5YWI4OGM4ZmM0Y2IxNWJiOWIxNzZkM2QxZDY2Njk1YTRkOGUgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvd2FzbS55YW1sCisrKyBiL0pTVGVzdHMvd2FzbS55YW1sCkBAIC0xMzUsNiAr
MTM1LDkgQEAKIC0gcGF0aDogd2FzbS90aHJlYWRzLXNwZWMtdGVzdHMvd2FpdC1sYXJnZS53YXN0
LmpzCiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAKKy0gcGF0aDogd2Fz
bS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qcworICBjbWQ6
IHJ1bldlYkFzc2VtYmx5RnVuY3Rpb25SZWZlcmVuY2VTcGVjVGVzdCA6bm9ybWFsCisKIC0gcGF0
aDogd2FzbS9zcGVjLXRlc3RzL2FkZHJlc3Mud2FzdC5qcwogICBjbWQ6IHJ1bldlYkFzc2VtYmx5
U3BlY1Rlc3QgOm5vcm1hbAogLSBwYXRoOiB3YXNtL3NwZWMtdGVzdHMvYWxpZ24ud2FzdC5qcwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0cy9j
YWxsX3JlZi53YXN0LmpzIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10
ZXN0cy9jYWxsX3JlZi53YXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MmM1NjcyYjAxMDg4YmJiYzM4OTk0
MWRlMWFlYjZiYjc1NWYyMTIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vZnVuY3Rp
b24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKQEAgLTAsMCArMSw5NiBA
QAorbGV0ICQxID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgw
MVx4MThceDA0XHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMVx4N2VceDAxXHg3ZVx4NjBceDAy
XHg3ZVx4N2VceDAxXHg3ZVx4NjBceDAyXHg2Ylx4MDBceDdmXHgwMVx4N2ZceDAzXHgwYVx4MDlc
eDAzXHgwMFx4MDBceDAwXHgwMVx4MDJceDAxXHgwMVx4MDFceDA2XHgxZlx4MDVceDZiXHgwMVx4
MDBceGQyXHgwNFx4MGJceDZiXHgwMlx4MDBceGQyXHgwNVx4MGJceDZiXHgwMVx4MDBceGQyXHgw
Nlx4MGJceDZiXHgwMVx4MDBceGQyXHgwN1x4MGJceDZiXHgwMVx4MDBceGQyXHgwOFx4MGJceDA3
XHgyYVx4MDZceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDNceDAzXHg2Nlx4NjFceDYzXHgwMFx4MDRc
eDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDA1XHgwM1x4NjZceDY5XHg2Mlx4
MDBceDA2XHgwNFx4NjVceDc2XHg2NVx4NmVceDAwXHgwN1x4MDNceDZmXHg2NFx4NjRceDAwXHgw
OFx4MDlceDE3XHgwNVx4MDNceDAwXHgwMlx4MDFceDAyXHgwM1x4MDBceDAxXHgwNFx4MDNceDAw
XHgwMVx4MDVceDAzXHgwMFx4MDFceDA2XHgwM1x4MDBceDAyXHgwN1x4MDhceDBhXHhhN1x4MDFc
eDA5XHgwN1x4MDBceDIwXHgwMVx4MjBceDAwXHgxNFx4MGJceDA3XHgwMFx4MjBceDAwXHgyMFx4
MDBceDZjXHgwYlx4MDdceDAwXHg0MVx4MDBceDIwXHgwMFx4NmJceDBiXHgxNVx4MDFceDAyXHg2
Y1x4MDBceGQyXHgwMVx4MjFceDAxXHhkMlx4MDJceDIxXHgwMlx4MjBceDAwXHgyMFx4MDFceDE0
XHgyMFx4MDJceDE0XHgwYlx4MTZceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHgwMVx4MDVc
eDIwXHgwMFx4MjBceDAwXHg0Mlx4MDFceDdkXHgyM1x4MDBceDE0XHg3ZVx4MGJceDBiXHgxOFx4
MDBceDIwXHgwMFx4NTBceDA0XHg3ZVx4MjBceDAxXHgwNVx4MjBceDAwXHg0Mlx4MDFceDdkXHgy
MFx4MDBceDIwXHgwMVx4N2VceDIzXHgwMVx4MTRceDBiXHgwYlx4MWVceDAwXHgyMFx4MDBceDQy
XHgwMVx4NThceDA0XHg3ZVx4NDJceDAxXHgwNVx4MjBceDAwXHg0Mlx4MDJceDdkXHgyM1x4MDJc
eDE0XHgyMFx4MDBceDQyXHgwMVx4N2RceDIzXHgwMlx4MTRceDdjXHgwYlx4MGJceDEzXHgwMFx4
MjBceDAwXHg1MFx4MDRceDdlXHg0Mlx4MmNceDA1XHgyMFx4MDBceDQyXHgwMVx4N2RceDIzXHgw
NFx4MTRceDBiXHgwYlx4MTRceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHhlM1x4MDBceDA1
XHgyMFx4MDBceDQyXHgwMVx4N2RceDIzXHgwM1x4MTRceDBiXHgwYiIpOworCithc3NlcnRfcmV0
dXJuKCgpID0+IGNhbGwoJDEsICJydW4iLCBbMF0pLCAwKTsKK2Fzc2VydF9yZXR1cm4oKCkgPT4g
Y2FsbCgkMSwgInJ1biIsIFszXSksIC05KTsKKworLy8gY2FsbF9yZWYud2FzdDo5OQorLy8gRklY
TUU6IGFkZCBzdXBwb3J0IGZvciAocmVmLm51bGwgPGhlYXB0eXBlPik6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk3MDcuCisvLyAoYXNzZXJ0X3RyYXAgKGludm9r
ZSAibnVsbCIpICJudWxsIGZ1bmN0aW9uIikKKworLy8gY2FsbF9yZWYud2FzdDo5OQorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgy
NFx4MzFceDAzXHg2Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAx
XHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4
MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJu
IChpbnZva2UgImZhYyIgKGk2NC5jb25zdCAwKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9y
ZWYud2FzdDoxMDAKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgw
MVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdl
XHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJc
eDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4
MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgw
ZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7
ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMiIChpNjQuY29uc3QgMSkpIChpNjQuY29u
c3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTAxCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgi
XHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBc
eDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4
NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgw
MFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDVceDEwXHgwMFx4MDFceDQy
XHhmOFx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIk
MSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYyIg
KGk2NC5jb25zdCA1KSkgKGk2NC5jb25zdCAxMjApKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMgor
cnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFc
eDAyXHgyNFx4MzFceDAzXHg2Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4
MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MWVceDAxXHgxY1x4MDBceDAyXHg0
MFx4NDJceDE5XHgxMFx4MDBceDAxXHg0Mlx4ODBceDgwXHg4MFx4ZGVceDg3XHg5Mlx4ZWNceGNm
XHhlMVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIk
MSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYyIg
KGk2NC5jb25zdCAyNSkpIChpNjQuY29uc3QgNzAzNDUzNTI3NzU3Mzk2Mzc3NikpCisKKy8vIGNh
bGxfcmVmLndhc3Q6MTAzCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdl
XHgwMVx4N2VceDAyXHgwZVx4MDFceDAyXHgyNFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFc
eDYzXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4
NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgwMFx4NDJceDAxXHgx
MFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBl
eHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZv
a2UgImZhYy1hY2MiIChpNjQuY29uc3QgMCkgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkK
KworLy8gY2FsbF9yZWYud2FzdDoxMDQKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAy
XHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNc
eDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4
NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceDAxXHg0
Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAw
XHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1
cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAxKSAoaTY0LmNvbnN0IDEpKSAoaTY0LmNv
bnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2Uo
Ilx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDBceDAw
XHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgwMlx4MjRceDMxXHgwN1x4NjZc
eDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4
MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxOFx4MDFceDE2XHgwMFx4MDJceDQwXHg0
Mlx4MDVceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceGY4XHgwMFx4MDFceDUxXHg0NVx4MGRceDAw
XHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8g
KGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCA1KSAoaTY0LmNvbnN0
IDEpKSAoaTY0LmNvbnN0IDEyMCkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA2CitydW4oKCkgPT4g
Y2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4
MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgwZVx4MDFceDAyXHgy
NFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAxXHgwM1x4MDJceDAx
XHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDIwXHgwMVx4MWVc
eDAwXHgwMlx4NDBceDQyXHgxOVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4ODBceDgwXHg4MFx4
ZGVceDg3XHg5Mlx4ZWNceGNmXHhlMVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgw
MFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0
dXJuIChpbnZva2UgImZhYy1hY2MiIChpNjQuY29uc3QgMjUpIChpNjQuY29uc3QgMSkpIChpNjQu
Y29uc3QgNzAzNDUzNTI3NzU3Mzk2Mzc3NikKKworLy8gY2FsbF9yZWYud2FzdDoxMTEKK3J1bigo
KSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFc
eDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4
MjRceDMxXHgwM1x4NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgw
MVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQy
XHgwMFx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBc
eDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVy
biAoaW52b2tlICJmaWIiIChpNjQuY29uc3QgMCkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxf
cmVmLndhc3Q6MTEyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4
MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3
ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFc
eDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4
MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkp
OyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDEpKSAoaTY0LmNv
bnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjExMworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2Uo
Ilx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAw
XHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4Njlc
eDYyXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4
MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAyXHgxMFx4MDBceDAxXHg0
Mlx4MDJceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIs
ICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2
NC5jb25zdCAyKSkgKGk2NC5jb25zdCAyKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTQKK3J1bigo
KSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFc
eDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4
MjRceDMxXHgwM1x4NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgw
MVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQy
XHgwNVx4MTBceDAwXHgwMVx4NDJceDA4XHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBc
eDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVy
biAoaW52b2tlICJmaWIiIChpNjQuY29uc3QgNSkpIChpNjQuY29uc3QgOCkpCisKKy8vIGNhbGxf
cmVmLndhc3Q6MTE1CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4
MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3
ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFc
eDE1XHgwMFx4MDJceDQwXHg0Mlx4MTRceDEwXHgwMFx4MDFceDQyXHhjMlx4ZDVceDAwXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmaWIiIChpNjQuY29uc3QgMjAp
KSAoaTY0LmNvbnN0IDEwOTQ2KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTcKK3J1bigoKSA9PiBj
YWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgw
Mlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMx
XHgwNFx4NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFc
eDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4
MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgw
YiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4g
KGludm9rZSAiZXZlbiIgKGk2NC5jb25zdCAwKSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIGNhbGxf
cmVmLndhc3Q6MTE4CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4
MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3
ZVx4MDJceDBiXHgwMVx4MDJceDI0XHgzMVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFceDAz
XHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZc
eDAxXHgxNFx4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDEp
KSAoaTY0LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTkKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4
NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgw
NFx4NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAz
XHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4ZTRc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4MmNceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4
MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJu
IChpbnZva2UgImV2ZW4iIChpNjQuY29uc3QgMTAwKSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIGNh
bGxfcmVmLndhc3Q6MTIwCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAx
XHg3ZVx4MDJceDBiXHgwMVx4MDJceDI0XHgzMVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTdceDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceGNkXHgwMFx4MTBceDAwXHgwMVx4NDJceGUzXHgw
MFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEp
KSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5j
b25zdCA3NykpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxsX3JlZi53YXN0OjEyMQorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgy
NFx4MzFceDAzXHg2Zlx4NjRceDY0XHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAx
XHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZceDAxXHgxNFx4MDBceDAyXHg0MFx4NDJc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJvZGQiIChpNjQuY29uc3QgMCkpIChpNjQuY29uc3QgOTkpKQorCisvLyBj
YWxsX3JlZi53YXN0OjEyMgorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4
NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgw
MVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Zlx4NjRceDY0XHgwMFx4MDFceDAz
XHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVc
eDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4MmNceDAxXHg1MVx4
NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwg
W10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAxKSkgKGk2
NC5jb25zdCA0NCkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTIzCitydW4oKCkgPT4gY2FsbChpbnN0
YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgw
MFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZm
XHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVc
eDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4YzhceDAxXHgxMFx4
MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwg
ZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52
b2tlICJvZGQiIChpNjQuY29uc3QgMjAwKSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVm
Lndhc3Q6MTI0CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFc
eDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4
MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgw
MVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0
XHgwMFx4MDJceDQwXHg0Mlx4Y2RceDAwXHgxMFx4MDBceDAxXHg0Mlx4MmNceDAxXHg1MVx4NDVc
eDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10p
KTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCA3NykpIChpNjQu
Y29uc3QgNDQpKQorCisvLyBVbnJlYWNoYWJsZSB0eXBpbmcuCisKKy8vIGNhbGxfcmVmLndhc3Q6
MTI5CitsZXQgJDIgPSBpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBc
eDAxXHgwNVx4MDFceDYwXHgwMFx4MDFceDdmXHgwM1x4MDJceDAxXHgwMFx4MDdceDBmXHgwMVx4
MGJceDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAwXHgw
YVx4MDZceDAxXHgwNFx4MDBceDAwXHgxNFx4MGIiKTsKK2Fzc2VydF90cmFwKCgpID0+IGNhbGwo
JDIsICJ1bnJlYWNoYWJsZSIsIFtdKSk7CisKKy8vIGNhbGxfcmVmLndhc3Q6MTM3CitsZXQgJDMg
PSBpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJc
eDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4
MDdceDBmXHgwMVx4MGJceDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2
NVx4MDBceDAxXHgwOVx4MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDBkXHgwMlx4MDRceDAw
XHgyMFx4MDBceDBiXHgwNlx4MDBceDAwXHhkMlx4MDBceDE0XHgwYiIpOworYXNzZXJ0X3RyYXAo
KCkgPT4gY2FsbCgkMywgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDox
NDkKK2xldCAkNCA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAxXHg3Zlx4MDNceDAzXHgw
Mlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4NjhceDYx
XHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4MDFceDAwXHgwYVx4MTJc
eDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDBiXHgwMFx4MDBceDQxXHgwMFx4ZDJceDAwXHgxNFx4
MWFceDQxXHgwMFx4MGIiKTsKK2Fzc2VydF90cmFwKCgpID0+IGNhbGwoJDQsICJ1bnJlYWNoYWJs
ZSIsIFtdKSk7CisKKy8vIGNhbGxfcmVmLndhc3Q6MTY0CisvLyBGSVhNRTogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDI3OC4KKy8vIGFzc2VydF9pbnZhbGlkKCJc
eDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4
MDFceDdmXHg2MFx4MDBceDAxXHg3Zlx4MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgw
Ylx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5
XHgwNVx4MDFceDAzXHgwMFx4MDFceDAwXHgwYVx4MGZceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJc
eDA4XHgwMFx4MDBceDQyXHgwMFx4ZDJceDAwXHgxNFx4MGIiKTsKKworLy8gY2FsbF9yZWYud2Fz
dDoxNzkKKy8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIwMjc4LgorLy8gYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBc
eDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4
MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2
OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBh
XHgxMFx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MDlceDAwXHgwMFx4ZDJceDAwXHgxNFx4MWFc
eDQyXHgwMFx4MGIiKTsKKworLy8gY2FsbF9yZWYud2FzdDoxOTUKK2Fzc2VydF9pbnZhbGlkKCJc
eDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA1XHgwMVx4NjBceDAxXHg2Zlx4
MDBceDAzXHgwMlx4MDFceDAwXHgwYVx4MDdceDAxXHgwNVx4MDBceDIwXHgwMFx4MTRceDBiIik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMu
anMgYi9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKaW5kZXgg
N2JhZjljMmM5OTFjYWIxMTU0MTc2NTY4YTA5MWNlODQxOWZlM2JlOS4uZGRkNzI5MmI0NjI2MTVl
NThiNGQ5MDkwYzk4ODgwM2NlZGFkM2ZkYiAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL2Z1bmN0
aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1y
ZWZlcmVuY2VzL3JlZl90eXBlcy5qcwpAQCAtMTgzLDYgKzE4Myw3IEBAIGFzeW5jIGZ1bmN0aW9u
IHRlc3RSZWZHbG9iYWxDaGVjaygpIHsKICAgICAiaW1wb3J0ZWQgZ2xvYmFsIG06ZyBtdXN0IGJl
IGEgc2FtZSB0eXBlIgogICApOwogCisKICAgLyoKICAgICogKG1vZHVsZQogICAgKiAgIChpbXBv
cnQgIm0iICJnIiAoZ2xvYmFsIChyZWYgZXh0ZXJuKSkpKQpAQCAtMjA4LDcgKzIwOSw3IEBAIGFz
eW5jIGZ1bmN0aW9uIHRlc3RSZWZHbG9iYWxDaGVjaygpIHsKICAgICAgICkKICAgICB9LAogICAg
IFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwKLSAgICAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNu
J3QgdmFsaWRhdGU6IHNldF9nbG9iYWwgMCB3aXRoIHR5cGUgRXh0ZXJucmVmIgorICAgICJXZWJB
c3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogc2V0X2dsb2JhbCAwIHdpdGggdHlwZSBS
ZWYgd2l0aCBhIHZhcmlhYmxlIG9mIHR5cGUgUmVmTnVsbCwgaW4gZnVuY3Rpb24gYXQgaW5kZXgg
MCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWZmZXIpJykiCiAgICk7CiB9
CiAKQEAgLTI3Miw3ICsyNzMsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0Tm9uTnVsbEV4dGVybnJl
ZkluY29tcGF0aWJsZSgpIHsKICAgICAgICAgIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBc
eDAwXHgwMVx4MDdceDAxXHg2MFx4MDFceDZmXHgwMVx4NmJceDZmXHgwM1x4MDJceDAxXHgwMFx4
MGFceDA2XHgwMVx4MDRceDAwXHgyMFx4MDBceDBiXHgwMFx4MGJceDA0XHg2ZVx4NjFceDZkXHg2
NVx4MDFceDA0XHgwMVx4MDBceDAxXHg2NiIKICAgICAgICksCiAgICAgV2ViQXNzZW1ibHkuQ29t
cGlsZUVycm9yLAotICAgICJjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlw
ZS4gRXh0ZXJucmVmIgorICAgICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTog
Y29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIFJlZk51bGwgaXMgbm90
IGEgUmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1i
bHkuTW9kdWxlKGJ1ZmZlciknKSIKICAgKTsKIH0KIApAQCAtMzAwLDggKzMwMSw3MyBAQCBhc3lu
YyBmdW5jdGlvbiB0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUoKSB7CiAgICAgICAgICJc
eDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA3XHgwMVx4NjBceDAxXHg3MFx4
MDFceDZiXHg3MFx4MDNceDAyXHgwMVx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MjBceDAwXHgw
Ylx4MDBceDBiXHgwNFx4NmVceDYxXHg2ZFx4NjVceDAxXHgwNFx4MDFceDAwXHgwMVx4NjYiCiAg
ICAgICApLAogICAgIFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwKLSAgICAiY29udHJvbCBmbG93
IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEZ1bmNyZWYiCisgICAgIldlYkFzc2VtYmx5
Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhw
ZWN0ZWQgdHlwZS4gUmVmTnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAg
KGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScpIgorICApOworfQor
Cithc3luYyBmdW5jdGlvbiB0ZXN0V2FzbUpTR2xvYmFscygpIHsKKyAgY29uc3QgcHJvdmlkZXJJ
bnN0YW5jZSA9IGF3YWl0IGluc3RhbnRpYXRlKAorICAgIGAobW9kdWxlCisgICAgICAgIChmdW5j
IChleHBvcnQgImYiKSAocGFyYW0gZjY0KSAocmVzdWx0IGY2NCkKKyAgICAgICAgICAobG9jYWwu
Z2V0IDApKQorICAgICApYCwKKyAgICB7fSwKKyAgICB7IHJlZmVyZW5jZV90eXBlczogdHJ1ZSB9
CisgICk7CisKKyAgY29uc3Qgd2FzbUdsb2JhbEZ1bmNyZWYgPSBuZXcgV2ViQXNzZW1ibHkuR2xv
YmFsKHt2YWx1ZTonZnVuY3JlZicsIG11dGFibGU6dHJ1ZX0pOworCisgIC8vIE51bGwgaXMgT0ss
IGJlY2F1c2UgRnVuY3JlZiBpbiB0eXBlZCBmdW5jdGlvbiByZWZlcmVuY2VzIHByb3Bvc2FsIHJl
cHJlc2VudHMgKHJlZiBudWxsIGZ1bmNyZWYpLgorICBhc3NlcnQuZXEod2FzbUdsb2JhbEZ1bmNy
ZWYudmFsdWUsIG51bGwpOworICB3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSA9IG51bGw7CisgIGFz
c2VydC5lcSh3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSwgbnVsbCk7CisKKyAgLy8gQSB3YXNtIGZ1
bmN0aW9uIGZyb20gb3RoZXIgaW5zdGFuY2UgaXMgT0sgdG9vIGJlY2F1c2UgKHJlZiAkdCkgPDog
KHJlZiBudWxsIGZ1bmNyZWYpCisgIHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gcHJvdmlkZXJJ
bnN0YW5jZS5leHBvcnRzLmY7CisKKyAgYXNzZXJ0LnRocm93cygKKyAgICAoKSA9PiB3YXNtR2xv
YmFsRnVuY3JlZi52YWx1ZSA9IGNvbnNvbGUubG9nLAorICAgIFdlYkFzc2VtYmx5LlJ1bnRpbWVF
cnJvciwKKyAgICAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2
YWx1YXRpbmcgJ3dhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gY29uc29sZS5sb2cnKSIKICAgKTsK
KworICBjb25zdCB3YXNtR2xvYmFsRXh0ZXJuID0gbmV3IFdlYkFzc2VtYmx5Lkdsb2JhbCh7dmFs
dWU6J2V4dGVybnJlZicsIG11dGFibGU6dHJ1ZX0pOworICBhc3NlcnQuZXEod2FzbUdsb2JhbEV4
dGVybi52YWx1ZSwgdW5kZWZpbmVkKTsKKyAgd2FzbUdsb2JhbEV4dGVybi52YWx1ZSA9IGNvbnNv
bGUubG9nOworICBhc3NlcnQuZXEod2FzbUdsb2JhbEV4dGVybi52YWx1ZSwgY29uc29sZS5sb2cp
OworCisgIHdhc21HbG9iYWxFeHRlcm4udmFsdWUgPSBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMu
ZjsKKyAgYXNzZXJ0LmVxKHdhc21HbG9iYWxFeHRlcm4udmFsdWUsIHByb3ZpZGVySW5zdGFuY2Uu
ZXhwb3J0cy5mKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdFJlZlR5cGVzSW5UYWJsZXMoKSB7
CisgIGNvbnN0IHByb3ZpZGVySW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50aWF0ZSgKKyAgICBgKG1v
ZHVsZQorICAgICAgICAoZnVuYyAoZXhwb3J0ICJmIikgKHBhcmFtIGY2NCkgKHJlc3VsdCBmNjQp
CisgICAgICAgICAgKGxvY2FsLmdldCAwKSkKKyAgICAgKWAsCisgICAge30sCisgICAgeyByZWZl
cmVuY2VfdHlwZXM6IHRydWUgfQorICApOworCisgIGNvbnN0IHdhc21UYWJsZUZ1bmNyZWYgPSBu
ZXcgV2ViQXNzZW1ibHkuVGFibGUoeyBpbml0aWFsOiAxLCBtYXhpbXVtOiAxLCBlbGVtZW50OiAi
ZnVuY3JlZiIgfSk7CisgIGFzc2VydC5lcSh3YXNtVGFibGVGdW5jcmVmLmdldCgwKSwgbnVsbCk7
CisgIHdhc21UYWJsZUZ1bmNyZWYuc2V0KDAsIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsK
KyAgYXNzZXJ0LmVxKHdhc21UYWJsZUZ1bmNyZWYuZ2V0KDApLCBwcm92aWRlckluc3RhbmNlLmV4
cG9ydHMuZik7CisKKyAgYXNzZXJ0LnRocm93cygKKyAgICAoKSA9PiB3YXNtVGFibGVGdW5jcmVm
LnNldCgwLCBjb25zb2xlLmxvZyksCisgICAgVHlwZUVycm9yLAorICAgICJXZWJBc3NlbWJseS5U
YWJsZS5wcm90b3R5cGUuc2V0IGV4cGVjdHMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBiZSBudWxs
IG9yIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5LkZ1bmN0aW9uIgorICApOworCisgIGNvbnN0
IHdhc21UYWJsZUV4dGVybnJlZiA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7IGluaXRpYWw6IDEs
IG1heGltdW06IDEsIGVsZW1lbnQ6ICJleHRlcm5yZWYiIH0pOworICBhc3NlcnQuZXEod2FzbVRh
YmxlRXh0ZXJucmVmLmdldCgwKSwgdW5kZWZpbmVkKTsKKyAgd2FzbVRhYmxlRXh0ZXJucmVmLnNl
dCgwLCBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZik7CisgIGFzc2VydC5lcSh3YXNtVGFibGVF
eHRlcm5yZWYuZ2V0KDApLCBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZik7CisKKyAgd2FzbVRh
YmxlRXh0ZXJucmVmLnNldCgwLCBjb25zb2xlLmxvZyk7CisgIGFzc2VydC5lcSh3YXNtVGFibGVF
eHRlcm5yZWYuZ2V0KDApLCBjb25zb2xlLmxvZyk7CiB9CiAKIGFzc2VydC5hc3luY1Rlc3QodGVz
dFJlZlR5cGVMb2NhbCgpKTsKQEAgLTMxNCwzICszODAsNSBAQCBhc3NlcnQuYXN5bmNUZXN0KHRl
c3RFeHRlcm5yZWZDb21wYXRpYmlsaXR5KCkpOwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Tm9uTnVs
bEV4dGVybnJlZkluY29tcGF0aWJsZSgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdEZ1bmNyZWZD
b21wYXRpYmlsaXR5KCkpOwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNv
bXBhdGlibGUoKSk7Cithc3NlcnQuYXN5bmNUZXN0KHRlc3RXYXNtSlNHbG9iYWxzKCkpOworYXNz
ZXJ0LmFzeW5jVGVzdCh0ZXN0UmVmVHlwZXNJblRhYmxlcygpKTsKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvd2FzbS93YXNtLmpzb24gYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCmluZGV4IDRmOGRkOWUz
ZDIxMzQzNTAwMDAwNmUyNDE0NmIwMTk0YzlhYzg4ZjEuLmM0Mzc3ZmExYzcxYmQ4NDA1MTQ3ZWQx
ZjY3MWZkMjVkOTA2N2E3YTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS93YXNtLmpzb24KKysr
IGIvSlNUZXN0cy93YXNtL3dhc20uanNvbgpAQCAtMTYsMTIgKzE2LDExIEBACiAgICAgICAgICJy
ZWZfbnVsbCI6ICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIwLCAiYjN0eXBlIjog
IkIzOjpJbnQ2NCIgfSwKICAgICAgICAgInJlZiI6ICAgICAgIHsgInR5cGUiOiAidmFyaW50NyIs
ICJ2YWx1ZSI6ICAtMjEsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6
ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zMiwgImIzdHlwZSI6ICJCMzo6
Vm9pZCIgfSwKLSAgICAgICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6ICAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ0eXBlX2lkeCI6ICB7
ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTI4LCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIg
fQorICAgICAgICAidm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02
NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfQogICAgIH0sCiAgICAgInZhbHVlX3R5cGUiOiBbImkz
MiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJdLAogICAgICJi
bG9ja190eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJleHRlcm5y
ZWYiLCAiZnVuY3JlZiJdLAotICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYi
LCAidHlwZV9pZHgiXSwKKyAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwg
InJlZiIsICJyZWZfbnVsbCJdLAogICAgICJleHRlcm5hbF9raW5kIjogewogICAgICAgICAiRnVu
Y3Rpb24iOiB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMCB9LAogICAgICAgICAiVGFibGUi
OiAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMSB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442301</attachid>
            <date>2021-10-24 03:55:59 -0700</date>
            <delta_ts>2021-10-25 03:27:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20211024175557.patch</filename>
            <type>text/plain</type>
            <size>84151</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGE2YmE5M2Q4OGQwYTgxN2IxNzljNmM5ZGRhOWNlMjI1NWNjY2E5Li5hMTAzMGY2NjJlZmJkNmI2
NDg3OGNkZjViODFmN2NhZGZmNzYwMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlZCByZWR1bmRhbmQgVHlwZUtpbmQ6OlR5cGVJ
ZHggYmVjYXVzZSBuZXcgUmVmIGFuZCBSZWZOdWxsIG9wY29kZXMgY292ZXIKKyAgICAgICAgdGhl
IHNhbWUgY2FzZXMuCisgICAgICAgIEFsc28gdXNlIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmL0V4dGVybnJlZiB3aGVuIHR5cGVkCisgICAgICAgIGZ1bmN0aW9uIHJlZmVy
ZW5jZXMgcHJvcG9zYWwgaXMgZW5hYmxlZC4KKyAgICAgICAgCisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdSZWYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAoSlNDOjpXYXNtOjpB
aXJJUkdlbmVyYXRvcjo6bW92ZU9wRm9yVmFsdWVUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZExvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFk
ZFJlZkZ1bmMpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6Z1R5cGVJZHgp
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAg
ICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzUmVmVHlwZSk6
CisgICAgICAgIChKU0M6Oldhc206OmlzRXh0ZXJucmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
aXNGdW5jcmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3JlZlR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpFeHRlcm5yZWZUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNTdWJ0eXBlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6aXNEZWZhdWx0YWJsZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJsZUlu
Zm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBh
cnNlRXhwcmVzc2lvbik6CisgICAgICAgICogd2FzbS9XYXNtR2xvYmFsLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6R2xvYmFsOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9i
YWw6OnNldCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBs
KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKToKKyAgICAgICAgKiB3
YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VjdGlvblBh
cnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpUYWJsZTo6d2FzbVR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwOgorICAgICAgICAoSlND
OjpKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5
cGUpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMTAtMjIgIEp1c3Rp
biBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBuaXRz
IGZyb20gMjMyMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAppbmRleCA2NDU3NGY3YWM5YjAwMGUxYmRiY2FlYTExYzkxNGIyM2IyMjgx
YzcyLi4zOThmNTViM2U3NTY1ZGIzNjI0NmY3ZTFlMjEzMTkzOWUwMTFhOTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTQw
MywxNSArNDAzLDE3IEBAIENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5
cGUgdHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgY2FzZSBUeXBlS2luZDo6RjY0
OgogICAgICAgICByZXR1cm4gdG9DU3RyaW5nKGJpdHdpc2VfY2FzdDxkb3VibGU+KGNvbnN0YW50
KSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0
YW50KSA9PSBqc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgIHJl
dHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkp
OwotICAgIGRlZmF1bHQ6CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoaXNGdW5jcmVmKHR5
cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKSB7CisgICAgICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVj
b2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gIm51bGwi
OworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2
b2lkKj4oY29uc3RhbnQpKSk7CisgICAgICAgIH0KKwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQorICAgIH0KIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHAKaW5kZXggNzkyODJiNzdlNzg2MTYxZDVkZjA4YTZkZjgxYTQyZmVl
MTE4MzlmYy4uZjIzYzE1MGZhNDk1ZmQ1MDI5MzRjYWEzMTZmYWE5NzE0MWJjZDk2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBA
IC00MzQsNyArNDM0LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlZFRtcCBnNjQoKSB7IHJldHVybiB7
IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6STY0IH07IH0KICAgICBUeXBlZFRtcCBnRXh0ZXJucmVm
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZXM6OkV4dGVybnJlZiB9OyB9CiAgICAg
VHlwZWRUbXAgZ0Z1bmNyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6RnVu
Y3JlZiB9OyB9Ci0gICAgVHlwZWRUbXAgZ1R5cGVJZHgoVHlwZSB0eXBlKSB7IHJldHVybiB7IG5l
d1RtcChCMzo6R1ApLCB0eXBlIH07IH0KKyAgICBUeXBlZFRtcCBnUmVmKFR5cGUgdHlwZSkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgdHlwZSB9OyB9CiAgICAgVHlwZWRUbXAgZjMyKCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkYzMiB9OyB9CiAgICAgVHlwZWRUbXAgZjY0
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkY2NCB9OyB9CiAKQEAgLTQ0Nyw4
ICs0NDcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGc2NCgpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgcmV0dXJuIGdGdW5jcmVmKCk7Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICByZXR1cm4gZ1R5cGVJ
ZHgodHlwZSk7CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKKyAgICAgICAgICAgIHJldHVybiBnUmVmKHR5cGUpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICByZXR1cm4gZ0V4dGVybnJlZigp
OwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC02MjUsNyArNjI2LDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0g
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmOgorICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAg
ICAgICAgICByZXN1bHRUeXBlID0gQjM6OkludDY0OwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNjc1LDcgKzY3Nyw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICByZXR1cm4gTW92ZTsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICAgICAgcmV0dXJuIE1vdmVGbG9hdDsKQEAg
LTkzMyw3ICs5MzYsOCBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9k
dWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZO
dWxsOgogICAgICAgICAgICAgYXBwZW5kKE1vdmUsIGFyZywgbV9sb2NhbHNbaV0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTEwMzYsNyArMTA0
MCw4IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMyX3Qg
Y291bnQpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
dW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAg
ICBhcHBlbmQoTW92ZSwgQXJnOjppbW0oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSksIGxvY2Fs
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CkBAIC0x
MDcyLDcgKzEwNzcsOCBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDb25zdGFudChCYXNpY0Js
b2NrKiBibG9jaywgVHlwZSB0eXBlLCB1aW50NjRfdCB2YWx1ZSkgLQogICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtp
bmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBhcHBlbmQoYmxv
Y2ssIE1vdmUsIEFyZzo6YmlnSW1tKHZhbHVlKSwgcmVzdWx0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTExOSw3ICsxMTI1LDcgQEAgYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkUmVmRnVuYyh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCkgLT4gUGFydGkKICAgICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUwNj4uCiAgICAgaWYgKE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICBTaWduYXR1
cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1faW5mby5zaWduYXR1cmVJbmRleEZyb21GdW5jdGlv
bkluZGV4U3BhY2UoaW5kZXgpOwotICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGUgeyBU
eXBlS2luZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9KTsKKyAgICAg
ICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlIHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5v
LCBzaWduYXR1cmVJbmRleCB9KTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0ID0gdG1wRm9y
VHlwZShUeXBlczo6RnVuY3JlZik7CiAgICAgZW1pdENDYWxsKCZvcGVyYXRpb25XYXNtUmVmRnVu
YywgcmVzdWx0LCBpbnN0YW5jZVZhbHVlKCksIGFkZENvbnN0YW50KFR5cGVzOjpJMzIsIGluZGV4
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0Nv
bnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5oCmluZGV4IDdiZjAwMWVkOTJlZmNiYWZjMGZiYzhhNTBiNGJmNjI3MjVkMmNjZTUuLjU5
MWVlYjI3YjAxNjkwMDdhZmExODNkNDMyNzI5ZmEwY2E1NmFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC0xMDcsNyAr
MTA3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVy
biBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0
YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGNjQ6CkBAIC0xOTYsNyArMTk3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOGNjZTM5NWQ4OTJjNWUzOWQ3M2UzMjM0MTg2NDM3NWVi
NDdhNzEwZi4uOWViMTc4NjkxNzA5OTE4YWM5MzY4YjE2MTliMzU4MWRhMzE4Y2MzMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzEsNyArNzEsOCBAQCBpbmxp
bmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJu
cmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIHJldHVybiBPcHRpb25zOjp1c2VXZWJB
c3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CkBAIC05NCwyMCArOTUsNjEgQEAgaW5saW5lIEpTU3RyaW5nKiB0eXBlVG9TdHJpbmco
Vk0mIHZtLCBUeXBlS2luZCB0eXBlKQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKK2lubGluZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCit7CisgICAgaWYgKE9wdGlv
bnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0
dXJuIHR5cGUuaXNSZWYoKSB8fCB0eXBlLmlzUmVmTnVsbCgpOworICAgIHJldHVybiB0eXBlLmlz
RnVuY3JlZigpIHx8IHR5cGUuaXNFeHRlcm5yZWYoKTsKK30KKworaW5saW5lIGJvb2wgaXNFeHRl
cm5yZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVk
RnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBpc1JlZlR5cGUodHlwZSkgJiYg
dHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oVHlwZUtpbmQ6OkV4dGVy
bnJlZik7CisgICAgcmV0dXJuIHR5cGUua2luZCA9PSBUeXBlS2luZDo6RXh0ZXJucmVmOworfQor
CitpbmxpbmUgYm9vbCBpc0Z1bmNyZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1
c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBp
c1JlZlR5cGUodHlwZSkgJiYgdHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRl
eD4oVHlwZUtpbmQ6OkZ1bmNyZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6
OkZ1bmNyZWY7Cit9CisKK2lubGluZSBUeXBlIGZ1bmNyZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0
aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICBy
ZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJs
ZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNtOjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6
OkZ1bmNyZWYpIH07CisgICAgcmV0dXJuIFR5cGVzOjpGdW5jcmVmOworfQorCitpbmxpbmUgVHlw
ZSBleHRlcm5yZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBl
ZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206
OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJsZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNt
OjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZikgfTsKKyAgICByZXR1
cm4gVHlwZXM6OkV4dGVybnJlZjsKK30KKworaW5saW5lIGJvb2wgaXNSZWZXaXRoVHlwZUluZGV4
KFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5j
dGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGlz
UmVmVHlwZSh0eXBlKSAmJiAhaXNFeHRlcm5yZWYodHlwZSkgJiYgIWlzRnVuY3JlZih0eXBlKTsK
K30KKwogaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKIHsKICAg
ICBpZiAoc3ViLmlzTnVsbGFibGUoKSAmJiAhcGFyZW50LmlzTnVsbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN1Yi5pc1R5cGVJZHgoKSAmJiBwYXJlbnQuaXNGdW5j
cmVmKCkpCisgICAgaWYgKChzdWIuaXNSZWYoKSB8fCBzdWIuaXNSZWZOdWxsKCkpICYmIGlzRnVu
Y3JlZihwYXJlbnQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBzdWIgPT0g
cGFyZW50OwotfQorICAgIGlmIChzdWIuaXNSZWYoKSAmJiBwYXJlbnQuaXNSZWZOdWxsKCkgJiYg
c3ViLmluZGV4ID09IHBhcmVudC5pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLWlubGlu
ZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUuaXNGdW5jcmVm
KCkgfHwgdHlwZS5pc0V4dGVybnJlZigpIHx8IHR5cGUuaXNUeXBlSWR4KCk7CisgICAgcmV0dXJu
IHN1YiA9PSBwYXJlbnQ7CiB9CiAKIGlubGluZSBib29sIGlzVmFsaWRIZWFwVHlwZUtpbmQoVHlw
ZUtpbmQga2luZCkKQEAgLTEyNCw3ICsxNjYsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5
cGVLaW5kKFR5cGVLaW5kIGtpbmQpCiAKIGlubGluZSBib29sIGlzRGVmYXVsdGFibGVUeXBlKFR5
cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gIWlzUmVmVHlwZSh0eXBlKSB8fCB0eXBlLmlzTnVsbGFi
bGUoKTsKKyAgICByZXR1cm4gIXR5cGUuaXNSZWYoKTsKIH0KIAogZW51bSBjbGFzcyBFeHRlcm5h
bEtpbmQgOiB1aW50OF90IHsKQEAgLTM0NSw3ICszODcsNyBAQCBwdWJsaWM6CiAgICAgdWludDMy
X3QgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX21heGltdW07IH0KICAgICBU
YWJsZUVsZW1lbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBUeXBl
IHdhc21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1
bmNyZWYgPyBUeXBlczo6RnVuY3JlZiA6IFR5cGVzOjpFeHRlcm5yZWY7IH0KKyAgICBUeXBlIHdh
c21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYgPyBmdW5jcmVmVHlwZSgpIDogZXh0ZXJucmVmVHlwZSgpOyB9CiAKIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9pbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25QYXJzZXIuaAppbmRleCBmYWQ3ZDc2OGViMTBmNmI1NDljN2M4OTE4YzE3NmRlNWYx
MmZkNjY3Li5mZWYyMThlODQyYTE5Y2U3MDEwNDYwMWRmNDliNDA1NWE0OWFjOGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMTEw
NSw3ICsxMTA1LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0Up
CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBt
X2luZm8uc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAg
ICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmNvbnN0cnVjdEFuZEFwcGVuZChUeXBlIHtUeXBlS2lu
ZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7IFR5cGVL
aW5kOjpSZWYsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfSwgcmVzdWx0KTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAKICAgICBjYXNlIENhbGxS
ZWY6IHsKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1i
bHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpLCAiZnVuY3Rpb24gcmVmZXJlbmNlcyBhcmUgbm90
IGVuYWJsZWQiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighbV9leHByZXNzaW9u
U3RhY2subGFzdCgpLnR5cGUoKS5pc1R5cGVJZHgoKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZh
bHVlICIsIG1fZXhwcmVzc2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CisgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzUmVmV2l0aFR5cGVJbmRleChtX2V4cHJlc3Npb25TdGFj
ay5sYXN0KCkudHlwZSgpKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZhbHVlICIsIG1fZXhwcmVz
c2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CiAKICAgICAgICAgY29uc3QgU2lnbmF0dXJl
SW5kZXggY2FsbGVlU2lnbmF0dXJlSW5kZXggPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlw
ZSgpLmluZGV4OwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIGNhbGxlZVNpZ25hdHVyZSA9IFNp
Z25hdHVyZUluZm9ybWF0aW9uOjpnZXQoY2FsbGVlU2lnbmF0dXJlSW5kZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcAppbmRleCA1OWRhOTc3YzNjYTZmYTRjYTM1
N2UwY2Y1ZGVhNGQ1NjZiYjBjOTRkLi41YThlNmRkMGM4ODZmM2ZjYzllYzU0OWVlZjJiY2ZhYjVi
MmYwMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFs
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcApAQCAt
NDgsNyArNDgsOCBAQCBKU1ZhbHVlIEdsb2JhbDo6Z2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CiAgICAgICAgIHJldHVybiBqc051bWJlcihwdXJpZnlOYU4oYml0d2lzZV9j
YXN0PGRvdWJsZT4obV92YWx1ZS5tX3ByaW1pdGl2ZSkpKTsKICAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5k
OjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpS
ZWZOdWxsOgogICAgICAgICByZXR1cm4gbV92YWx1ZS5tX2V4dGVybnJlZi5nZXQoKTsKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTg1LDU3ICs4Niw1OCBA
QCB2b2lkIEdsb2JhbDo6c2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
YXJndW1lbnQpCiAgICAgICAgIG1fdmFsdWUubV9wcmltaXRpdmUgPSBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3Q+KHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgVHlwZUtpbmQ6
OkV4dGVybnJlZjogewotICAgICAgICBSRUxFQVNFX0FTU0VSVChtX293bmVyKTsKLSAgICAgICAg
aWYgKCFtX3R5cGUuaXNOdWxsYWJsZSgpICYmIGFyZ3VtZW50LmlzTnVsbCgpKSB7Ci0gICAgICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJl
ZiBjYW5ub3QgYmUgbnVsbCIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1
bWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4
OgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
bV9vd25lcik7Ci0gICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9IG1fdHlwZS5pc051bGxhYmxlKCk7
Ci0gICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1
bWVudCwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUg
fHwgIWFyZ3VtZW50LmlzTnVsbCgpKSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGds
b2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlv
biIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAobV90eXBl
LmtpbmQgPT0gVHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBl
ckZ1bmN0aW9uKSkgewotICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IG1fdHlwZS5pbmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0lu
ZGV4OwotICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAgICBhcmdJ
bmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVy
ZUluZGV4KCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkgewotICAg
ICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3Jl
YXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQg
ZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgZGVmYXVs
dDogeworICAgICAgICBpZiAoaXNFeHRlcm5yZWYobV90eXBlKSkgeworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQobV9vd25lcik7CisgICAgICAgICAgICBpZiAoIW1fdHlwZS5pc051bGxhYmxl
KCkgJiYgYXJndW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIp
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBt
X3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVudCk7
CisgICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jcmVmKG1fdHlwZSkpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKG1fb3duZXIpOworICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gbV90
eXBlLmlzTnVsbGFibGUoKTsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21G
dW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
biogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIWlzV2Vi
QXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIGFyZ3VtZW50LCB3YXNtRnVuY3Rpb24sIHdhc21XcmFw
cGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhYXJndW1lbnQuaXNOdWxsKCkpKSB7Cisg
ICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBj
cmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJGdW5jcmVm
IG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNl
dChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZSBpZiAo
aXNSZWZXaXRoVHlwZUluZGV4KG1fdHlwZSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KG1fb3duZXIpOworICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gbV90eXBlLmlzTnVsbGFi
bGUoKTsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51
bGxwdHI7CisgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBw
ZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0
RnVuY3Rpb24odm0sIGFyZ3VtZW50LCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24p
ICYmICghaXNOdWxsYWJsZSB8fCAhYXJndW1lbnQuaXNOdWxsKCkpKSB7CisgICAgICAgICAgICAg
ICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJSZWZ8UmVmTnVsbCBtdXN0IGJl
IGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFw
cGVyRnVuY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJh
bUluZGV4ID0gbV90eXBlLmluZGV4OworICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUlu
ZGV4IGFyZ0luZGV4OworICAgICAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCisgICAgICAg
ICAgICAgICAgICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNt
V3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgIGlmIChw
YXJhbUluZGV4ICE9IGFyZ0luZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0
aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3ZhbHVlLm1fZXh0ZXJu
cmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVudCk7CiAgICAgICAgIH0KLSAg
ICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwgYXJn
dW1lbnQpOwotICAgICAgICBicmVhazsKICAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9yPgogdm9pZCBHbG9iYWw6
OnZpc2l0QWdncmVnYXRlSW1wbChWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIHN3aXRjaCAobV90
eXBlLmtpbmQpIHsKLSAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgY2FzZSBUeXBl
S2luZDo6RnVuY3JlZjogeworICAgIGlmIChpc0Z1bmNyZWYobV90eXBlKSB8fCBpc0V4dGVybnJl
ZihtX3R5cGUpKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOwogICAgICAgICB2
aXNpdG9yLmFwcGVuZChtX3ZhbHVlLm1fZXh0ZXJucmVmKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggNGM5YTlk
MTFlNDE4MmE1NDcyNWYzNWUxZTdlMzY3OWJkMjAwNWZiYi4uOGVkMjMwOTNmNzEzZTFmNDIyOWVi
M2YxZmM3NDVkNTQxYmZmYjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC02MDksNyArNjA5LDggQEAgYXV0byBMTEludEdl
bmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0
dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51
bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRl
eCA8IGdwckNvdW50KQogICAgICAgICAgICAgICAgICsrZ3BySW5kZXg7CiAgICAgICAgICAgICBl
bHNlIGlmIChzdGFja0luZGV4KysgPj0gc3RhY2tDb3VudCkKQEAgLTYyNCw4ICs2MjUsNiBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0
dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9OwpA
QCAtNjY3LDcgKzY2Niw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZv
ckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4
OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAgICBjYXNlIFR5cGVLaW5k
OjpSZWY6CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPiBncHJMaW1pdCkKICAgICAgICAgICAg
ICAgICBhcmd1bWVudHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgtLWdwckluZGV4KTsK
ICAgICAgICAgICAgIGVsc2UKQEAgLTY4Miw4ICs2ODIsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9y
OjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+
IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51
bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC02OTcsNyArNjk1LDggQEAg
YXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25h
dHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1
bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAg
IGlmIChncHJJbmRleCA+IGdwckxpbWl0KQogICAgICAgICAgICAgICAgIHRlbXBvcmFyeVJlc3Vs
dHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgtLWdwckluZGV4KTsKICAgICAgICAgICAg
IGVsc2UKQEAgLTcxMiw4ICs3MTEsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3Jt
YXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NTUsNyArNzUyLDggQEAgYXV0byBMTEludEdl
bmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0
dXJlKSAtPiBWZWMKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51
bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRl
eCA8IG1heEdQUkluZGV4KQogICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQodmlydHVh
bFJlZ2lzdGVyRm9yTG9jYWwobnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMgKyBncHJJ
bmRleCsrKSk7CiAgICAgICAgICAgICBlbHNlCkBAIC03NzAsOCArNzY4LDYgQEAgYXV0byBMTElu
dEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0IFNpZ25hdHVyZSYgc2ln
bmF0dXJlKSAtPiBWZWMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5k
OjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtODEyLDcg
KzgwOCw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyhjb25zdCBTaWduYXR1
cmUmIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJ
NjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAg
ICAgICAgICAgYWRkQXJndW1lbnQoaSwgZ3BySW5kZXgsIG1heEdQUkluZGV4KTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC04MjEsOCArODE4LDYg
QEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNvbnN0IFNpZ25hdHVyZSYgc2ln
bmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuYzoKLSAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogICAgIH0K
QEAgLTgzNywxNiArODMyLDExIEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZExvY2FsKFR5cGUg
dHlwZSwgdWludDMyX3QgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQKICAgICBjaGVja0NvbnNpc3Rl
bmN5KCk7CiAKICAgICBtX2NvZGVCbG9jay0+bV9udW1WYXJzICs9IGNvdW50OwotICAgIHN3aXRj
aCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgIGNhc2Ug
VHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJl
Zih0eXBlKSkgewogICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAgIG1fdW5pdGlh
bGl6ZWRMb2NhbHMuYXBwZW5kKHB1c2goTm9Db25zaXN0ZW5jeUNoZWNrKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6CisgICAgfSBlbHNlCiAgICAgICAgIG1fc3RhY2tTaXplICs9IGNv
dW50OwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCmluZGV4IDczNWIzMDM1
ZTExMGIzODIxNGU1ZmNjZTIyMDljMDVhZmRjMWVjNmYuLjNiMDJlYmYwOTI1ODczZTRiZmY3NjM3
MzlkMmIwMTg1NzhlMDJiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
T3BlcmF0aW9ucy5jcHAKQEAgLTU0Myw3ICs1NDMsOCBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SQogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gYnVmZmVyLmF0KGluZGV4KTsKIAogICAgICAgICB1
aW50NjRfdCB1bmJveGVkVmFsdWUgPSAwOwotICAgICAgICBzd2l0Y2ggKHNpZ25hdHVyZS0+cmV0
dXJuVHlwZShpbmRleCkua2luZCkgeworICAgICAgICBjb25zdCBhdXRvJiByZXR1cm5UeXBlID0g
c2lnbmF0dXJlLT5yZXR1cm5UeXBlKGluZGV4KTsKKyAgICAgICAgc3dpdGNoIChyZXR1cm5UeXBl
LmtpbmQpIHsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgdW5ib3hl
ZFZhbHVlID0gdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC01NTYsMTcgKzU1NywxNiBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nh
c3Q8dWludDY0X3Q+KHZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgICAgICBpZiAo
IXZhbHVlLmlzQ2FsbGFibGUodm0pKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgIkZ1bmNyZWYgdmFsdWUgaXMgbm90IGEgZnVuY3Rpb24iX3Mp
OwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEZB
TExUSFJPVUdIOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgICAg
ICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgaWYgKGlzRnVu
Y3JlZihyZXR1cm5UeXBlKSB8fCBpc0V4dGVybnJlZihyZXR1cm5UeXBlKSkgeworICAgICAgICAg
ICAgICAgIGlmIChpc0Z1bmNyZWYocmV0dXJuVHlwZSkgJiYgIXZhbHVlLmlzQ2FsbGFibGUodm0p
KSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJGdW5jcmVmIHZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uIl9zKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1bmJveGVk
VmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKaW5kZXggNjNkODlkNjFk
NDM1MzBhMjZmYjU0MTVlMjcwMWNjMzBhNzNhMzI4NC4uOGVjZDI1MTBjY2IyZmJkMzZjODVhZjU1
NDNlMzcxMDc0ZDk0YzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIu
aApAQCAtMzA1LDcgKzMwNSwxMSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NU
eXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mCiAgICAgVHlwZUtp
bmQgdHlwZUtpbmQgPSBzdGF0aWNfY2FzdDxUeXBlS2luZD4oa2luZCk7CiAgICAgYm9vbCBpc051
bGxhYmxlID0gdHJ1ZTsKICAgICBTaWduYXR1cmVJbmRleCBzaWdJbmRleCA9IDA7Ci0gICAgaWYg
KHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWYgfHwgdHlwZUtpbmQgPT0gVHlwZUtpbmQ6OlJlZk51
bGwpIHsKKworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZl
cmVuY2VzKCkgJiYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpGdW5jcmVmIHx8IHR5cGVLaW5kID09
IFR5cGVLaW5kOjpFeHRlcm5yZWYpKSB7CisgICAgICAgIHNpZ0luZGV4ID0gc3RhdGljX2Nhc3Q8
U2lnbmF0dXJlSW5kZXg+KHR5cGVLaW5kKTsKKyAgICAgICAgdHlwZUtpbmQgPSBUeXBlS2luZDo6
UmVmTnVsbDsKKyAgICB9IGVsc2UgaWYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWYgfHwgdHlw
ZUtpbmQgPT0gVHlwZUtpbmQ6OlJlZk51bGwpIHsKICAgICAgICAgaWYgKCFPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTMxOCw5ICszMjIsOCBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2VyPFN1
Y2Nlc3NUeXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mCiAgICAg
ICAgICAgICBUeXBlS2luZCBoZWFwS2luZCA9IHN0YXRpY19jYXN0PFR5cGVLaW5kPihoZWFwVHlw
ZSk7CiAgICAgICAgICAgICBpZiAoIWlzVmFsaWRIZWFwVHlwZUtpbmQoaGVhcEtpbmQpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHR5cGVLaW5kID0gaGVhcEtp
bmQ7CisgICAgICAgICAgICBzaWdJbmRleCA9IHN0YXRpY19jYXN0PFNpZ25hdHVyZUluZGV4Piho
ZWFwS2luZCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0eXBlS2luZCA9IFR5cGVL
aW5kOjpUeXBlSWR4OwogICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4oaGVhcFR5
cGUpID49IGluZm8udXNlZFNpZ25hdHVyZXMuc2l6ZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIHNpZ0luZGV4ID0gU2lnbmF0dXJlSW5mb3JtYXRpb246Omdl
dChpbmZvLnVzZWRTaWduYXR1cmVzW2hlYXBUeXBlXS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKaW5kZXggY2ZkYWZmZGQ3YTQy
Y2M4MWU1YmEzYTYxZTRiYWU4ZWY1ZWNiZDNiYS4uZmVjYzBlNjc1ZTk5ZTljNjkzZjk2MDgzOGJh
ZmRhYTJlMDRhM2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21T
ZWN0aW9uUGFyc2VyLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIGF1dG8gU2VjdGlvblBhcnNlcjo6
cGFyc2VJbml0RXhwcih1aW50OF90JiBvcGNvZGUsIHVpbnQ2NF90JiBiaXRzT3JJbXBvcnROdW1i
ZXIsCiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJl
ZmVyZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXgg
PSBtX2luZm8tPnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShpbmRleCk7Ci0g
ICAgICAgICAgICByZXN1bHRUeXBlID0geyBUeXBlS2luZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5v
LCBzaWduYXR1cmVJbmRleCB9OworICAgICAgICAgICAgcmVzdWx0VHlwZSA9IHsgVHlwZUtpbmQ6
OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9OwogICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgIHJlc3VsdFR5cGUgPSBUeXBlczo6RnVuY3JlZjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKaW5kZXggZTRmOTNiMTM0NzdhM2E1ZmIxNGI3MWQ3ZGQz
ZWEzY2M0MjMzMjJjNi4uYzM2NzVjODI0M2Q3ODk5MzQwYTI2YjFmMDA0MDk4MTM5Y2M3MjUyNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUuY3BwCkBAIC0xNzksOSArMTc5
LDkgQEAgREVGSU5FX1ZJU0lUX0FHR1JFR0FURShUYWJsZSk7CiBUeXBlIFRhYmxlOjp3YXNtVHlw
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRXh0ZXJucmVmVGFibGUoKSkKLSAgICAgICAgcmV0dXJu
IFR5cGVzOjpFeHRlcm5yZWY7CisgICAgICAgIHJldHVybiBleHRlcm5yZWZUeXBlKCk7CiAgICAg
QVNTRVJUKGlzRnVuY3JlZlRhYmxlKCkpOwotICAgIHJldHVybiBUeXBlczo6RnVuY3JlZjsKKyAg
ICByZXR1cm4gZnVuY3JlZlR5cGUoKTsKIH0KIAogRnVuY1JlZlRhYmxlKiBUYWJsZTo6YXNGdW5j
cmVmVGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNU
b1dhc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCmlu
ZGV4IDcyYmE4NzQzODlhYTNhZTY5ODc2NTRjMmIzNDY2ZDE1OGJmOGE3ZmEuLmQxNTVkOGEzNGJm
MWIzNTZjODcwZjBiNmZlOTkxMjJlZjE1ZjY5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTQ1LDEwICs0NSw2IEBAIHZvaWQgbWFyc2hhbGxKU1Jl
c3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNvbnN0
IENhbGxJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgICAgICBqaXQubW92
ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
RnVuY3JlZjoKLSAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIoKSwgZHN0LnBheWxvYWRHUFIo
KSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgogICAg
ICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BS
KCkpOwogICAgICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXlsb2FkR1BSKCksIGRzdCwgRG9O
b3RIYXZlVGFnUmVnaXN0ZXJzKTsKQEAgLTYzLDkgKzU5LDEyIEBAIHZvaWQgbWFyc2hhbGxKU1Jl
c3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIGNvbnN0
IENhbGxJCiAgICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGppdC5icmVha3BvaW50
KCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAg
aWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkKKyAgICAgICAgICAgICAg
ICBqaXQubW92ZShzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7CisgICAgICAgIH0KICAgICAgICAg
fQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHlHbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUdsb2JhbC5jcHAKaW5kZXggOWM1ZjE4YTY4Mzk2ODk1MmQwNDQ4ZjRkMjgwYjg3
ZjYzZjFiYzJjYS4uNTcxZTA1YWFjZmY2MzE2ZDFkY2U1YzY4YzMzNWY3Y2MxYmIyMzM0NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2Jh
bC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUds
b2JhbC5jcHAKQEAgLTEwNSwxNCArMTA1LDE0IEBAIEpTT2JqZWN0KiBKU1dlYkFzc2VtYmx5R2xv
YmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgY2FzZSBXYXNtOjpU
eXBlS2luZDo6RjY0OgogICAgICAgICB2YWx1ZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmluZyh2
bSwgImY2NCIpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRl
cm5yZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZXh0
ZXJucmVmIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmNy
ZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZnVuY3Jl
ZiIpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgaWYgKFdhc206OmlzRnVu
Y3JlZih2YWx1ZVR5cGUpKQorICAgICAgICAgICAgdmFsdWVTdHJpbmcgPSBqc05vbnRyaXZpYWxT
dHJpbmcodm0sICJmdW5jcmVmIik7CisgICAgICAgIGVsc2UgaWYgKFdhc206OmlzRXh0ZXJucmVm
KHZhbHVlVHlwZSkpCisgICAgICAgICAgICB2YWx1ZVN0cmluZyA9IGpzTm9udHJpdmlhbFN0cmlu
Zyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICB9CiAgICAgcmVzdWx0LT5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSIpLCB2YWx1ZVN0cmluZyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlI
ZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVs
cGVycy5oCmluZGV4IGI2MjBlZGNhMjhhOWUyNDI5ZjEyMGNlMTk2N2EzYjBjMTEyMTM1NzEuLmE0
NzU4YzBhYWIyM2NjYWE3YjM3ZDk4ZjUzNWFiZTQzZTA0MjBhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaApAQCAtMTM5
LDkgKzEzOSw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9u
KFZNJiB2bSwgSlNWYWx1ZSBvYmplY3QpCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgZGVmYXVsdFZh
bHVlRm9yUmVmZXJlbmNlVHlwZShjb25zdCBXYXNtOjpUeXBlIHR5cGUpCiB7CiAgICAgQVNTRVJU
KFdhc206OmlzUmVmVHlwZSh0eXBlKSk7Ci0gICAgaWYgKHR5cGUuaXNFeHRlcm5yZWYoKSkKKyAg
ICBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIEFTU0VSVCh0eXBlLmlzRnVuY3JlZigpKTsKKyAgICBBU1NFUlQoV2FzbTo6aXNG
dW5jcmVmKHR5cGUpKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9CiAKQEAgLTE3MywyOSArMTcz
LDYgQEAgQUxXQVlTX0lOTElORSB1aW50NjRfdCBmcm9tSlNWYWx1ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBjb25zdCBXYXNtOjpUeXAKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHN3
aXRjaCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeDoKLSAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAgICAgIGJvb2wgaXNOdWxsYWJs
ZSA9IHR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNt
RnVuY3Rpb24gPSBudWxscHRyOwotICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiog
d2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIGlmICghaXNXZWJBc3NlbWJs
eUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlv
bikgJiYgKCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkpCi0gICAgICAgICAgICByZXR1
cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2Vt
Ymx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhw
b3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKLSAgICAgICAgaWYgKHR5cGUua2luZCA9PSBXYXNtOjpU
eXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24p
KSB7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gdHlwZS5p
bmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwotICAgICAg
ICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21G
dW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7Ci0g
ICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJBcmd1bWVudCBmdW5jdGlvbiBk
aWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKTsKLSAgICAgICAgfQotICAgICAgICBi
cmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAg
ICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpICYmIHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAg
cmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiTm9uLW51bGwgRXh0ZXJucmVm
IGNhbm5vdCBiZSBudWxsIikpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJMzI6CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdmFsdWUudG9JbnQz
MihnbG9iYWxPYmplY3QpKTsKICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CkBAIC0yMDQs
MTMgKzE4MSwzMiBAQCBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IGZyb21KU1ZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFdhc206OlR5cAogICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50MzJfdD4odmFsdWUudG9GbG9hdChnbG9i
YWxPYmplY3QpKSk7CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0OgogICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50NjRfdD4odmFsdWUudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KSkpOwotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlZvaWQ6Ci0gICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuYzoKLSAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZO
dWxsOgotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKLSAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIGlmIChXYXNtOjppc0V4
dGVybnJlZih0eXBlKSkgeworICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSAmJiB2
YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2Jh
bE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSk7CisgICAg
ICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKHR5cGUpKSB7CisgICAgICAgICAgICBib29s
IGlzTnVsbGFibGUgPSB0eXBlLmlzTnVsbGFibGUoKTsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5
RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAg
ICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rp
b24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxs
KCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2
bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOworICAgICAg
ICB9IGVsc2UgaWYgKGlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgeworICAgICAgICAgICAgYm9v
bCBpc051bGxhYmxlID0gdHlwZS5pc051bGxhYmxlKCk7CisgICAgICAgICAgICBXZWJBc3NlbWJs
eUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOworICAgICAgICAgICAgV2ViQXNzZW1i
bHlXcmFwcGVyRnVuY3Rpb24qIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBudWxscHRyOworICAgICAg
ICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCB2YWx1ZSwgd2FzbUZ1bmN0
aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUgfHwgIXZhbHVlLmlzTnVs
bCgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwg
dm0sICJSZWZ8UmVmTnVsbCBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSk7Cisg
ICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24pIHsKKyAg
ICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gdHlwZS5pbmRl
eDsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleCA9IHdhc21G
dW5jdGlvbiA/IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKSA6IHdhc21XcmFwcGVyRnVu
Y3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXgg
IT0gYXJnSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xv
YmFsT2JqZWN0LCB2bSwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVy
ZW5jZSB0eXBlIikpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIH0KLQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCBkNjVmYzYxMjFiNjA5
MGJkN2YyZDQwZDAzYmI0NWVlN2FhNjQwMjM0Li41ODEwNDFiM2NhMzQzM2M3YWZhYmYxYmUzNDY3
NWRhYjdkNGE0ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
YXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2FzbVRvSlMu
Y3BwCkBAIC0xMDcsNyArMTA3LDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdh
c21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpS
ZWY6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gSGFu
ZGxlZCBhYm92ZS4KLSAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CiAgICAgICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAtMTgyLDcgKzE4
MSw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBC
aW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5k
OjpSZWZOdWxsOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEhhbmRsZWQgYWJvdmUuCi0gICAg
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTI3OSwxNCArMjc3LDggQEAgRXhwZWN0ZWQ8
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3
YXNtVG9KUyhWTSYgdm0KICAgICBhdXRvIGRvbmVMb2NhdGlvbiA9IGppdC5sYWJlbCgpOwogCiAg
ICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpID09IDEpIHsKLSAgICAgICAgc3dpdGNoIChz
aWduYXR1cmUucmV0dXJuVHlwZSgwKS5raW5kKSB7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZv
aWQ6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKLSAgICAgICAgICAgIC8vIEZv
ciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBlcyBpbiB0
aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxpZGF0aW9u
IGVycm9yLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjb25zdCBhdXRvJiByZXR1cm5UeXBlID0gc2lnbmF0dXJl
LnJldHVyblR5cGUoMCk7CisgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZS5raW5kKSB7CiAgICAg
ICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgLy8gRklYTUU6IE9wdGltaXpl
IEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1MwpAQCAtMzI0LDExICszMTYsNiBAQCBF
eHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0Zh
aWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3Jl
ZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICBjYXNlIFR5cGVL
aW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKLSAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJbmZvLnJl
c3VsdHNbMF0uZnByKCk7CkBAIC0zOTAsNiArMzc3LDEzIEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQorICAgICAgICBkZWZhdWx0OiAgeworICAgICAgICAgICAgaWYgKFdhc206OmlzRnVu
Y3JlZihyZXR1cm5UeXBlKSB8fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkKKyAgICAg
ICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNhbGxJbmZv
LnJlc3VsdHNbMF0uZ3ByKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIC8v
IEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBlcyBp
biB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxpZGF0
aW9uIGVycm9yLgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoc2lnbmF0dXJlLnJldHVybkNv
dW50KCkgPiAxKSB7CiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BSID0gUGlu
bmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5j
cHAKaW5kZXggMTk3MThkY2U2OTk2OTAwMWVlMTJkNjQ0Zjg2MjQ1ZTAxNzM2NWIwOC4uYWEyMmEz
ZDMxNjRmMWNjOGRmNmMwYmEzNjNhYTZmYWY1MDhhYWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTI1Mywz
NyArMjUzLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBXZWJBc3Nl
bWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICAgICAgaml0
Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1zW2ldLmdw
cigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6
IHsKLSAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlv
bi4KLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0gICAgICAg
ICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7Ci0gICAgICAg
ICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFw
cGVuZChpc051bGwpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5v
dENlbGwoc2NyYXRjaEdQUikpOworICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWY6Cisg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJl
ZjogeworICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgeworICAgICAg
ICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlvbi4KKyAg
ICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAgICAgICAg
ICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BSKTsKKyAgICAg
ICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQorICAgICAgICAgICAgICAgICAgICBz
bG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5hcHBlbmQo
aml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgICAgIHN0YWNrTGlt
aXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBqaXQuZW1pdExvYWRTdHJ1Y3R1
cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHN0YWNrTGltaXRHUFIpOwotICAgICAgICAg
ICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFN0cnVjdHVy
ZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBzdGFj
a0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGppdC5lbWl0TG9h
ZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUiwgc3RhY2tMaW1pdEdQUik7Cisg
ICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hH
UFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKIAotICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5RnVuY3Rpb24+Ojp2
YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMgYmVsb3ciKTsKLSAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbj46
OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOworICAgICAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0aW9uPjo6
dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CisgICAgICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0
aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CiAKLSAg
ICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVy
czo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3Nl
bWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQu
YnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygpKSkpOwor
ICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihX
ZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246Omlu
Zm8oKSkpKTsKIAotICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsKLSAgICAg
ICAgICAgIGlmICh0eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHgpIHsKLSAgICAg
ICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAg
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBXZWJBc3Nl
bWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRjaEdQUik7
Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxw
ZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHR5
cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsK
KyAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7CisgICAg
ICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNo
R1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwg
c2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJh
bmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKKyAgICAgICAgICAgICAgICAgICAgaXNO
dWxsLmxpbmsoJmppdCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh0eXBlLmlz
TnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICBpc051bGwubGluaygmaml0KTsKLSAgICAgICAg
ICAgIEZBTExUSFJPVUdIOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKICAgICAgICAgICAgICAg
ICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIGlmICgh
dHlwZS5pc051bGxhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IDhmNjVh
ZWQ5ZmQxYWJkNzk3ZTRhNjdjODhlZjYxZThhYTcxNDE5NzkuLjEwMDA1NmRlNjE1MGI5YzE4N2Ix
MWMwNzllYjhkMWRiYWU3MDBhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC05
NSw5ICs5NSw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2Vt
Ymx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgICAgIGVsc2UgaWYgKHZh
bHVlU3RyaW5nID09ICJmNjQiX3MpCiAgICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlwZXM6OkY2
NDsKICAgICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImFueWZ1bmMiX3MgfHwgdmFsdWVT
dHJpbmcgPT0gImZ1bmNyZWYiX3MpCi0gICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlwZXM6OkZ1
bmNyZWY7CisgICAgICAgICAgICB0eXBlID0gV2FzbTo6ZnVuY3JlZlR5cGUoKTsKICAgICAgICAg
ZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImV4dGVybnJlZiJfcykKLSAgICAgICAgICAgIHR5cGUg
PSBXYXNtOjpUeXBlczo6RXh0ZXJucmVmOworICAgICAgICAgICAgdHlwZSA9IFdhc206OmV4dGVy
bnJlZlR5cGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsICJXZWJBc3NlbWJseS5HbG9iYWwgZXhwZWN0cyBpdHMgJ3ZhbHVl
JyBmaWVsZCB0byBiZSB0aGUgc3RyaW5nICdpMzInLCAnaTY0JywgJ2YzMicsICdmNjQnLCAnYW55
ZnVuYycsICdmdW5jcmVmJywgb3IgJ2V4dGVybnJlZiciX3MpKSk7CiAgICAgfQpAQCAtMTM3LDI0
ICsxMzcsMjIgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1i
bHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjogewotICAgICAg
ICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVm
YXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKLSAgICAgICAgaWYgKCFpc1dlYkFzc2Vt
Ymx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1bWVudCkgJiYgIWFyZ3VtZW50LmlzTnVsbCgpKSB7Ci0g
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0
ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVz
dCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICAgICAgfQotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJn
dW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RXh0ZXJucmVmOiB7Ci0gICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQotICAgICAg
ICAgICAgYXJndW1lbnQgPSBkZWZhdWx0VmFsdWVGb3JSZWZlcmVuY2VUeXBlKHR5cGUpOwotICAg
ICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQpOwotICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYodHlwZSkp
IHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAg
ICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAgICAg
ICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJndW1lbnQpICYmICFh
cmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9i
YWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24i
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGluaXRpYWxWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAgICAgIH0g
ZWxzZSBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1
bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZh
bHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAgICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpT
VmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICBSZWY8V2FzbTo6R2xv
YmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlwZSwgbXV0YWJpbGl0eSwg
aW5pdGlhbFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBkZWNhYTk4MmY3ZGYyYWJkMDg2
NTRhYTNmMjRmNDE4NzMyMThhNWYyLi41MzU1ODgyYWU0NmI0OGNjOGU3ZjNlOWU1ZGU5MTZlZTAy
NWQxMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0yNTcsMzggKzI1Nyw4IEBAIHZvaWQgV2Vi
QXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9u
KGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFp
bE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm11c3QgYmUgYSBzYW1lIHR5cGUi
KSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVmFsdWUtPmdsb2JhbCgpLT5tdXRh
YmlsaXR5KCkgIT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkltbXV0YWJsZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtF
cnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRl
ZCBnbG9iYWwiLCAibXVzdCBiZSBhIHNhbWUgbXV0YWJpbGl0eSIpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCAobW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBvcnQua2luZEluZGV4
XS50eXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
VHlwZUlkeDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3Jl
ZjogewotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gZ2xvYmFsLnR5
cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5j
dGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIFdl
YkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2xvYmFsVmFsdWUtPmdsb2JhbCgpLT5n
ZXQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2Vi
QXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVy
RnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gaXNOdWxsYWJsZSA/ICJtdXN0
IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEgd2FzbSBl
eHBvcnRlZCBmdW5jdGlvbiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4
Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGlt
cG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWwu
dHlwZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwg
d2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNt
OjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUuaW5kZXg7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUlu
ZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJn
SW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24o
Y3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWls
TWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlk
IG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRH
bG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgY2FzZSBX
YXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUg
PSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxPYmplY3QpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsLnR5cGUuaXNOdWxsYWJsZSgpICYmIHZhbHVlLmlz
TnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3Jl
YXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVz
c2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibm9uLW51bGwgZXh0ZXJucmVmIGNhbm5v
dCBiZSBudWxsIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3Rh
bmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBkZWNsYXJl
ZEdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhd
LnR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVjbGFyZWRHbG9iYWxUeXBlLmtp
bmQpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMyOgogICAg
ICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CiAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoKQEAgLTI5Niw3ICsyNjYsNDYgQEAgdm9p
ZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2Ut
Pmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGdsb2JhbFZhbHVlLT5nbG9i
YWwoKS0+Z2V0UHJpbWl0aXZlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFdh
c206OmlzRXh0ZXJucmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVj
dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbC50eXBl
LmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGds
b2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2Jh
bCIsICJub24tbnVsbCBleHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5r
aW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoV2Fz
bTo6aXNGdW5jcmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGlzTnVsbGFibGUgPSBnbG9iYWwudHlwZS5pc051bGxhYmxlKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9u
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBw
ZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxP
YmplY3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dlYkFz
c2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCB2YWx1ZSwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1
bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUgfHwgIXZhbHVlLmlzTnVsbCgpKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11
c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNt
IGV4cG9ydGVkIGZ1bmN0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwg
dm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFs
dWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChXYXNtOjppc1JlZldpdGhU
eXBlSW5kZXgoZGVjbGFyZWRHbG9iYWxUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgaXNOdWxsYWJsZSA9IGdsb2JhbC50eXBlLmlzTnVsbGFibGUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBu
dWxscHRyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1
bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVj
dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1i
bHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rp
b24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1zZyA9IGlzTnVsbGFibGUgPyAibXVzdCBi
ZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24gb3IgbnVsbCIgOiAibXVzdCBiZSBhIHdhc20gZXhw
b3J0ZWQgZnVuY3Rpb24iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
aW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRleCA9IGdsb2Jh
bC50eXBlLmluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWdu
YXR1cmVJbmRleCBhcmdJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHdhc21GdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ0lu
ZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdl
KGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1h
dGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0
R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvIGdsb2JhbFR5cGUgPSBtb2R1bGVJbmZv
cm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGU7CkBAIC0zMTMsMzMgKzMyMiw2
IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhw
b3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKICAgICAgICAgICAgICAgICAgICAgLy8gaWlp
LiBBcHBlbmQgVG9XZWJBc3NlbWJseVZhbHVlKHYpIHRvIGltcG9ydHMuCiAgICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCAoZ2xvYmFsVHlwZS5raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNO
dWxsYWJsZSA9IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1
bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXZWJBc3Nl
bWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5j
dGlvbikgJiYgKCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11c3QgYmUg
YSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9y
dGVkIGZ1bmN0aW9uIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0
aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0
RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbFR5cGUu
a2luZCA9PSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21X
cmFwcGVyRnVuY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2ln
bmF0dXJlSW5kZXggcGFyYW1JbmRleCA9IGdsb2JhbC50eXBlLmluZGV4OwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0
ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3Nh
Z2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3Qg
bWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFs
KGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFs
VHlwZS5pc051bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGds
b2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2Jh
bCIsICJtdXN0IGJlIGEgbm9uLW51bGwgdmFsdWUiKSkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgbV9pbnN0YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFs
dWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5z
dGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlLnRvSW50
MzIoZ2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1
Niw3ICszMzgsNDAgQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUlt
cG9ydHNBbmRFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgs
IGJpdHdpc2VfY2FzdDx1aW50NjRfdD4odmFsdWUuYXNOdW1iZXIoKSkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFdhc206OmlzRXh0ZXJucmVmKGdsb2JhbFR5cGUpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSAmJiB2
YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4
Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGlt
cG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbm9u
LW51bGwgdmFsdWUiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2Ut
Pmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKGdsb2JhbFR5cGUpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gZ2xvYmFsVHlw
ZS5pc051bGxhYmxlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlG
dW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51
bGxwdHI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9z
dEZ1bmN0aW9uKHZtLCB2YWx1ZSwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAm
JiAoIWlzTnVsbGFibGUgfHwgIXZhbHVlLmlzTnVsbCgpKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11c3QgYmUgYSB3
YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVk
IGZ1bmN0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2Vw
dGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9y
dEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0
YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChXYXNtOjppc1JlZldpdGhUeXBlSW5kZXgo
Z2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzTnVsbGFi
bGUgPSBnbG9iYWxUeXBlLmlzTnVsbGFibGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBl
ckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlz
V2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFw
cGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1zZyA9IGlzTnVsbGFibGUg
PyAibXVzdCBiZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24gb3IgbnVsbCIgOiAibXVzdCBiZSBh
IHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNn
KSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IGdsb2JhbC50eXBlLmluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
YXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHdhc21GdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0lu
ZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZh
aWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJBcmd1bWVudCBmdW5jdGlvbiBk
aWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3Rh
bmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtNTU0LDcgKzU2OSw4IEBAIHZvaWQgV2ViQXNz
ZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsCiAgICAgICAgICAgICBzd2l0Y2ggKGdsb2JhbC50eXBlLmtpbmQpIHsKICAg
ICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNh
c2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpUeXBlSWR4OgorICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmOgorICAg
ICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6Okk2
NDoKICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL3dhc20uanNvbgppbmRleCA5ZDIyNWU0ZTgyMjQ5NjYwNDQ0ZmY0MWFlYmJhMjdjNjRj
NzZlZWYxLi4zMmM4YWY4YmJmNTdlYTYwNWIzMzU1YTU2ZDg4MmU4ZGRlMWUwZWVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCkBAIC0xNiwxMiArMTYsMTEgQEAKICAgICAgICAg
InJlZl9udWxsIjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMjAsICJiM3R5cGUi
OiAiQjM6OkludDY0IiB9LAogICAgICAgICAicmVmIjogICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3
IiwgInZhbHVlIjogIC0yMSwgImIzdHlwZSI6ICJCMzo6SW50NjQiIH0sCiAgICAgICAgICJmdW5j
IjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTMyLCAiYjN0eXBlIjogIkIz
OjpWb2lkIiB9LAotICAgICAgICAidm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZh
bHVlIjogIC02NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKLSAgICAgICAgInR5cGVfaWR4Ijog
IHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0xMjgsICJiM3R5cGUiOiAiQjM6OkludDY0
IiB9CisgICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAg
LTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9CiAgICAgfSwKICAgICAidmFsdWVfdHlwZSI6IFsi
aTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCiAgICAg
ImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJ2b2lkIiwgImV4dGVy
bnJlZiIsICJmdW5jcmVmIl0sCi0gICAgInJlZl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJl
ZiIsICJ0eXBlX2lkeCJdLAorICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYi
LCAicmVmIiwgInJlZl9udWxsIl0sCiAgICAgImV4dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJG
dW5jdGlvbiI6ICAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAwIH0sCiAgICAgICAgICJU
YWJsZSI6ICAgICAgIHsgInR5cGUiOiAidWludDgiLCAidmFsdWUiOiAxIH0sCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjgzNjMxYTE3Njg0NmUy
NDIxZDJiNzA5ZDJjYjk2MzRlMzUzNWYxYi4uZjczMWVmNDMxZWFhMzIzYjRlMGNjNWVjYTUxYjMw
M2MyMzY4NTAyYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA5LTMwICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRi
ZXpoZXRza292QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dBU00tRnVuY3Rpb24tUmVmZXJlbmNl
c10gQWRkIGNhbGxfcmVmIHNwZWMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyOTcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRkIG5ldyByb3V0aW5lIHRvIHJ1biB0eXBlZCBm
dW5jdGlvbiByZWZlcmVuY2VzIHNwZWMgdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTEwLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gUmVwbGFjZSBjdXJyZW50IExMVk0gZmxhbmcncyBJ
bnQxMjggd2l0aCBhYnNlaWwtY3BwJ3MgSW50MTI4CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwppbmRleCBjZDA3NWJhNzVmYjdmNjI1ZGJhMjZkNGIxMjUxNDNkOTQyYzExODQ1Li5jNDlhYjIy
NTdiYmNkNGYzODNhNmRkMzVlMjU4OGFlNmJhMDE5ZjJjIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKQEAgLTEzMzcsNiArMTMzNywxMCBAQCBkZWYgcnVuV2ViQXNzZW1ibHlSZWZlcmVu
Y2VTcGVjVGVzdChtb2RlKQogICAgIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsICJy
ZWYtc3BlYy1oYXJuZXNzIikKIGVuZAogCitkZWYgcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVy
ZW5jZVNwZWNUZXN0KG1vZGUpCisgICAgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwg
InNwZWMtaGFybmVzcyIsICItLXVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXM9
dHJ1ZSIpCitlbmQKKwogZGVmIHJ1bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCiAgICAg
cmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhY2M4MDRlZWJmYmJmZDI5ZjNjNjNjYWM0MzY2YTA2
MGY2ZmNiNjIxLi5mYWM0MTMxODg5ZWZhZDRjYWI3ODFjN2QyY2QwMjkwODY3OWZhNTY1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIxLTA5LTMwICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dBU00tRnVuY3Rpb24tUmVmZXJlbmNlc10gQWRkIGNhbGxf
cmVmIHNwZWMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjYWxsX3JlZiBpbnN0cnVjdGlvbiBmcm9tIHRo
ZSBzcGVjIHJlcG86CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9mdW5j
dGlvbi1yZWZlcmVuY2VzL2Jsb2IvbWFzdGVyL3Rlc3QvY29yZS9jYWxsX3JlZi53YXN0LgorICAg
ICAgICBBbHNvIGFkZGVkIHRlc3RzIGZvciBGdW5jcmVmL0V4dGVybnJlZiBpbiBXYXNtIHRhYmxl
cyBhbmQgZ2xvYmFscyB0byB0ZXN0CisgICAgICAgIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmID0gKHJlZiBudWxsIGZ1bmNyZWYpLgorICAgICAgICAKKyAgICAgICAgKiB3
YXNtLnlhbWw6CisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMv
Y2FsbF9yZWYud2FzdC5qczogQWRkZWQuCisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVu
Y2VzL3JlZl90eXBlcy5qczoKKyAgICAgICAgKGFzeW5jIHRlc3RSZWZHbG9iYWxDaGVjayk6Cisg
ICAgICAgIChhc3luYyB0ZXN0Tm9uTnVsbEV4dGVybnJlZkluY29tcGF0aWJsZSk6CisgICAgICAg
IChhc3luYyB0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUpOgorICAgICAgICAoYXN5bmMg
dGVzdFdhc21KU0dsb2JhbHMpOgorICAgICAgICAoYXN5bmMgdGVzdFJlZlR5cGVzSW5UYWJsZXMp
OgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDIxLTEwLTIzICBQaGlsbGlwIE1hdGVz
ICA8cG1hdGVzQGlnYWxpYS5jb20+CiAKICAgICAgICAgdXBkYXRlIHRlc3QyNjIKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS55YW1sIGIvSlNUZXN0cy93YXNtLnlhbWwKaW5kZXggMWY0NTFiYzkx
MThjY2FjMzM5ODk3MGVhNDliMjU4OWNhZjMzY2MyNy4uYzBjYTMwZDIzZGFhNThiMDk0Y2U0ZjUx
ZmQzYjk4Mjk3Mjc3NWRlZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtLnlhbWwKKysrIGIvSlNU
ZXN0cy93YXNtLnlhbWwKQEAgLTEzNyw2ICsxMzcsOSBAQAogLSBwYXRoOiB3YXNtL3RocmVhZHMt
c3BlYy10ZXN0cy93YWl0LWxhcmdlLndhc3QuanMKICAgY21kOiBydW5XZWJBc3NlbWJseVNwZWNU
ZXN0IDpub3JtYWwKIAorLSBwYXRoOiB3YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0
cy9jYWxsX3JlZi53YXN0LmpzCisgIGNtZDogcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVyZW5j
ZVNwZWNUZXN0IDpub3JtYWwKKwogLSBwYXRoOiB3YXNtL3NwZWMtdGVzdHMvYWRkcmVzcy53YXN0
LmpzCiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAtIHBhdGg6IHdhc20v
c3BlYy10ZXN0cy9hbGlnbi53YXN0LmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rp
b24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMgYi9KU1Rlc3RzL3dhc20v
ZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDcyYzU2NzJiMDEwODhiYmJjMzg5OTQxZGUxYWViNmJiNzU1ZjIxMgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9y
ZWYud2FzdC5qcwpAQCAtMCwwICsxLDk2IEBACitsZXQgJDEgPSBpbnN0YW5jZSgiXHgwMFx4NjFc
eDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgxOFx4MDRceDYwXHgwMVx4N2ZceDAxXHg3Zlx4
NjBceDAxXHg3ZVx4MDFceDdlXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHg2MFx4MDJceDZiXHgw
MFx4N2ZceDAxXHg3Zlx4MDNceDBhXHgwOVx4MDNceDAwXHgwMFx4MDBceDAxXHgwMlx4MDFceDAx
XHgwMVx4MDZceDFmXHgwNVx4NmJceDAxXHgwMFx4ZDJceDA0XHgwYlx4NmJceDAyXHgwMFx4ZDJc
eDA1XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA2XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA3XHgwYlx4
NmJceDAxXHgwMFx4ZDJceDA4XHgwYlx4MDdceDJhXHgwNlx4MDNceDcyXHg3NVx4NmVceDAwXHgw
M1x4MDNceDY2XHg2MVx4NjNceDAwXHgwNFx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYz
XHgwMFx4MDVceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDZceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBc
eDA3XHgwM1x4NmZceDY0XHg2NFx4MDBceDA4XHgwOVx4MTdceDA1XHgwM1x4MDBceDAyXHgwMVx4
MDJceDAzXHgwMFx4MDFceDA0XHgwM1x4MDBceDAxXHgwNVx4MDNceDAwXHgwMVx4MDZceDAzXHgw
MFx4MDJceDA3XHgwOFx4MGFceGE3XHgwMVx4MDlceDA3XHgwMFx4MjBceDAxXHgyMFx4MDBceDE0
XHgwYlx4MDdceDAwXHgyMFx4MDBceDIwXHgwMFx4NmNceDBiXHgwN1x4MDBceDQxXHgwMFx4MjBc
eDAwXHg2Ylx4MGJceDE1XHgwMVx4MDJceDZjXHgwMFx4ZDJceDAxXHgyMVx4MDFceGQyXHgwMlx4
MjFceDAyXHgyMFx4MDBceDIwXHgwMVx4MTRceDIwXHgwMlx4MTRceDBiXHgxNlx4MDBceDIwXHgw
MFx4NTBceDA0XHg3ZVx4NDJceDAxXHgwNVx4MjBceDAwXHgyMFx4MDBceDQyXHgwMVx4N2RceDIz
XHgwMFx4MTRceDdlXHgwYlx4MGJceDE4XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHgyMFx4MDFc
eDA1XHgyMFx4MDBceDQyXHgwMVx4N2RceDIwXHgwMFx4MjBceDAxXHg3ZVx4MjNceDAxXHgxNFx4
MGJceDBiXHgxZVx4MDBceDIwXHgwMFx4NDJceDAxXHg1OFx4MDRceDdlXHg0Mlx4MDFceDA1XHgy
MFx4MDBceDQyXHgwMlx4N2RceDIzXHgwMlx4MTRceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAy
XHgxNFx4N2NceDBiXHgwYlx4MTNceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHgyY1x4MDVc
eDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDA0XHgxNFx4MGJceDBiXHgxNFx4MDBceDIwXHgwMFx4
NTBceDA0XHg3ZVx4NDJceGUzXHgwMFx4MDVceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAzXHgx
NFx4MGJceDBiIik7CisKK2Fzc2VydF9yZXR1cm4oKCkgPT4gY2FsbCgkMSwgInJ1biIsIFswXSks
IDApOworYXNzZXJ0X3JldHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzNdKSwgLTkpOworCisv
LyBjYWxsX3JlZi53YXN0Ojk5CisvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIChyZWYubnVsbCA8
aGVhcHR5cGU+KTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcw
Ny4KKy8vIChhc3NlcnRfdHJhcCAoaW52b2tlICJudWxsIikgIm51bGwgZnVuY3Rpb24iKQorCisv
LyBjYWxsX3JlZi53YXN0Ojk5CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
NVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMAorcnVuKCgpID0+IGNhbGwoaW5z
dGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4
MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2
Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1
XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBc
eDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRz
KCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZh
YyIgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDEK
K3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgw
MFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAx
XHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdc
eDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4
NDBceDQyXHgwNVx4MTBceDAwXHgwMVx4NDJceGY4XHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDUpKSAoaTY0LmNvbnN0IDEyMCkp
CisKKy8vIGNhbGxfcmVmLndhc3Q6MTAyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4
NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgw
MVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAw
XHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFc
eDBhXHgxZVx4MDFceDFjXHgwMFx4MDJceDQwXHg0Mlx4MTlceDEwXHgwMFx4MDFceDQyXHg4MFx4
ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDI1KSkgKGk2NC5jb25zdCA3MDM0
NTM1Mjc3NTczOTYzNzc2KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDMKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4
NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgz
MVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAw
XHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBc
eDAyXHg0MFx4NDJceDAwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4
MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkp
OyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAwKSAoaTY0
LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNAorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgw
Mlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFc
eDE1XHgwMFx4MDJceDQwXHg0Mlx4MDFceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0
IDEpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA1
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwYVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgw
ZVx4MDFceDAyXHgyNFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE4XHgwMVx4MTZceDAwXHgwMlx4NDBceDQyXHgwNVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4
ZjhceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEi
LCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNj
IiAoaTY0LmNvbnN0IDUpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMTIwKSkKKworLy8gY2Fs
bF9yZWYud2FzdDoxMDYKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZk
XHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2Vc
eDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4
NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MjBceDAxXHgxZVx4MDBceDAyXHg0MFx4NDJceDE5XHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHg4MFx4ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFc
eDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJy
dW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25z
dCAyNSkgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCA3MDM0NTM1Mjc3NTczOTYzNzc2KQorCisv
LyBjYWxsX3JlZi53YXN0OjExMQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCAwKSkg
KGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTIKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJm
aWIiIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTEz
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgw
MVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3
XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJc
eDQwXHg0Mlx4MDJceDEwXHgwMFx4MDFceDQyXHgwMlx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4
MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2Vy
dF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDIpKSAoaTY0LmNvbnN0IDIpKQorCisv
LyBjYWxsX3JlZi53YXN0OjExNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDA1XHgxMFx4MDBceDAxXHg0Mlx4MDhceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCA1KSkg
KGk2NC5jb25zdCA4KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTUKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgxNFx4MTBceDAw
XHgwMVx4NDJceGMyXHhkNVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImZpYiIgKGk2NC5jb25zdCAyMCkpIChpNjQuY29uc3QgMTA5NDYpKQorCisvLyBjYWxs
X3JlZi53YXN0OjExNworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRc
eDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4
N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgw
M1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1
XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTgKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgwNFx4
NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImV2ZW4iIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxsX3Jl
Zi53YXN0OjExOQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAx
XHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2Vc
eDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4
MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgw
MVx4MTRceDAwXHgwMlx4NDBceDQyXHhlNFx4MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5jb25zdCAxMDAp
KSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjAKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4
NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgw
NFx4NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAz
XHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4Y2Rc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA5OSkpCisKKy8v
IGNhbGxfcmVmLndhc3Q6MTIxCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
Nlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAx
XHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAi
cnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAw
KSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTIyCitydW4oKCkgPT4gY2Fs
bChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJc
eDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4
MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAib2RkIiAoaTY0LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2Fz
dDoxMjMKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBc
eDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4
MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgw
MFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAw
XHgwMlx4NDBceDQyXHhjOFx4MDFceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVc
eDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10p
KTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAyMDApKSAoaTY0
LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjQKK3J1bigoKSA9PiBjYWxsKGluc3Rh
bmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAw
XHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZc
eDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4
NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBceDEwXHgw
MFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9y
dHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAi
b2RkIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIFVucmVhY2hhYmxlIHR5
cGluZy4KKworLy8gY2FsbF9yZWYud2FzdDoxMjkKK2xldCAkMiA9IGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA1XHgwMVx4NjBceDAwXHgwMVx4N2ZceDAz
XHgwMlx4MDFceDAwXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4Njhc
eDYxXHg2Mlx4NmNceDY1XHgwMFx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MDBceDE0XHgwYiIp
OworYXNzZXJ0X3RyYXAoKCkgPT4gY2FsbCgkMiwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8g
Y2FsbF9yZWYud2FzdDoxMzcKK2xldCAkMyA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgw
MVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAx
XHg3Zlx4MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVc
eDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4
MDFceDAwXHgwYVx4MGRceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA2XHgwMFx4MDBceGQyXHgw
MFx4MTRceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQzLCAidW5yZWFjaGFibGUiLCBb
XSkpOworCisvLyBjYWxsX3JlZi53YXN0OjE0OQorbGV0ICQ0ID0gaW5zdGFuY2UoIlx4MDBceDYx
XHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2Zc
eDYwXHgwMFx4MDFceDdmXHgwM1x4MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4
NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgw
MVx4MDNceDAwXHgwMVx4MDBceDBhXHgxMlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MGJceDAw
XHgwMFx4NDFceDAwXHhkMlx4MDBceDE0XHgxYVx4NDFceDAwXHgwYiIpOworYXNzZXJ0X3RyYXAo
KCkgPT4gY2FsbCgkNCwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDox
NjQKKy8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIw
Mjc4LgorLy8gYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4MDNc
eDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4
NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBhXHgw
Zlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MDhceDAwXHgwMFx4NDJceDAwXHhkMlx4MDBceDE0
XHgwYiIpOworCisvLyBjYWxsX3JlZi53YXN0OjE3OQorLy8gRklYTUU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNzguCisvLyBhc3NlcnRfaW52YWxpZCgiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAx
XHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJc
eDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4
MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDEwXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgw
OVx4MDBceDAwXHhkMlx4MDBceDE0XHgxYVx4NDJceDAwXHgwYiIpOworCisvLyBjYWxsX3JlZi53
YXN0OjE5NQorYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDVceDAxXHg2MFx4MDFceDZmXHgwMFx4MDNceDAyXHgwMVx4MDBceDBhXHgwN1x4MDFc
eDA1XHgwMFx4MjBceDAwXHgxNFx4MGIiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5j
dGlvbi1yZWZlcmVuY2VzL3JlZl90eXBlcy5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZl
cmVuY2VzL3JlZl90eXBlcy5qcwppbmRleCA3YmFmOWMyYzk5MWNhYjExNTQxNzY1NjhhMDkxY2U4
NDE5ZmUzYmU5Li42NGE1ZGM3ZmExYWY1NzAyYjJlNWZlZWY2NTkxYWRkOWY3MTExYWZhIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKKysr
IGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzCkBAIC05Myw3
ICs5Myw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3RSZWZUeXBlUGFyYW1DaGVjaygpIHsKICAgICBh
c3NlcnQudGhyb3dzKAogICAgICAgKCkgPT4gaW5zdGFuY2UyLmV4cG9ydHMuZihudWxsKSwKICAg
ICAgIFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvciwKLSAgICAgICJGdW5jcmVmIG11c3QgYmUgYW4g
ZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIKKyAgICAgICJSZWZ8UmVmTnVsbCBtdXN0IGJlIGFuIGV4
cG9ydGVkIHdhc20gZnVuY3Rpb24iCiAgICAgKTsKICAgICBhc3NlcnQudGhyb3dzKAogICAgICAg
KCkgPT4gaW5zdGFuY2UyLmV4cG9ydHMuZihpbnN0YW5jZTEuZXhwb3J0cy5mKSwKQEAgLTE0Niw3
ICsxNDYsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0UmVmR2xvYmFsQ2hlY2soKSB7CiAgIGFzc2Vy
dC50aHJvd3MoCiAgICAgKCkgPT4gKGluc3RhbmNlMi5leHBvcnRzLmcudmFsdWUgPSBudWxsKSwK
ICAgICBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IsCi0gICAgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIgorICAgICJSZWZ8UmVmTnVsbCBtdXN0IGJlIGFuIGV4cG9y
dGVkIHdhc20gZnVuY3Rpb24iCiAgICk7CiAgIGFzc2VydC50aHJvd3MoCiAgICAgKCkgPT4gKGlu
c3RhbmNlMi5leHBvcnRzLmcudmFsdWUgPSBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZiksCkBA
IC0xODMsNiArMTgzLDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNrKCkgewog
ICAgICJpbXBvcnRlZCBnbG9iYWwgbTpnIG11c3QgYmUgYSBzYW1lIHR5cGUiCiAgICk7CiAKKwog
ICAvKgogICAgKiAobW9kdWxlCiAgICAqICAgKGltcG9ydCAibSIgImciIChnbG9iYWwgKHJlZiBl
eHRlcm4pKSkpCkBAIC0yMDgsNyArMjA5LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2Jh
bENoZWNrKCkgewogICAgICAgKQogICAgIH0sCiAgICAgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9y
LAotICAgICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogc2V0X2dsb2JhbCAw
IHdpdGggdHlwZSBFeHRlcm5yZWYiCisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZh
bGlkYXRlOiBzZXRfZ2xvYmFsIDAgd2l0aCB0eXBlIFJlZiB3aXRoIGEgdmFyaWFibGUgb2YgdHlw
ZSBSZWZOdWxsLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKGJ1ZmZlciknKSIKICAgKTsKIH0KIApAQCAtMjcyLDcgKzI3Myw3IEBAIGFz
eW5jIGZ1bmN0aW9uIHRlc3ROb25OdWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkgewogICAgICAg
ICAiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwN1x4MDFceDYwXHgwMVx4
NmZceDAxXHg2Ylx4NmZceDAzXHgwMlx4MDFceDAwXHgwYVx4MDZceDAxXHgwNFx4MDBceDIwXHgw
MFx4MGJceDAwXHgwYlx4MDRceDZlXHg2MVx4NmRceDY1XHgwMVx4MDRceDAxXHgwMFx4MDFceDY2
IgogICAgICAgKSwKICAgICBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgImNvbnRyb2wg
ZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYiCisgICAgIldlYkFz
c2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRo
IHVuZXhwZWN0ZWQgdHlwZS4gUmVmTnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0aW9uIGF0IGlu
ZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScpIgogICAp
OwogfQogCkBAIC0zMDAsOCArMzAxLDczIEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3ROb25OdWxsRnVu
Y3JlZkluY29tcGF0aWJsZSgpIHsKICAgICAgICAgIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4
MDBceDAwXHgwMVx4MDdceDAxXHg2MFx4MDFceDcwXHgwMVx4NmJceDcwXHgwM1x4MDJceDAxXHgw
MFx4MGFceDA2XHgwMVx4MDRceDAwXHgyMFx4MDBceDBiXHgwMFx4MGJceDA0XHg2ZVx4NjFceDZk
XHg2NVx4MDFceDA0XHgwMVx4MDBceDAxXHg2NiIKICAgICAgICksCiAgICAgV2ViQXNzZW1ibHku
Q29tcGlsZUVycm9yLAotICAgICJjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQg
dHlwZS4gRnVuY3JlZiIKKyAgICAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6
IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBSZWZOdWxsIGlzIG5v
dCBhIFJlZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2Vt
Ymx5Lk1vZHVsZShidWZmZXIpJykiCisgICk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RXYXNt
SlNHbG9iYWxzKCkgeworICBjb25zdCBwcm92aWRlckluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlh
dGUoCisgICAgYChtb2R1bGUKKyAgICAgICAgKGZ1bmMgKGV4cG9ydCAiZiIpIChwYXJhbSBmNjQp
IChyZXN1bHQgZjY0KQorICAgICAgICAgIChsb2NhbC5nZXQgMCkpCisgICAgIClgLAorICAgIHt9
LAorICAgIHsgcmVmZXJlbmNlX3R5cGVzOiB0cnVlIH0KKyAgKTsKKworICBjb25zdCB3YXNtR2xv
YmFsRnVuY3JlZiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOidmdW5jcmVmJywgbXV0
YWJsZTp0cnVlfSk7CisKKyAgLy8gTnVsbCBpcyBPSywgYmVjYXVzZSBGdW5jcmVmIGluIHR5cGVk
IGZ1bmN0aW9uIHJlZmVyZW5jZXMgcHJvcG9zYWwgcmVwcmVzZW50cyAocmVmIG51bGwgZnVuY3Jl
ZikuCisgIGFzc2VydC5lcSh3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSwgbnVsbCk7CisgIHdhc21H
bG9iYWxGdW5jcmVmLnZhbHVlID0gbnVsbDsKKyAgYXNzZXJ0LmVxKHdhc21HbG9iYWxGdW5jcmVm
LnZhbHVlLCBudWxsKTsKKworICAvLyBBIHdhc20gZnVuY3Rpb24gZnJvbSBvdGhlciBpbnN0YW5j
ZSBpcyBPSyB0b28gYmVjYXVzZSAocmVmICR0KSA8OiAocmVmIG51bGwgZnVuY3JlZikKKyAgd2Fz
bUdsb2JhbEZ1bmNyZWYudmFsdWUgPSBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZjsKKworICBh
c3NlcnQudGhyb3dzKAorICAgICgpID0+IHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gY29uc29s
ZS5sb2csCisgICAgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yLAorICAgICJGdW5jcmVmIG11c3Qg
YmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnd2FzbUdsb2JhbEZ1bmNy
ZWYudmFsdWUgPSBjb25zb2xlLmxvZycpIgogICApOworCisgIGNvbnN0IHdhc21HbG9iYWxFeHRl
cm4gPSBuZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTonZXh0ZXJucmVmJywgbXV0YWJsZTp0
cnVlfSk7CisgIGFzc2VydC5lcSh3YXNtR2xvYmFsRXh0ZXJuLnZhbHVlLCB1bmRlZmluZWQpOwor
ICB3YXNtR2xvYmFsRXh0ZXJuLnZhbHVlID0gY29uc29sZS5sb2c7CisgIGFzc2VydC5lcSh3YXNt
R2xvYmFsRXh0ZXJuLnZhbHVlLCBjb25zb2xlLmxvZyk7CisKKyAgd2FzbUdsb2JhbEV4dGVybi52
YWx1ZSA9IHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mOworICBhc3NlcnQuZXEod2FzbUdsb2Jh
bEV4dGVybi52YWx1ZSwgcHJvdmlkZXJJbnN0YW5jZS5leHBvcnRzLmYpOworfQorCithc3luYyBm
dW5jdGlvbiB0ZXN0UmVmVHlwZXNJblRhYmxlcygpIHsKKyAgY29uc3QgcHJvdmlkZXJJbnN0YW5j
ZSA9IGF3YWl0IGluc3RhbnRpYXRlKAorICAgIGAobW9kdWxlCisgICAgICAgIChmdW5jIChleHBv
cnQgImYiKSAocGFyYW0gZjY0KSAocmVzdWx0IGY2NCkKKyAgICAgICAgICAobG9jYWwuZ2V0IDAp
KQorICAgICApYCwKKyAgICB7fSwKKyAgICB7IHJlZmVyZW5jZV90eXBlczogdHJ1ZSB9CisgICk7
CisKKyAgY29uc3Qgd2FzbVRhYmxlRnVuY3JlZiA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7IGlu
aXRpYWw6IDEsIG1heGltdW06IDEsIGVsZW1lbnQ6ICJmdW5jcmVmIiB9KTsKKyAgYXNzZXJ0LmVx
KHdhc21UYWJsZUZ1bmNyZWYuZ2V0KDApLCBudWxsKTsKKyAgd2FzbVRhYmxlRnVuY3JlZi5zZXQo
MCwgcHJvdmlkZXJJbnN0YW5jZS5leHBvcnRzLmYpOworICBhc3NlcnQuZXEod2FzbVRhYmxlRnVu
Y3JlZi5nZXQoMCksIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsKKworICBhc3NlcnQudGhy
b3dzKAorICAgICgpID0+IHdhc21UYWJsZUZ1bmNyZWYuc2V0KDAsIGNvbnNvbGUubG9nKSwKKyAg
ICBUeXBlRXJyb3IsCisgICAgIldlYkFzc2VtYmx5LlRhYmxlLnByb3RvdHlwZS5zZXQgZXhwZWN0
cyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIG51bGwgb3IgYW4gaW5zdGFuY2Ugb2YgV2ViQXNz
ZW1ibHkuRnVuY3Rpb24iCisgICk7CisKKyAgY29uc3Qgd2FzbVRhYmxlRXh0ZXJucmVmID0gbmV3
IFdlYkFzc2VtYmx5LlRhYmxlKHsgaW5pdGlhbDogMSwgbWF4aW11bTogMSwgZWxlbWVudDogImV4
dGVybnJlZiIgfSk7CisgIGFzc2VydC5lcSh3YXNtVGFibGVFeHRlcm5yZWYuZ2V0KDApLCB1bmRl
ZmluZWQpOworICB3YXNtVGFibGVFeHRlcm5yZWYuc2V0KDAsIHByb3ZpZGVySW5zdGFuY2UuZXhw
b3J0cy5mKTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIHByb3ZpZGVy
SW5zdGFuY2UuZXhwb3J0cy5mKTsKKworICB3YXNtVGFibGVFeHRlcm5yZWYuc2V0KDAsIGNvbnNv
bGUubG9nKTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIGNvbnNvbGUu
bG9nKTsKIH0KIAogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0UmVmVHlwZUxvY2FsKCkpOwpAQCAtMzE0
LDMgKzM4MCw1IEBAIGFzc2VydC5hc3luY1Rlc3QodGVzdEV4dGVybnJlZkNvbXBhdGliaWxpdHko
KSk7CiBhc3NlcnQuYXN5bmNUZXN0KHRlc3ROb25OdWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkp
OwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0RnVuY3JlZkNvbXBhdGliaWxpdHkoKSk7CiBhc3NlcnQu
YXN5bmNUZXN0KHRlc3ROb25OdWxsRnVuY3JlZkluY29tcGF0aWJsZSgpKTsKK2Fzc2VydC5hc3lu
Y1Rlc3QodGVzdFdhc21KU0dsb2JhbHMoKSk7Cithc3NlcnQuYXN5bmNUZXN0KHRlc3RSZWZUeXBl
c0luVGFibGVzKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVz
dHMvd2FzbS93YXNtLmpzb24KaW5kZXggOWQyMjVlNGU4MjI0OTY2MDQ0NGZmNDFhZWJiYTI3YzY0
Yzc2ZWVmMS4uMzJjOGFmOGJiZjU3ZWE2MDViMzM1NWE1NmQ4ODJlOGRkZTFlMGVlZCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29u
CkBAIC0xNiwxMiArMTYsMTEgQEAKICAgICAgICAgInJlZl9udWxsIjogIHsgInR5cGUiOiAidmFy
aW50NyIsICJ2YWx1ZSI6ICAtMjAsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAi
cmVmIjogICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMSwgImIzdHlwZSI6
ICJCMzo6SW50NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgICB7ICJ0eXBlIjogInZhcmludDci
LCAidmFsdWUiOiAgLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidm9pZCI6
ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6ICJCMzo6
Vm9pZCIgfSwKLSAgICAgICAgInR5cGVfaWR4IjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6IC0xMjgsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9CisgICAgICAgICJ2b2lkIjogICAgICB7
ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9
CiAgICAgfSwKICAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0Iiwg
ImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCiAgICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQi
LCAiZjMyIiwgImY2NCIsICJ2b2lkIiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCi0gICAgInJl
Zl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJ0eXBlX2lkeCJdLAorICAgICJyZWZf
dHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAicmVmIiwgInJlZl9udWxsIl0sCiAgICAg
ImV4dGVybmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6ICAgIHsgInR5cGUiOiAidWlu
dDgiLCAidmFsdWUiOiAwIH0sCiAgICAgICAgICJUYWJsZSI6ICAgICAgIHsgInR5cGUiOiAidWlu
dDgiLCAidmFsdWUiOiAxIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442354</attachid>
            <date>2021-10-25 03:27:45 -0700</date>
            <delta_ts>2021-10-26 23:20:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20211025172744.patch</filename>
            <type>text/plain</type>
            <size>79984</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGE2YmE5M2Q4OGQwYTgxN2IxNzljNmM5ZGRhOWNlMjI1NWNjY2E5Li5hMTAzMGY2NjJlZmJkNmI2
NDg3OGNkZjViODFmN2NhZGZmNzYwMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlZCByZWR1bmRhbmQgVHlwZUtpbmQ6OlR5cGVJ
ZHggYmVjYXVzZSBuZXcgUmVmIGFuZCBSZWZOdWxsIG9wY29kZXMgY292ZXIKKyAgICAgICAgdGhl
IHNhbWUgY2FzZXMuCisgICAgICAgIEFsc28gdXNlIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmL0V4dGVybnJlZiB3aGVuIHR5cGVkCisgICAgICAgIGZ1bmN0aW9uIHJlZmVy
ZW5jZXMgcHJvcG9zYWwgaXMgZW5hYmxlZC4KKyAgICAgICAgCisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdSZWYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAoSlNDOjpXYXNtOjpB
aXJJUkdlbmVyYXRvcjo6bW92ZU9wRm9yVmFsdWVUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZExvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFk
ZFJlZkZ1bmMpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6Z1R5cGVJZHgp
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAg
ICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzUmVmVHlwZSk6
CisgICAgICAgIChKU0M6Oldhc206OmlzRXh0ZXJucmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
aXNGdW5jcmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3JlZlR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpFeHRlcm5yZWZUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNTdWJ0eXBlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6aXNEZWZhdWx0YWJsZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJsZUlu
Zm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBh
cnNlRXhwcmVzc2lvbik6CisgICAgICAgICogd2FzbS9XYXNtR2xvYmFsLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6R2xvYmFsOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9i
YWw6OnNldCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBs
KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKToKKyAgICAgICAgKiB3
YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VjdGlvblBh
cnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpUYWJsZTo6d2FzbVR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwOgorICAgICAgICAoSlND
OjpKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5
cGUpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMTAtMjIgIEp1c3Rp
biBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBuaXRz
IGZyb20gMjMyMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAppbmRleCA2NDU3NGY3YWM5YjAwMGUxYmRiY2FlYTExYzkxNGIyM2IyMjgx
YzcyLi4zOThmNTViM2U3NTY1ZGIzNjI0NmY3ZTFlMjEzMTkzOWUwMTFhOTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTQw
MywxNSArNDAzLDE3IEBAIENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5
cGUgdHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgY2FzZSBUeXBlS2luZDo6RjY0
OgogICAgICAgICByZXR1cm4gdG9DU3RyaW5nKGJpdHdpc2VfY2FzdDxkb3VibGU+KGNvbnN0YW50
KSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0
YW50KSA9PSBqc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgIHJl
dHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkp
OwotICAgIGRlZmF1bHQ6CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoaXNGdW5jcmVmKHR5
cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKSB7CisgICAgICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVj
b2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gIm51bGwi
OworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2
b2lkKj4oY29uc3RhbnQpKSk7CisgICAgICAgIH0KKwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQorICAgIH0KIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHAKaW5kZXggNzkyODJiNzdlNzg2MTYxZDVkZjA4YTZkZjgxYTQyZmVl
MTE4MzlmYy4uZjIzYzE1MGZhNDk1ZmQ1MDI5MzRjYWEzMTZmYWE5NzE0MWJjZDk2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBA
IC00MzQsNyArNDM0LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlZFRtcCBnNjQoKSB7IHJldHVybiB7
IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6STY0IH07IH0KICAgICBUeXBlZFRtcCBnRXh0ZXJucmVm
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZXM6OkV4dGVybnJlZiB9OyB9CiAgICAg
VHlwZWRUbXAgZ0Z1bmNyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6RnVu
Y3JlZiB9OyB9Ci0gICAgVHlwZWRUbXAgZ1R5cGVJZHgoVHlwZSB0eXBlKSB7IHJldHVybiB7IG5l
d1RtcChCMzo6R1ApLCB0eXBlIH07IH0KKyAgICBUeXBlZFRtcCBnUmVmKFR5cGUgdHlwZSkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgdHlwZSB9OyB9CiAgICAgVHlwZWRUbXAgZjMyKCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkYzMiB9OyB9CiAgICAgVHlwZWRUbXAgZjY0
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkY2NCB9OyB9CiAKQEAgLTQ0Nyw4
ICs0NDcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGc2NCgpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgcmV0dXJuIGdGdW5jcmVmKCk7Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICByZXR1cm4gZ1R5cGVJ
ZHgodHlwZSk7CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKKyAgICAgICAgICAgIHJldHVybiBnUmVmKHR5cGUpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICByZXR1cm4gZ0V4dGVybnJlZigp
OwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC02MjUsNyArNjI2LDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0g
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmOgorICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAg
ICAgICAgICByZXN1bHRUeXBlID0gQjM6OkludDY0OwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNjc1LDcgKzY3Nyw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICByZXR1cm4gTW92ZTsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICAgICAgcmV0dXJuIE1vdmVGbG9hdDsKQEAg
LTkzMyw3ICs5MzYsOCBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9k
dWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZO
dWxsOgogICAgICAgICAgICAgYXBwZW5kKE1vdmUsIGFyZywgbV9sb2NhbHNbaV0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTEwMzYsNyArMTA0
MCw4IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMyX3Qg
Y291bnQpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
dW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAg
ICBhcHBlbmQoTW92ZSwgQXJnOjppbW0oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSksIGxvY2Fs
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CkBAIC0x
MDcyLDcgKzEwNzcsOCBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDb25zdGFudChCYXNpY0Js
b2NrKiBibG9jaywgVHlwZSB0eXBlLCB1aW50NjRfdCB2YWx1ZSkgLQogICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtp
bmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBhcHBlbmQoYmxv
Y2ssIE1vdmUsIEFyZzo6YmlnSW1tKHZhbHVlKSwgcmVzdWx0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTExOSw3ICsxMTI1LDcgQEAgYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkUmVmRnVuYyh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCkgLT4gUGFydGkKICAgICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUwNj4uCiAgICAgaWYgKE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICBTaWduYXR1
cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1faW5mby5zaWduYXR1cmVJbmRleEZyb21GdW5jdGlv
bkluZGV4U3BhY2UoaW5kZXgpOwotICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGUgeyBU
eXBlS2luZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9KTsKKyAgICAg
ICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlIHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5v
LCBzaWduYXR1cmVJbmRleCB9KTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0ID0gdG1wRm9y
VHlwZShUeXBlczo6RnVuY3JlZik7CiAgICAgZW1pdENDYWxsKCZvcGVyYXRpb25XYXNtUmVmRnVu
YywgcmVzdWx0LCBpbnN0YW5jZVZhbHVlKCksIGFkZENvbnN0YW50KFR5cGVzOjpJMzIsIGluZGV4
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0Nv
bnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5oCmluZGV4IDdiZjAwMWVkOTJlZmNiYWZjMGZiYzhhNTBiNGJmNjI3MjVkMmNjZTUuLjU5
MWVlYjI3YjAxNjkwMDdhZmExODNkNDMyNzI5ZmEwY2E1NmFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC0xMDcsNyAr
MTA3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVy
biBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0
YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGNjQ6CkBAIC0xOTYsNyArMTk3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOGNjZTM5NWQ4OTJjNWUzOWQ3M2UzMjM0MTg2NDM3NWVi
NDdhNzEwZi4uOWViMTc4NjkxNzA5OTE4YWM5MzY4YjE2MTliMzU4MWRhMzE4Y2MzMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzEsNyArNzEsOCBAQCBpbmxp
bmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJu
cmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIHJldHVybiBPcHRpb25zOjp1c2VXZWJB
c3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CkBAIC05NCwyMCArOTUsNjEgQEAgaW5saW5lIEpTU3RyaW5nKiB0eXBlVG9TdHJpbmco
Vk0mIHZtLCBUeXBlS2luZCB0eXBlKQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKK2lubGluZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCit7CisgICAgaWYgKE9wdGlv
bnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0
dXJuIHR5cGUuaXNSZWYoKSB8fCB0eXBlLmlzUmVmTnVsbCgpOworICAgIHJldHVybiB0eXBlLmlz
RnVuY3JlZigpIHx8IHR5cGUuaXNFeHRlcm5yZWYoKTsKK30KKworaW5saW5lIGJvb2wgaXNFeHRl
cm5yZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVk
RnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBpc1JlZlR5cGUodHlwZSkgJiYg
dHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oVHlwZUtpbmQ6OkV4dGVy
bnJlZik7CisgICAgcmV0dXJuIHR5cGUua2luZCA9PSBUeXBlS2luZDo6RXh0ZXJucmVmOworfQor
CitpbmxpbmUgYm9vbCBpc0Z1bmNyZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1
c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBp
c1JlZlR5cGUodHlwZSkgJiYgdHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRl
eD4oVHlwZUtpbmQ6OkZ1bmNyZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6
OkZ1bmNyZWY7Cit9CisKK2lubGluZSBUeXBlIGZ1bmNyZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0
aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICBy
ZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJs
ZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNtOjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6
OkZ1bmNyZWYpIH07CisgICAgcmV0dXJuIFR5cGVzOjpGdW5jcmVmOworfQorCitpbmxpbmUgVHlw
ZSBleHRlcm5yZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBl
ZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206
OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJsZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNt
OjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZikgfTsKKyAgICByZXR1
cm4gVHlwZXM6OkV4dGVybnJlZjsKK30KKworaW5saW5lIGJvb2wgaXNSZWZXaXRoVHlwZUluZGV4
KFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5j
dGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGlz
UmVmVHlwZSh0eXBlKSAmJiAhaXNFeHRlcm5yZWYodHlwZSkgJiYgIWlzRnVuY3JlZih0eXBlKTsK
K30KKwogaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKIHsKICAg
ICBpZiAoc3ViLmlzTnVsbGFibGUoKSAmJiAhcGFyZW50LmlzTnVsbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN1Yi5pc1R5cGVJZHgoKSAmJiBwYXJlbnQuaXNGdW5j
cmVmKCkpCisgICAgaWYgKChzdWIuaXNSZWYoKSB8fCBzdWIuaXNSZWZOdWxsKCkpICYmIGlzRnVu
Y3JlZihwYXJlbnQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBzdWIgPT0g
cGFyZW50OwotfQorICAgIGlmIChzdWIuaXNSZWYoKSAmJiBwYXJlbnQuaXNSZWZOdWxsKCkgJiYg
c3ViLmluZGV4ID09IHBhcmVudC5pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLWlubGlu
ZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUuaXNGdW5jcmVm
KCkgfHwgdHlwZS5pc0V4dGVybnJlZigpIHx8IHR5cGUuaXNUeXBlSWR4KCk7CisgICAgcmV0dXJu
IHN1YiA9PSBwYXJlbnQ7CiB9CiAKIGlubGluZSBib29sIGlzVmFsaWRIZWFwVHlwZUtpbmQoVHlw
ZUtpbmQga2luZCkKQEAgLTEyNCw3ICsxNjYsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5
cGVLaW5kKFR5cGVLaW5kIGtpbmQpCiAKIGlubGluZSBib29sIGlzRGVmYXVsdGFibGVUeXBlKFR5
cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gIWlzUmVmVHlwZSh0eXBlKSB8fCB0eXBlLmlzTnVsbGFi
bGUoKTsKKyAgICByZXR1cm4gIXR5cGUuaXNSZWYoKTsKIH0KIAogZW51bSBjbGFzcyBFeHRlcm5h
bEtpbmQgOiB1aW50OF90IHsKQEAgLTM0NSw3ICszODcsNyBAQCBwdWJsaWM6CiAgICAgdWludDMy
X3QgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX21heGltdW07IH0KICAgICBU
YWJsZUVsZW1lbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBUeXBl
IHdhc21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1
bmNyZWYgPyBUeXBlczo6RnVuY3JlZiA6IFR5cGVzOjpFeHRlcm5yZWY7IH0KKyAgICBUeXBlIHdh
c21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYgPyBmdW5jcmVmVHlwZSgpIDogZXh0ZXJucmVmVHlwZSgpOyB9CiAKIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9pbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25QYXJzZXIuaAppbmRleCBmYWQ3ZDc2OGViMTBmNmI1NDljN2M4OTE4YzE3NmRlNWYx
MmZkNjY3Li5mZWYyMThlODQyYTE5Y2U3MDEwNDYwMWRmNDliNDA1NWE0OWFjOGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMTEw
NSw3ICsxMTA1LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0Up
CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBt
X2luZm8uc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAg
ICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmNvbnN0cnVjdEFuZEFwcGVuZChUeXBlIHtUeXBlS2lu
ZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7IFR5cGVL
aW5kOjpSZWYsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfSwgcmVzdWx0KTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAKICAgICBjYXNlIENhbGxS
ZWY6IHsKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1i
bHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpLCAiZnVuY3Rpb24gcmVmZXJlbmNlcyBhcmUgbm90
IGVuYWJsZWQiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighbV9leHByZXNzaW9u
U3RhY2subGFzdCgpLnR5cGUoKS5pc1R5cGVJZHgoKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZh
bHVlICIsIG1fZXhwcmVzc2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CisgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzUmVmV2l0aFR5cGVJbmRleChtX2V4cHJlc3Npb25TdGFj
ay5sYXN0KCkudHlwZSgpKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZhbHVlICIsIG1fZXhwcmVz
c2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CiAKICAgICAgICAgY29uc3QgU2lnbmF0dXJl
SW5kZXggY2FsbGVlU2lnbmF0dXJlSW5kZXggPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlw
ZSgpLmluZGV4OwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIGNhbGxlZVNpZ25hdHVyZSA9IFNp
Z25hdHVyZUluZm9ybWF0aW9uOjpnZXQoY2FsbGVlU2lnbmF0dXJlSW5kZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcAppbmRleCA1OWRhOTc3YzNjYTZmYTRjYTM1
N2UwY2Y1ZGVhNGQ1NjZiYjBjOTRkLi5jYjNkMTYzYmJlMDhiNmE1NzU4Y2Q5ZGMyOGRlMDY4YTFk
ZTU2ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFs
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcApAQCAt
NDgsNyArNDgsOCBAQCBKU1ZhbHVlIEdsb2JhbDo6Z2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CiAgICAgICAgIHJldHVybiBqc051bWJlcihwdXJpZnlOYU4oYml0d2lzZV9j
YXN0PGRvdWJsZT4obV92YWx1ZS5tX3ByaW1pdGl2ZSkpKTsKICAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5k
OjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpS
ZWZOdWxsOgogICAgICAgICByZXR1cm4gbV92YWx1ZS5tX2V4dGVybnJlZi5nZXQoKTsKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTg1LDU3ICs4Niw0MyBA
QCB2b2lkIEdsb2JhbDo6c2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
YXJndW1lbnQpCiAgICAgICAgIG1fdmFsdWUubV9wcmltaXRpdmUgPSBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3Q+KHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgVHlwZUtpbmQ6
OkV4dGVybnJlZjogewotICAgICAgICBSRUxFQVNFX0FTU0VSVChtX293bmVyKTsKLSAgICAgICAg
aWYgKCFtX3R5cGUuaXNOdWxsYWJsZSgpICYmIGFyZ3VtZW50LmlzTnVsbCgpKSB7Ci0gICAgICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJl
ZiBjYW5ub3QgYmUgbnVsbCIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1
bWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4
OgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
bV9vd25lcik7Ci0gICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9IG1fdHlwZS5pc051bGxhYmxlKCk7
Ci0gICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1
bWVudCwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUg
fHwgIWFyZ3VtZW50LmlzTnVsbCgpKSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGds
b2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlv
biIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAobV90eXBl
LmtpbmQgPT0gVHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBl
ckZ1bmN0aW9uKSkgewotICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IG1fdHlwZS5pbmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0lu
ZGV4OwotICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAgICBhcmdJ
bmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVy
ZUluZGV4KCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkgewotICAg
ICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3Jl
YXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQg
ZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgZGVmYXVs
dDogeworICAgICAgICBpZiAoaXNFeHRlcm5yZWYobV90eXBlKSkgeworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQobV9vd25lcik7CisgICAgICAgICAgICBpZiAoIW1fdHlwZS5pc051bGxhYmxl
KCkgJiYgYXJndW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBt
X3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVudCk7
CisgICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jcmVmKG1fdHlwZSkgfHwgaXNSZWZXaXRoVHlwZUlu
ZGV4KG1fdHlwZSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOworICAg
ICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9u
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2
bSwgYXJndW1lbnQsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFtX3R5
cGUuaXNOdWxsYWJsZSgpIHx8ICFhcmd1bWVudC5pc051bGwoKSkpIHsKKyAgICAgICAgICAgICAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzUmVmV2l0aFR5cGVJbmRleChtX3R5cGUpICYm
ICFhcmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUlu
ZGV4IHBhcmFtSW5kZXggPSBtX3R5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgV2FzbTo6U2ln
bmF0dXJlSW5kZXggYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24gPyB3YXNtRnVuY3Rpb24tPnNpZ25h
dHVyZUluZGV4KCkgOiB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAg
ICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KSB7CisgICAgICAgICAgICAg
ICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQgZnVuY3Rp
b24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVu
dCk7CiAgICAgICAgIH0KLSAgICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+
dm0oKSwgbV9vd25lciwgYXJndW1lbnQpOwotICAgICAgICBicmVhazsKICAgICB9Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNp
dG9yPgogdm9pZCBHbG9iYWw6OnZpc2l0QWdncmVnYXRlSW1wbChWaXNpdG9yJiB2aXNpdG9yKQog
ewotICAgIHN3aXRjaCAobV90eXBlLmtpbmQpIHsKLSAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5y
ZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjogeworICAgIGlmIChpc0Z1bmNyZWYobV90
eXBlKSB8fCBpc0V4dGVybnJlZihtX3R5cGUpKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
b3duZXIpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChtX3ZhbHVlLm1fZXh0ZXJucmVmKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRv
ci5jcHAKaW5kZXggNGM5YTlkMTFlNDE4MmE1NDcyNWYzNWUxZTdlMzY3OWJkMjAwNWZiYi4uOGVk
MjMwOTNmNzEzZTFmNDIyOWViM2YxZmM3NDVkNTQxYmZmYjI3NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC02MDksNyArNjA5
LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIGlmIChncHJJbmRleCA8IGdwckNvdW50KQogICAgICAgICAgICAgICAgICsrZ3BySW5k
ZXg7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGFja0luZGV4KysgPj0gc3RhY2tDb3VudCkKQEAg
LTYyNCw4ICs2MjUsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JD
YWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIH0KICAgICB9OwpAQCAtNjY3LDcgKzY2Niw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6
OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4g
TExJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPiBncHJM
aW1pdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbCgtLWdwckluZGV4KTsKICAgICAgICAgICAgIGVsc2UKQEAgLTY4Miw4ICs2ODIsNiBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0
dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC02OTcsNyArNjk1LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9y
Q2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRleCA+IGdwckxpbWl0KQogICAgICAgICAgICAg
ICAgIHRlbXBvcmFyeVJlc3VsdHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgtLWdwcklu
ZGV4KTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcxMiw4ICs3MTEsNiBAQCBhdXRvIExMSW50R2Vu
ZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1
cmUpIC0+IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZv
aWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NTUsNyArNzUy
LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIGlmIChncHJJbmRleCA8IG1heEdQUkluZGV4KQogICAgICAgICAgICAgICAgIG1fcmVz
dWx0cy5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobnVtYmVyT2ZMTEludENhbGxlZVNh
dmVSZWdpc3RlcnMgKyBncHJJbmRleCsrKSk7CiAgICAgICAgICAgICBlbHNlCkBAIC03NzAsOCAr
NzY4LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgot
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpS
ZWY6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgfQpAQCAtODEyLDcgKzgwOCw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3Vt
ZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmOgogICAgICAgICAgICAgYWRkQXJndW1lbnQoaSwgZ3BySW5kZXgsIG1heEdQ
UkluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6
CkBAIC04MjEsOCArODE4LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTgzNywxNiArODMyLDExIEBAIGF1dG8gTExJbnRHZW5lcmF0
b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
ICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAgICBtX2NvZGVCbG9jay0+bV9udW1WYXJzICs9
IGNvdW50OwotICAgIHN3aXRjaCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgaWYgKGlzRnVuY3JlZih0
eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICB3aGlsZSAoY291bnQtLSkKICAg
ICAgICAgICAgIG1fdW5pdGlhbGl6ZWRMb2NhbHMuYXBwZW5kKHB1c2goTm9Db25zaXN0ZW5jeUNo
ZWNrKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6CisgICAgfSBlbHNlCiAgICAgICAg
IG1fc3RhY2tTaXplICs9IGNvdW50OwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgcmV0dXJu
IHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMu
Y3BwCmluZGV4IDczNWIzMDM1ZTExMGIzODIxNGU1ZmNjZTIyMDljMDVhZmRjMWVjNmYuLjNiMDJl
YmYwOTI1ODczZTRiZmY3NjM3MzlkMmIwMTg1NzhlMDJiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTU0Myw3ICs1NDMsOCBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gYnVmZmVyLmF0KGlu
ZGV4KTsKIAogICAgICAgICB1aW50NjRfdCB1bmJveGVkVmFsdWUgPSAwOwotICAgICAgICBzd2l0
Y2ggKHNpZ25hdHVyZS0+cmV0dXJuVHlwZShpbmRleCkua2luZCkgeworICAgICAgICBjb25zdCBh
dXRvJiByZXR1cm5UeXBlID0gc2lnbmF0dXJlLT5yZXR1cm5UeXBlKGluZGV4KTsKKyAgICAgICAg
c3dpdGNoIChyZXR1cm5UeXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgog
ICAgICAgICAgICAgdW5ib3hlZFZhbHVlID0gdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC01NTYsMTcgKzU1NywxNiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICB1bmJveGVk
VmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6
Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmlzQ2FsbGFibGUodm0pKSB7Ci0gICAgICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZ1bmNyZWYgdmFsdWUgaXMg
bm90IGEgZnVuY3Rpb24iX3MpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRl
cm5yZWY6Ci0gICAgICAgICAgICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+
KHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZGVmYXVsdDogeworICAg
ICAgICAgICAgaWYgKGlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBpc0V4dGVybnJlZihyZXR1cm5U
eXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYocmV0dXJuVHlwZSkgJiYgIXZh
bHVlLmlzQ2FsbGFibGUodm0pKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJGdW5jcmVmIHZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uIl9z
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2Vy
LmgKaW5kZXggNjNkODlkNjFkNDM1MzBhMjZmYjU0MTVlMjcwMWNjMzBhNzNhMzI4NC4uOGVjZDI1
MTBjY2IyZmJkMzZjODVhZjU1NDNlMzcxMDc0ZDk0YzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMzA1LDcgKzMwNSwxMSBAQCBBTFdBWVNfSU5MSU5FIGJv
b2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxlSW5mb3Jt
YXRpb24mCiAgICAgVHlwZUtpbmQgdHlwZUtpbmQgPSBzdGF0aWNfY2FzdDxUeXBlS2luZD4oa2lu
ZCk7CiAgICAgYm9vbCBpc051bGxhYmxlID0gdHJ1ZTsKICAgICBTaWduYXR1cmVJbmRleCBzaWdJ
bmRleCA9IDA7Ci0gICAgaWYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWYgfHwgdHlwZUtpbmQg
PT0gVHlwZUtpbmQ6OlJlZk51bGwpIHsKKworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJs
eVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkgJiYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpGdW5j
cmVmIHx8IHR5cGVLaW5kID09IFR5cGVLaW5kOjpFeHRlcm5yZWYpKSB7CisgICAgICAgIHNpZ0lu
ZGV4ID0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJlSW5kZXg+KHR5cGVLaW5kKTsKKyAgICAgICAgdHlw
ZUtpbmQgPSBUeXBlS2luZDo6UmVmTnVsbDsKKyAgICB9IGVsc2UgaWYgKHR5cGVLaW5kID09IFR5
cGVLaW5kOjpSZWYgfHwgdHlwZUtpbmQgPT0gVHlwZUtpbmQ6OlJlZk51bGwpIHsKICAgICAgICAg
aWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTMxOCw5ICszMjIsOCBAQCBBTFdBWVNfSU5M
SU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxl
SW5mb3JtYXRpb24mCiAgICAgICAgICAgICBUeXBlS2luZCBoZWFwS2luZCA9IHN0YXRpY19jYXN0
PFR5cGVLaW5kPihoZWFwVHlwZSk7CiAgICAgICAgICAgICBpZiAoIWlzVmFsaWRIZWFwVHlwZUtp
bmQoaGVhcEtpbmQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHR5cGVLaW5kID0gaGVhcEtpbmQ7CisgICAgICAgICAgICBzaWdJbmRleCA9IHN0YXRpY19jYXN0
PFNpZ25hdHVyZUluZGV4PihoZWFwS2luZCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB0eXBlS2luZCA9IFR5cGVLaW5kOjpUeXBlSWR4OwogICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PHNpemVfdD4oaGVhcFR5cGUpID49IGluZm8udXNlZFNpZ25hdHVyZXMuc2l6ZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHNpZ0luZGV4ID0gU2lnbmF0
dXJlSW5mb3JtYXRpb246OmdldChpbmZvLnVzZWRTaWduYXR1cmVzW2hlYXBUeXBlXS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAK
aW5kZXggY2ZkYWZmZGQ3YTQyY2M4MWU1YmEzYTYxZTRiYWU4ZWY1ZWNiZDNiYS4uZmVjYzBlNjc1
ZTk5ZTljNjkzZjk2MDgzOGJhZmRhYTJlMDRhM2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIGF1
dG8gU2VjdGlvblBhcnNlcjo6cGFyc2VJbml0RXhwcih1aW50OF90JiBvcGNvZGUsIHVpbnQ2NF90
JiBiaXRzT3JJbXBvcnROdW1iZXIsCiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2Vt
Ymx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5k
ZXggc2lnbmF0dXJlSW5kZXggPSBtX2luZm8tPnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5k
ZXhTcGFjZShpbmRleCk7Ci0gICAgICAgICAgICByZXN1bHRUeXBlID0geyBUeXBlS2luZDo6VHlw
ZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9OworICAgICAgICAgICAgcmVzdWx0
VHlwZSA9IHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9Owog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBUeXBlczo6RnVuY3JlZjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKaW5kZXggZTRmOTNiMTM0
NzdhM2E1ZmIxNGI3MWQ3ZGQzZWEzY2M0MjMzMjJjNi4uYzM2NzVjODI0M2Q3ODk5MzQwYTI2YjFm
MDA0MDk4MTM5Y2M3MjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUu
Y3BwCkBAIC0xNzksOSArMTc5LDkgQEAgREVGSU5FX1ZJU0lUX0FHR1JFR0FURShUYWJsZSk7CiBU
eXBlIFRhYmxlOjp3YXNtVHlwZSgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRXh0ZXJucmVmVGFibGUo
KSkKLSAgICAgICAgcmV0dXJuIFR5cGVzOjpFeHRlcm5yZWY7CisgICAgICAgIHJldHVybiBleHRl
cm5yZWZUeXBlKCk7CiAgICAgQVNTRVJUKGlzRnVuY3JlZlRhYmxlKCkpOwotICAgIHJldHVybiBU
eXBlczo6RnVuY3JlZjsKKyAgICByZXR1cm4gZnVuY3JlZlR5cGUoKTsKIH0KIAogRnVuY1JlZlRh
YmxlKiBUYWJsZTo6YXNGdW5jcmVmVGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNUb1dhc20uY3BwCmluZGV4IDcyYmE4NzQzODlhYTNhZTY5ODc2NTRjMmIzNDY2ZDE1OGJm
OGE3ZmEuLmQxNTVkOGEzNGJmMWIzNTZjODcwZjBiNmZlOTkxMjJlZjE1ZjY5NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTQ1LDEwICs0NSw2IEBA
IHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAg
ICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIo
KSwgZHN0LnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STMyOgogICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3By
KCksIGRzdC5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXls
b2FkR1BSKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKQEAgLTYzLDkgKzU5LDEyIEBA
IHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAgICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIGppdC5icmVha3BvaW50KCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDogeworICAgICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBl
KSkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7Cisg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKaW5kZXggOWM1ZjE4YTY4Mzk2
ODk1MmQwNDQ4ZjRkMjgwYjg3ZjYzZjFiYzJjYS4uNTcxZTA1YWFjZmY2MzE2ZDFkY2U1YzY4YzMz
NWY3Y2MxYmIyMzM0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKQEAgLTEwNSwxNCArMTA1LDE0IEBAIEpTT2JqZWN0
KiBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0OgogICAgICAgICB2YWx1ZVN0cmluZyA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImY2NCIpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2
aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFs
U3RyaW5nKHZtLCAiZnVuY3JlZiIpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGRlZmF1bHQ6IHsKKyAgICAg
ICAgaWYgKFdhc206OmlzRnVuY3JlZih2YWx1ZVR5cGUpKQorICAgICAgICAgICAgdmFsdWVTdHJp
bmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7CisgICAgICAgIGVsc2UgaWYg
KFdhc206OmlzRXh0ZXJucmVmKHZhbHVlVHlwZSkpCisgICAgICAgICAgICB2YWx1ZVN0cmluZyA9
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICB9CiAgICAg
cmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSIp
LCB2YWx1ZVN0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCmluZGV4IGI2MjBlZGNhMjhhOWUyNDI5ZjEyMGNlMTk2
N2EzYjBjMTEyMTM1NzEuLmYyNzE3NzllMGI4ODFkMWRlYzYwYWZjODY2MGZkODliMzc5MzBlNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlI
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUhlbHBlcnMuaApAQCAtMTM5LDkgKzEzOSw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1dlYkFz
c2VtYmx5SG9zdEZ1bmN0aW9uKFZNJiB2bSwgSlNWYWx1ZSBvYmplY3QpCiBBTFdBWVNfSU5MSU5F
IEpTVmFsdWUgZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZShjb25zdCBXYXNtOjpUeXBlIHR5
cGUpCiB7CiAgICAgQVNTRVJUKFdhc206OmlzUmVmVHlwZSh0eXBlKSk7Ci0gICAgaWYgKHR5cGUu
aXNFeHRlcm5yZWYoKSkKKyAgICBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIEFTU0VSVCh0eXBlLmlzRnVuY3JlZigpKTsKKyAg
ICBBU1NFUlQoV2FzbTo6aXNGdW5jcmVmKHR5cGUpKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9
CiAKQEAgLTE3MywyOSArMTczLDYgQEAgQUxXQVlTX0lOTElORSB1aW50NjRfdCBmcm9tSlNWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXYXNtOjpUeXAKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIHN3aXRjaCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6VHlwZUlkeDoKLSAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAg
ICAgIGJvb2wgaXNOdWxsYWJsZSA9IHR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICBXZWJBc3Nl
bWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwotICAgICAgICBXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgICAg
IGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwg
d2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkp
Ci0gICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJGdW5j
cmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKLSAgICAgICAgaWYgKHR5
cGUua2luZCA9PSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdh
c21XcmFwcGVyRnVuY3Rpb24pKSB7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBw
YXJhbUluZGV4ID0gdHlwZS5pbmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4
IGFyZ0luZGV4OwotICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAg
ICBhcmdJbmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNp
Z25hdHVyZUluZGV4KCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJB
cmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKTsKLSAg
ICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RXh0ZXJucmVmOgotICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpICYmIHZhbHVlLmlzTnVs
bCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAi
Tm9uLW51bGwgRXh0ZXJucmVmIGNhbm5vdCBiZSBudWxsIikpOwotICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpKTsKICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJNjQ6CkBAIC0yMDQsMTMgKzE4MSwyNSBAQCBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IGZy
b21KU1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFdhc206OlR5cAog
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50MzJfdD4o
dmFsdWUudG9GbG9hdChnbG9iYWxPYmplY3QpKSk7CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RjY0OgogICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4odmFsdWUudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpOwotICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OlZvaWQ6Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuYzoKLSAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpSZWZOdWxsOgotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWZhdWx0OiB7CisgICAg
ICAgIGlmIChXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgeworICAgICAgICAgICAgaWYgKCF0eXBl
LmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYgY2Fubm90
IGJlIG51bGwiKSk7CisgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKHR5cGUpIHx8
IGlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgeworICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5j
dGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAg
IGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwg
d2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCF0eXBlLmlzTnVsbGFibGUoKSB8fCAhdmFsdWUuaXNO
dWxsKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0
LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOworICAg
ICAgICAgICAgaWYgKGlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSAmJiAhdmFsdWUuaXNOdWxsKCkp
IHsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gdHlw
ZS5pbmRleDsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleCA9
IHdhc21GdW5jdGlvbiA/IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKSA6IHdhc21XcmFw
cGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFt
SW5kZXggIT0gYXJnSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhl
IHJlZmVyZW5jZSB0eXBlIikpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIH0KLQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCBkNjVmYzYx
MjFiNjA5MGJkN2YyZDQwZDAzYmI0NWVlN2FhNjQwMjM0Li41ODEwNDFiM2NhMzQzM2M3YWZhYmYx
YmUzNDY3NWRhYjdkNGE0ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Fz
bVRvSlMuY3BwCkBAIC0xMDcsNyArMTA3LDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWY6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gSGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAtMTgy
LDcgKzE4MSw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEhhbmRsZWQgYWJvdmUu
Ci0gICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoK
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTI3OSwxNCArMjc3LDggQEAgRXhw
ZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWls
dXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICBhdXRvIGRvbmVMb2NhdGlvbiA9IGppdC5sYWJlbCgp
OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpID09IDEpIHsKLSAgICAgICAgc3dp
dGNoIChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5raW5kKSB7Ci0gICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlZvaWQ6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKLSAgICAgICAgICAg
IC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBl
cyBpbiB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxp
ZGF0aW9uIGVycm9yLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjb25zdCBhdXRvJiByZXR1cm5UeXBlID0gc2ln
bmF0dXJlLnJldHVyblR5cGUoMCk7CisgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZS5raW5kKSB7
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgLy8gRklYTUU6IE9w
dGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1MwpAQCAtMzI0LDExICszMTYs
NiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmlu
ZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJ
bmZvLnJlc3VsdHNbMF0uZnByKCk7CkBAIC0zOTAsNiArMzc3LDEzIEBAIEV4cGVjdGVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRv
SlMoVk0mIHZtCiAgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OiAgeworICAgICAgICAgICAgaWYgKFdhc206
OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkK
KyAgICAgICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNh
bGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0
eXBlcyBpbiB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2
YWxpZGF0aW9uIGVycm9yLgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoc2lnbmF0dXJlLnJl
dHVybkNvdW50KCkgPiAxKSB7CiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BS
ID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVu
Y3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5j
dGlvbi5jcHAKaW5kZXggMTk3MThkY2U2OTk2OTAwMWVlMTJkNjQ0Zjg2MjQ1ZTAxNzM2NWIwOC4u
YWEyMmEzZDMxNjRmMWNjOGRmNmMwYmEzNjNhYTZmYWY1MDhhYWQ3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAg
LTI1MywzNyArMjUzLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICAg
ICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1z
W2ldLmdwcigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1
bmNyZWY6IHsKLSAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBm
dW5jdGlvbi4KLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChpc051bGwpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOworICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpS
ZWY6CisgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjogeworICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgewor
ICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlv
bi4KKyAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAg
ICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BSKTsK
KyAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQorICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgICAgIHN0
YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBqaXQuZW1pdExvYWRT
dHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHN0YWNrTGltaXRHUFIpOwotICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFN0
cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAg
ICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGppdC5l
bWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUiwgc3RhY2tMaW1pdEdQ
Uik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNj
cmF0Y2hHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKIAot
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5RnVuY3Rp
b24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMgYmVsb3ciKTsKLSAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOworICAg
ICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0
aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CisgICAg
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBl
ckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7
CiAKLSAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihX
ZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygp
KSkpOworICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRy
KENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNo
R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rp
b246OmluZm8oKSkpKTsKIAotICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsK
LSAgICAgICAgICAgIGlmICh0eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHgpIHsK
LSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBX
ZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRj
aEdQUik7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0Nh
bGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygm
aml0KTsKKyAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7
CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRl
eCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgaXNOdWxsLmxpbmsoJmppdCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh0
eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICBpc051bGwubGluaygmaml0KTsKLSAg
ICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKICAgICAgICAg
ICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAg
IGlmICghdHlwZS5pc051bGxhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4
IDhmNjVhZWQ5ZmQxYWJkNzk3ZTRhNjdjODhlZjYxZThhYTcxNDE5NzkuLjEwMDA1NmRlNjE1MGI5
YzE4N2IxMWMwNzllYjhkMWRiYWU3MDBhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3Bw
CkBAIC05NSw5ICs5NSw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgICAgIGVsc2Ug
aWYgKHZhbHVlU3RyaW5nID09ICJmNjQiX3MpCiAgICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlw
ZXM6OkY2NDsKICAgICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImFueWZ1bmMiX3MgfHwg
dmFsdWVTdHJpbmcgPT0gImZ1bmNyZWYiX3MpCi0gICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlw
ZXM6OkZ1bmNyZWY7CisgICAgICAgICAgICB0eXBlID0gV2FzbTo6ZnVuY3JlZlR5cGUoKTsKICAg
ICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImV4dGVybnJlZiJfcykKLSAgICAgICAgICAg
IHR5cGUgPSBXYXNtOjpUeXBlczo6RXh0ZXJucmVmOworICAgICAgICAgICAgdHlwZSA9IFdhc206
OmV4dGVybnJlZlR5cGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0
ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJXZWJBc3NlbWJseS5HbG9iYWwgZXhwZWN0cyBpdHMg
J3ZhbHVlJyBmaWVsZCB0byBiZSB0aGUgc3RyaW5nICdpMzInLCAnaTY0JywgJ2YzMicsICdmNjQn
LCAnYW55ZnVuYycsICdmdW5jcmVmJywgb3IgJ2V4dGVybnJlZiciX3MpKSk7CiAgICAgfQpAQCAt
MTM3LDI0ICsxMzcsMjIgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjogewot
ICAgICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgIGFyZ3VtZW50
ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKLSAgICAgICAgaWYgKCFpc1dl
YkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1bWVudCkgJiYgIWFyZ3VtZW50LmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNy
ZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICAgICAgfQotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNv
ZGUoYXJndW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6RXh0ZXJucmVmOiB7Ci0gICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQot
ICAgICAgICAgICAgYXJndW1lbnQgPSBkZWZhdWx0VmFsdWVGb3JSZWZlcmVuY2VUeXBlKHR5cGUp
OwotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQpOwotICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYo
dHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAg
ICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsK
KyAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJndW1lbnQp
ICYmICFhcmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cihnbG9iYWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVu
Y3Rpb24iKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKKyAgICAgICAgICAgIGlm
IChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVm
YXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAgICAgICAgICAgIGluaXRpYWxWYWx1
ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICBSZWY8V2Fz
bTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlwZSwgbXV0YWJp
bGl0eSwgaW5pdGlhbFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBkZWNhYTk4MmY3ZGYy
YWJkMDg2NTRhYTNmMjRmNDE4NzMyMThhNWYyLi45NjkyNmYyZDZiMjdhYjlkMDA0OTdhNGQwYjg3
YTdhYjIyOThhMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0yNTcsMzggKzI1Nyw4IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhj
ZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1w
b3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm11c3QgYmUgYSBzYW1l
IHR5cGUiKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVmFsdWUtPmdsb2JhbCgp
LT5tdXRhYmlsaXR5KCkgIT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkltbXV0YWJsZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIHNhbWUgbXV0YWJpbGl0eSIpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAobW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBvcnQua2lu
ZEluZGV4XS50eXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RnVuY3JlZjogewotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gZ2xv
YmFsLnR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1i
bHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVs
bHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2xvYmFsVmFsdWUtPmdsb2Jh
bCgpLT5nZXQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21X
cmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gaXNOdWxsYWJsZSA/
ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEg
d2FzbSBleHBvcnRlZCBmdW5jdGlvbiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwg
dm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChn
bG9iYWwudHlwZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rp
b24gfHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUuaW5kZXg7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVy
ZUluZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25h
dHVyZUluZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXgg
IT0gYXJnSW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNl
cHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBv
cnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVuY3Rp
b24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFuY2Uo
KS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxPYmplY3QpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsLnR5cGUuaXNOdWxsYWJsZSgpICYmIHZh
bHVlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRp
b24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRG
YWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibm9uLW51bGwgZXh0ZXJucmVm
IGNhbm5vdCBiZSBudWxsIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2Ut
Pmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBk
ZWNsYXJlZEdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5k
SW5kZXhdLnR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVjbGFyZWRHbG9iYWxU
eXBlLmtpbmQpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMy
OgogICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CiAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoKQEAgLTI5Niw3ICsyNjYsMzIg
QEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBv
cnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5z
dGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGdsb2JhbFZhbHVl
LT5nbG9iYWwoKS0+Z2V0UHJpbWl0aXZlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKFdhc206OmlzRXh0ZXJucmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2Jh
bE9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2Jh
bC50eXBlLmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVk
IGdsb2JhbCIsICJub24tbnVsbCBleHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGlt
cG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoV2FzbTo6aXNGdW5jcmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkgfHwgV2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3Jh
cHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24o
dm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghZ2xvYmFs
LnR5cGUuaXNOdWxsYWJsZSgpIHx8ICF2YWx1ZS5pc051bGwoKSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gZ2xvYmFsLnR5cGUuaXNOdWxsYWJs
ZSgpID8gIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3Qg
YmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2Jh
bE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIs
IG1zZykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KGRlY2xhcmVkR2xvYmFs
VHlwZSkgJiYgIXZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5kZXggPSBnbG9iYWwudHlwZS5pbmRleDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJn
SW5kZXggPSB3YXNtRnVuY3Rpb24gPyB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCkgOiB3
YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVm
ZXJlbmNlIHR5cGUiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGlt
cG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICBjb25zdCBhdXRvIGdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5n
bG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGU7CkBAIC0zMTMsMzMgKzMwOCw2IEBAIHZvaWQg
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAKICAgICAgICAgICAgICAgICAgICAgLy8gaWlpLiBBcHBlbmQg
VG9XZWJBc3NlbWJseVZhbHVlKHYpIHRvIGltcG9ydHMuCiAgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAoZ2xvYmFsVHlwZS5raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9
IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNz
ZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RG
dW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYg
KCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11c3QgYmUgYSB3YXNtIGV4
cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0
aW9uIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0
ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3Nh
Z2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbFR5cGUua2luZCA9PSBX
YXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVu
Y3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5k
ZXggcGFyYW1JbmRleCA9IGdsb2JhbC50eXBlLmluZGV4OwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNz
ZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0
LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhl
IHJlZmVyZW5jZSB0eXBlIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5r
aW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkV4dGVybnJlZjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsVHlwZS5pc051
bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVj
dCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0
IGJlIGEgbm9uLW51bGwgdmFsdWUiKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0
YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmlu
c3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlLnRvSW50MzIoZ2xvYmFs
T2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1Niw3ICszMjQs
MjggQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRF
eHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
aW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGJpdHdpc2Vf
Y2FzdDx1aW50NjRfdD4odmFsdWUuYXNOdW1iZXIoKSkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKFdhc206OmlzRXh0ZXJucmVmKGdsb2JhbFR5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051
bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihj
cmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxN
ZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbm9uLW51bGwgdmFs
dWUiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNl
KCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKGdsb2JhbFR5cGUpIHx8IFdhc206Omlz
UmVmV2l0aFR5cGVJbmRleChnbG9iYWxUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21XcmFw
cGVyRnVuY3Rpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
aXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdy
YXBwZXJGdW5jdGlvbikgJiYgKCFnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSB8fCAhdmFsdWUuaXNO
dWxsKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1z
ZyA9IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpID8gIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1
bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGlt
cG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bGwoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xv
YmFsLnR5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNp
Z25hdHVyZUluZGV4IGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uID8gd2FzbUZ1bmN0aW9uLT5zaWdu
YXR1cmVJbmRleCgpIDogd2FzbVdyYXBwZXJGdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNy
ZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1l
c3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBu
b3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5j
ZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTU1NCw3ICs1NDMsOCBAQCB2b2lkIFdlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgICAgICAgICAgc3dpdGNoIChnbG9iYWwudHlwZS5raW5kKSB7CiAgICAg
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6VHlwZUlkeDoKKyAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKKyAgICAg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6
CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS93YXNtLmpzb24KaW5kZXggOWQyMjVlNGU4MjI0OTY2MDQ0NGZmNDFhZWJiYTI3YzY0Yzc2
ZWVmMS4uMzJjOGFmOGJiZjU3ZWE2MDViMzM1NWE1NmQ4ODJlOGRkZTFlMGVlZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgpAQCAtMTYsMTIgKzE2LDExIEBACiAgICAgICAgICJy
ZWZfbnVsbCI6ICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIwLCAiYjN0eXBlIjog
IkIzOjpJbnQ2NCIgfSwKICAgICAgICAgInJlZiI6ICAgICAgIHsgInR5cGUiOiAidmFyaW50NyIs
ICJ2YWx1ZSI6ICAtMjEsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6
ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zMiwgImIzdHlwZSI6ICJCMzo6
Vm9pZCIgfSwKLSAgICAgICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6ICAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ0eXBlX2lkeCI6ICB7
ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTI4LCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIg
fQorICAgICAgICAidm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02
NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfQogICAgIH0sCiAgICAgInZhbHVlX3R5cGUiOiBbImkz
MiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJdLAogICAgICJi
bG9ja190eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJleHRlcm5y
ZWYiLCAiZnVuY3JlZiJdLAotICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYi
LCAidHlwZV9pZHgiXSwKKyAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwg
InJlZiIsICJyZWZfbnVsbCJdLAogICAgICJleHRlcm5hbF9raW5kIjogewogICAgICAgICAiRnVu
Y3Rpb24iOiAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMCB9LAogICAgICAgICAiVGFi
bGUiOiAgICAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMSB9LApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI4MzYzMWExNzY4NDZlMjQy
MWQyYjcwOWQyY2I5NjM0ZTM1MzVmMWIuLmMyZTA2MmYzYmJjZTczY2FjMDI5Mjg4ZmY4NjcyYjMx
ZmE3MTMzY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6
aGV0c2tvdkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNd
IEFkZCBjYWxsX3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjk3MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIG5ldyByb3V0aW5lIHRvIHJ1biB0eXBlZCBm
dW5jdGlvbiByZWZlcmVuY2VzIHNwZWMgdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTEwLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gUmVwbGFjZSBjdXJyZW50IExMVk0gZmxhbmcncyBJ
bnQxMjggd2l0aCBhYnNlaWwtY3BwJ3MgSW50MTI4CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwppbmRleCBjZDA3NWJhNzVmYjdmNjI1ZGJhMjZkNGIxMjUxNDNkOTQyYzExODQ1Li5jNDlhYjIy
NTdiYmNkNGYzODNhNmRkMzVlMjU4OGFlNmJhMDE5ZjJjIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKQEAgLTEzMzcsNiArMTMzNywxMCBAQCBkZWYgcnVuV2ViQXNzZW1ibHlSZWZlcmVu
Y2VTcGVjVGVzdChtb2RlKQogICAgIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsICJy
ZWYtc3BlYy1oYXJuZXNzIikKIGVuZAogCitkZWYgcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVy
ZW5jZVNwZWNUZXN0KG1vZGUpCisgICAgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwg
InNwZWMtaGFybmVzcyIsICItLXVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXM9
dHJ1ZSIpCitlbmQKKwogZGVmIHJ1bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCiAgICAg
cmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhY2M4MDRlZWJmYmJmZDI5ZjNjNjNjYWM0MzY2YTA2
MGY2ZmNiNjIxLi5mYWM0MTMxODg5ZWZhZDRjYWI3ODFjN2QyY2QwMjkwODY3OWZhNTY1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIxLTA5LTMwICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dBU00tRnVuY3Rpb24tUmVmZXJlbmNlc10gQWRkIGNhbGxf
cmVmIHNwZWMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjYWxsX3JlZiBpbnN0cnVjdGlvbiBmcm9tIHRo
ZSBzcGVjIHJlcG86CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9mdW5j
dGlvbi1yZWZlcmVuY2VzL2Jsb2IvbWFzdGVyL3Rlc3QvY29yZS9jYWxsX3JlZi53YXN0LgorICAg
ICAgICBBbHNvIGFkZGVkIHRlc3RzIGZvciBGdW5jcmVmL0V4dGVybnJlZiBpbiBXYXNtIHRhYmxl
cyBhbmQgZ2xvYmFscyB0byB0ZXN0CisgICAgICAgIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmID0gKHJlZiBudWxsIGZ1bmNyZWYpLgorICAgICAgICAKKyAgICAgICAgKiB3
YXNtLnlhbWw6CisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMv
Y2FsbF9yZWYud2FzdC5qczogQWRkZWQuCisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVu
Y2VzL3JlZl90eXBlcy5qczoKKyAgICAgICAgKGFzeW5jIHRlc3RSZWZHbG9iYWxDaGVjayk6Cisg
ICAgICAgIChhc3luYyB0ZXN0Tm9uTnVsbEV4dGVybnJlZkluY29tcGF0aWJsZSk6CisgICAgICAg
IChhc3luYyB0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUpOgorICAgICAgICAoYXN5bmMg
dGVzdFdhc21KU0dsb2JhbHMpOgorICAgICAgICAoYXN5bmMgdGVzdFJlZlR5cGVzSW5UYWJsZXMp
OgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDIxLTEwLTIzICBQaGlsbGlwIE1hdGVz
ICA8cG1hdGVzQGlnYWxpYS5jb20+CiAKICAgICAgICAgdXBkYXRlIHRlc3QyNjIKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS55YW1sIGIvSlNUZXN0cy93YXNtLnlhbWwKaW5kZXggMWY0NTFiYzkx
MThjY2FjMzM5ODk3MGVhNDliMjU4OWNhZjMzY2MyNy4uYzBjYTMwZDIzZGFhNThiMDk0Y2U0ZjUx
ZmQzYjk4Mjk3Mjc3NWRlZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtLnlhbWwKKysrIGIvSlNU
ZXN0cy93YXNtLnlhbWwKQEAgLTEzNyw2ICsxMzcsOSBAQAogLSBwYXRoOiB3YXNtL3RocmVhZHMt
c3BlYy10ZXN0cy93YWl0LWxhcmdlLndhc3QuanMKICAgY21kOiBydW5XZWJBc3NlbWJseVNwZWNU
ZXN0IDpub3JtYWwKIAorLSBwYXRoOiB3YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0
cy9jYWxsX3JlZi53YXN0LmpzCisgIGNtZDogcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVyZW5j
ZVNwZWNUZXN0IDpub3JtYWwKKwogLSBwYXRoOiB3YXNtL3NwZWMtdGVzdHMvYWRkcmVzcy53YXN0
LmpzCiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAtIHBhdGg6IHdhc20v
c3BlYy10ZXN0cy9hbGlnbi53YXN0LmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rp
b24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMgYi9KU1Rlc3RzL3dhc20v
ZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDcyYzU2NzJiMDEwODhiYmJjMzg5OTQxZGUxYWViNmJiNzU1ZjIxMgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9y
ZWYud2FzdC5qcwpAQCAtMCwwICsxLDk2IEBACitsZXQgJDEgPSBpbnN0YW5jZSgiXHgwMFx4NjFc
eDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgxOFx4MDRceDYwXHgwMVx4N2ZceDAxXHg3Zlx4
NjBceDAxXHg3ZVx4MDFceDdlXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHg2MFx4MDJceDZiXHgw
MFx4N2ZceDAxXHg3Zlx4MDNceDBhXHgwOVx4MDNceDAwXHgwMFx4MDBceDAxXHgwMlx4MDFceDAx
XHgwMVx4MDZceDFmXHgwNVx4NmJceDAxXHgwMFx4ZDJceDA0XHgwYlx4NmJceDAyXHgwMFx4ZDJc
eDA1XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA2XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA3XHgwYlx4
NmJceDAxXHgwMFx4ZDJceDA4XHgwYlx4MDdceDJhXHgwNlx4MDNceDcyXHg3NVx4NmVceDAwXHgw
M1x4MDNceDY2XHg2MVx4NjNceDAwXHgwNFx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYz
XHgwMFx4MDVceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDZceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBc
eDA3XHgwM1x4NmZceDY0XHg2NFx4MDBceDA4XHgwOVx4MTdceDA1XHgwM1x4MDBceDAyXHgwMVx4
MDJceDAzXHgwMFx4MDFceDA0XHgwM1x4MDBceDAxXHgwNVx4MDNceDAwXHgwMVx4MDZceDAzXHgw
MFx4MDJceDA3XHgwOFx4MGFceGE3XHgwMVx4MDlceDA3XHgwMFx4MjBceDAxXHgyMFx4MDBceDE0
XHgwYlx4MDdceDAwXHgyMFx4MDBceDIwXHgwMFx4NmNceDBiXHgwN1x4MDBceDQxXHgwMFx4MjBc
eDAwXHg2Ylx4MGJceDE1XHgwMVx4MDJceDZjXHgwMFx4ZDJceDAxXHgyMVx4MDFceGQyXHgwMlx4
MjFceDAyXHgyMFx4MDBceDIwXHgwMVx4MTRceDIwXHgwMlx4MTRceDBiXHgxNlx4MDBceDIwXHgw
MFx4NTBceDA0XHg3ZVx4NDJceDAxXHgwNVx4MjBceDAwXHgyMFx4MDBceDQyXHgwMVx4N2RceDIz
XHgwMFx4MTRceDdlXHgwYlx4MGJceDE4XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHgyMFx4MDFc
eDA1XHgyMFx4MDBceDQyXHgwMVx4N2RceDIwXHgwMFx4MjBceDAxXHg3ZVx4MjNceDAxXHgxNFx4
MGJceDBiXHgxZVx4MDBceDIwXHgwMFx4NDJceDAxXHg1OFx4MDRceDdlXHg0Mlx4MDFceDA1XHgy
MFx4MDBceDQyXHgwMlx4N2RceDIzXHgwMlx4MTRceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAy
XHgxNFx4N2NceDBiXHgwYlx4MTNceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHgyY1x4MDVc
eDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDA0XHgxNFx4MGJceDBiXHgxNFx4MDBceDIwXHgwMFx4
NTBceDA0XHg3ZVx4NDJceGUzXHgwMFx4MDVceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAzXHgx
NFx4MGJceDBiIik7CisKK2Fzc2VydF9yZXR1cm4oKCkgPT4gY2FsbCgkMSwgInJ1biIsIFswXSks
IDApOworYXNzZXJ0X3JldHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzNdKSwgLTkpOworCisv
LyBjYWxsX3JlZi53YXN0Ojk5CisvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIChyZWYubnVsbCA8
aGVhcHR5cGU+KTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcw
Ny4KKy8vIChhc3NlcnRfdHJhcCAoaW52b2tlICJudWxsIikgIm51bGwgZnVuY3Rpb24iKQorCisv
LyBjYWxsX3JlZi53YXN0Ojk5CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
NVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMAorcnVuKCgpID0+IGNhbGwoaW5z
dGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4
MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2
Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1
XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBc
eDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRz
KCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZh
YyIgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDEK
K3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgw
MFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAx
XHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdc
eDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4
NDBceDQyXHgwNVx4MTBceDAwXHgwMVx4NDJceGY4XHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDUpKSAoaTY0LmNvbnN0IDEyMCkp
CisKKy8vIGNhbGxfcmVmLndhc3Q6MTAyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4
NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgw
MVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAw
XHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFc
eDBhXHgxZVx4MDFceDFjXHgwMFx4MDJceDQwXHg0Mlx4MTlceDEwXHgwMFx4MDFceDQyXHg4MFx4
ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDI1KSkgKGk2NC5jb25zdCA3MDM0
NTM1Mjc3NTczOTYzNzc2KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDMKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4
NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgz
MVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAw
XHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBc
eDAyXHg0MFx4NDJceDAwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4
MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkp
OyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAwKSAoaTY0
LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNAorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgw
Mlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFc
eDE1XHgwMFx4MDJceDQwXHg0Mlx4MDFceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0
IDEpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA1
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwYVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgw
ZVx4MDFceDAyXHgyNFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE4XHgwMVx4MTZceDAwXHgwMlx4NDBceDQyXHgwNVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4
ZjhceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEi
LCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNj
IiAoaTY0LmNvbnN0IDUpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMTIwKSkKKworLy8gY2Fs
bF9yZWYud2FzdDoxMDYKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZk
XHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2Vc
eDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4
NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MjBceDAxXHgxZVx4MDBceDAyXHg0MFx4NDJceDE5XHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHg4MFx4ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFc
eDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJy
dW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25z
dCAyNSkgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCA3MDM0NTM1Mjc3NTczOTYzNzc2KQorCisv
LyBjYWxsX3JlZi53YXN0OjExMQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCAwKSkg
KGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTIKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJm
aWIiIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTEz
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgw
MVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3
XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJc
eDQwXHg0Mlx4MDJceDEwXHgwMFx4MDFceDQyXHgwMlx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4
MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2Vy
dF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDIpKSAoaTY0LmNvbnN0IDIpKQorCisv
LyBjYWxsX3JlZi53YXN0OjExNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDA1XHgxMFx4MDBceDAxXHg0Mlx4MDhceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCA1KSkg
KGk2NC5jb25zdCA4KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTUKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgxNFx4MTBceDAw
XHgwMVx4NDJceGMyXHhkNVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImZpYiIgKGk2NC5jb25zdCAyMCkpIChpNjQuY29uc3QgMTA5NDYpKQorCisvLyBjYWxs
X3JlZi53YXN0OjExNworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRc
eDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4
N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgw
M1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1
XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTgKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgwNFx4
NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImV2ZW4iIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxsX3Jl
Zi53YXN0OjExOQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAx
XHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2Vc
eDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4
MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgw
MVx4MTRceDAwXHgwMlx4NDBceDQyXHhlNFx4MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5jb25zdCAxMDAp
KSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjAKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4
NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgw
NFx4NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAz
XHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4Y2Rc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA5OSkpCisKKy8v
IGNhbGxfcmVmLndhc3Q6MTIxCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
Nlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAx
XHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAi
cnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAw
KSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTIyCitydW4oKCkgPT4gY2Fs
bChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJc
eDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4
MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAib2RkIiAoaTY0LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2Fz
dDoxMjMKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBc
eDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4
MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgw
MFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAw
XHgwMlx4NDBceDQyXHhjOFx4MDFceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVc
eDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10p
KTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAyMDApKSAoaTY0
LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjQKK3J1bigoKSA9PiBjYWxsKGluc3Rh
bmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAw
XHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZc
eDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4
NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBceDEwXHgw
MFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9y
dHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAi
b2RkIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIFVucmVhY2hhYmxlIHR5
cGluZy4KKworLy8gY2FsbF9yZWYud2FzdDoxMjkKK2xldCAkMiA9IGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA1XHgwMVx4NjBceDAwXHgwMVx4N2ZceDAz
XHgwMlx4MDFceDAwXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4Njhc
eDYxXHg2Mlx4NmNceDY1XHgwMFx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MDBceDE0XHgwYiIp
OworYXNzZXJ0X3RyYXAoKCkgPT4gY2FsbCgkMiwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8g
Y2FsbF9yZWYud2FzdDoxMzcKK2xldCAkMyA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgw
MVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAx
XHg3Zlx4MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVc
eDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4
MDFceDAwXHgwYVx4MGRceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA2XHgwMFx4MDBceGQyXHgw
MFx4MTRceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQzLCAidW5yZWFjaGFibGUiLCBb
XSkpOworCisvLyBjYWxsX3JlZi53YXN0OjE0OQorbGV0ICQ0ID0gaW5zdGFuY2UoIlx4MDBceDYx
XHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2Zc
eDYwXHgwMFx4MDFceDdmXHgwM1x4MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4
NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgw
MVx4MDNceDAwXHgwMVx4MDBceDBhXHgxMlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MGJceDAw
XHgwMFx4NDFceDAwXHhkMlx4MDBceDE0XHgxYVx4NDFceDAwXHgwYiIpOworYXNzZXJ0X3RyYXAo
KCkgPT4gY2FsbCgkNCwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDox
NjQKKy8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIw
Mjc4LgorLy8gYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4MDNc
eDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4
NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBhXHgw
Zlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MDhceDAwXHgwMFx4NDJceDAwXHhkMlx4MDBceDE0
XHgwYiIpOworCisvLyBjYWxsX3JlZi53YXN0OjE3OQorLy8gRklYTUU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNzguCisvLyBhc3NlcnRfaW52YWxpZCgiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAx
XHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJc
eDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4
MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDEwXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgw
OVx4MDBceDAwXHhkMlx4MDBceDE0XHgxYVx4NDJceDAwXHgwYiIpOworCisvLyBjYWxsX3JlZi53
YXN0OjE5NQorYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDVceDAxXHg2MFx4MDFceDZmXHgwMFx4MDNceDAyXHgwMVx4MDBceDBhXHgwN1x4MDFc
eDA1XHgwMFx4MjBceDAwXHgxNFx4MGIiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5j
dGlvbi1yZWZlcmVuY2VzL3JlZl90eXBlcy5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZl
cmVuY2VzL3JlZl90eXBlcy5qcwppbmRleCA3YmFmOWMyYzk5MWNhYjExNTQxNzY1NjhhMDkxY2U4
NDE5ZmUzYmU5Li5kZGQ3MjkyYjQ2MjYxNWU1OGI0ZDkwOTBjOTg4ODAzY2VkYWQzZmRiIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKKysr
IGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzCkBAIC0xODMs
NiArMTgzLDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNrKCkgewogICAgICJp
bXBvcnRlZCBnbG9iYWwgbTpnIG11c3QgYmUgYSBzYW1lIHR5cGUiCiAgICk7CiAKKwogICAvKgog
ICAgKiAobW9kdWxlCiAgICAqICAgKGltcG9ydCAibSIgImciIChnbG9iYWwgKHJlZiBleHRlcm4p
KSkpCkBAIC0yMDgsNyArMjA5LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNr
KCkgewogICAgICAgKQogICAgIH0sCiAgICAgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLAotICAg
ICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogc2V0X2dsb2JhbCAwIHdpdGgg
dHlwZSBFeHRlcm5yZWYiCisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRl
OiBzZXRfZ2xvYmFsIDAgd2l0aCB0eXBlIFJlZiB3aXRoIGEgdmFyaWFibGUgb2YgdHlwZSBSZWZO
dWxsLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHku
TW9kdWxlKGJ1ZmZlciknKSIKICAgKTsKIH0KIApAQCAtMjcyLDcgKzI3Myw3IEBAIGFzeW5jIGZ1
bmN0aW9uIHRlc3ROb25OdWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkgewogICAgICAgICAiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwN1x4MDFceDYwXHgwMVx4NmZceDAx
XHg2Ylx4NmZceDAzXHgwMlx4MDFceDAwXHgwYVx4MDZceDAxXHgwNFx4MDBceDIwXHgwMFx4MGJc
eDAwXHgwYlx4MDRceDZlXHg2MVx4NmRceDY1XHgwMVx4MDRceDAxXHgwMFx4MDFceDY2IgogICAg
ICAgKSwKICAgICBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgImNvbnRyb2wgZmxvdyBy
ZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYiCisgICAgIldlYkFzc2VtYmx5
Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhw
ZWN0ZWQgdHlwZS4gUmVmTnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAg
KGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScpIgogICApOwogfQog
CkBAIC0zMDAsOCArMzAxLDczIEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3ROb25OdWxsRnVuY3JlZklu
Y29tcGF0aWJsZSgpIHsKICAgICAgICAgIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDdceDAxXHg2MFx4MDFceDcwXHgwMVx4NmJceDcwXHgwM1x4MDJceDAxXHgwMFx4MGFc
eDA2XHgwMVx4MDRceDAwXHgyMFx4MDBceDBiXHgwMFx4MGJceDA0XHg2ZVx4NjFceDZkXHg2NVx4
MDFceDA0XHgwMVx4MDBceDAxXHg2NiIKICAgICAgICksCiAgICAgV2ViQXNzZW1ibHkuQ29tcGls
ZUVycm9yLAotICAgICJjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4g
RnVuY3JlZiIKKyAgICAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRy
b2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBSZWZOdWxsIGlzIG5vdCBhIFJl
ZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1v
ZHVsZShidWZmZXIpJykiCisgICk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RXYXNtSlNHbG9i
YWxzKCkgeworICBjb25zdCBwcm92aWRlckluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUoCisg
ICAgYChtb2R1bGUKKyAgICAgICAgKGZ1bmMgKGV4cG9ydCAiZiIpIChwYXJhbSBmNjQpIChyZXN1
bHQgZjY0KQorICAgICAgICAgIChsb2NhbC5nZXQgMCkpCisgICAgIClgLAorICAgIHt9LAorICAg
IHsgcmVmZXJlbmNlX3R5cGVzOiB0cnVlIH0KKyAgKTsKKworICBjb25zdCB3YXNtR2xvYmFsRnVu
Y3JlZiA9IG5ldyBXZWJBc3NlbWJseS5HbG9iYWwoe3ZhbHVlOidmdW5jcmVmJywgbXV0YWJsZTp0
cnVlfSk7CisKKyAgLy8gTnVsbCBpcyBPSywgYmVjYXVzZSBGdW5jcmVmIGluIHR5cGVkIGZ1bmN0
aW9uIHJlZmVyZW5jZXMgcHJvcG9zYWwgcmVwcmVzZW50cyAocmVmIG51bGwgZnVuY3JlZikuCisg
IGFzc2VydC5lcSh3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSwgbnVsbCk7CisgIHdhc21HbG9iYWxG
dW5jcmVmLnZhbHVlID0gbnVsbDsKKyAgYXNzZXJ0LmVxKHdhc21HbG9iYWxGdW5jcmVmLnZhbHVl
LCBudWxsKTsKKworICAvLyBBIHdhc20gZnVuY3Rpb24gZnJvbSBvdGhlciBpbnN0YW5jZSBpcyBP
SyB0b28gYmVjYXVzZSAocmVmICR0KSA8OiAocmVmIG51bGwgZnVuY3JlZikKKyAgd2FzbUdsb2Jh
bEZ1bmNyZWYudmFsdWUgPSBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZjsKKworICBhc3NlcnQu
dGhyb3dzKAorICAgICgpID0+IHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gY29uc29sZS5sb2cs
CisgICAgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yLAorICAgICJGdW5jcmVmIG11c3QgYmUgYW4g
ZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnd2FzbUdsb2JhbEZ1bmNyZWYudmFs
dWUgPSBjb25zb2xlLmxvZycpIgogICApOworCisgIGNvbnN0IHdhc21HbG9iYWxFeHRlcm4gPSBu
ZXcgV2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTonZXh0ZXJucmVmJywgbXV0YWJsZTp0cnVlfSk7
CisgIGFzc2VydC5lcSh3YXNtR2xvYmFsRXh0ZXJuLnZhbHVlLCB1bmRlZmluZWQpOworICB3YXNt
R2xvYmFsRXh0ZXJuLnZhbHVlID0gY29uc29sZS5sb2c7CisgIGFzc2VydC5lcSh3YXNtR2xvYmFs
RXh0ZXJuLnZhbHVlLCBjb25zb2xlLmxvZyk7CisKKyAgd2FzbUdsb2JhbEV4dGVybi52YWx1ZSA9
IHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mOworICBhc3NlcnQuZXEod2FzbUdsb2JhbEV4dGVy
bi52YWx1ZSwgcHJvdmlkZXJJbnN0YW5jZS5leHBvcnRzLmYpOworfQorCithc3luYyBmdW5jdGlv
biB0ZXN0UmVmVHlwZXNJblRhYmxlcygpIHsKKyAgY29uc3QgcHJvdmlkZXJJbnN0YW5jZSA9IGF3
YWl0IGluc3RhbnRpYXRlKAorICAgIGAobW9kdWxlCisgICAgICAgIChmdW5jIChleHBvcnQgImYi
KSAocGFyYW0gZjY0KSAocmVzdWx0IGY2NCkKKyAgICAgICAgICAobG9jYWwuZ2V0IDApKQorICAg
ICApYCwKKyAgICB7fSwKKyAgICB7IHJlZmVyZW5jZV90eXBlczogdHJ1ZSB9CisgICk7CisKKyAg
Y29uc3Qgd2FzbVRhYmxlRnVuY3JlZiA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7IGluaXRpYWw6
IDEsIG1heGltdW06IDEsIGVsZW1lbnQ6ICJmdW5jcmVmIiB9KTsKKyAgYXNzZXJ0LmVxKHdhc21U
YWJsZUZ1bmNyZWYuZ2V0KDApLCBudWxsKTsKKyAgd2FzbVRhYmxlRnVuY3JlZi5zZXQoMCwgcHJv
dmlkZXJJbnN0YW5jZS5leHBvcnRzLmYpOworICBhc3NlcnQuZXEod2FzbVRhYmxlRnVuY3JlZi5n
ZXQoMCksIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsKKworICBhc3NlcnQudGhyb3dzKAor
ICAgICgpID0+IHdhc21UYWJsZUZ1bmNyZWYuc2V0KDAsIGNvbnNvbGUubG9nKSwKKyAgICBUeXBl
RXJyb3IsCisgICAgIldlYkFzc2VtYmx5LlRhYmxlLnByb3RvdHlwZS5zZXQgZXhwZWN0cyB0aGUg
c2Vjb25kIGFyZ3VtZW50IHRvIGJlIG51bGwgb3IgYW4gaW5zdGFuY2Ugb2YgV2ViQXNzZW1ibHku
RnVuY3Rpb24iCisgICk7CisKKyAgY29uc3Qgd2FzbVRhYmxlRXh0ZXJucmVmID0gbmV3IFdlYkFz
c2VtYmx5LlRhYmxlKHsgaW5pdGlhbDogMSwgbWF4aW11bTogMSwgZWxlbWVudDogImV4dGVybnJl
ZiIgfSk7CisgIGFzc2VydC5lcSh3YXNtVGFibGVFeHRlcm5yZWYuZ2V0KDApLCB1bmRlZmluZWQp
OworICB3YXNtVGFibGVFeHRlcm5yZWYuc2V0KDAsIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5m
KTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIHByb3ZpZGVySW5zdGFu
Y2UuZXhwb3J0cy5mKTsKKworICB3YXNtVGFibGVFeHRlcm5yZWYuc2V0KDAsIGNvbnNvbGUubG9n
KTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIGNvbnNvbGUubG9nKTsK
IH0KIAogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0UmVmVHlwZUxvY2FsKCkpOwpAQCAtMzE0LDMgKzM4
MCw1IEBAIGFzc2VydC5hc3luY1Rlc3QodGVzdEV4dGVybnJlZkNvbXBhdGliaWxpdHkoKSk7CiBh
c3NlcnQuYXN5bmNUZXN0KHRlc3ROb25OdWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkpOwogYXNz
ZXJ0LmFzeW5jVGVzdCh0ZXN0RnVuY3JlZkNvbXBhdGliaWxpdHkoKSk7CiBhc3NlcnQuYXN5bmNU
ZXN0KHRlc3ROb25OdWxsRnVuY3JlZkluY29tcGF0aWJsZSgpKTsKK2Fzc2VydC5hc3luY1Rlc3Qo
dGVzdFdhc21KU0dsb2JhbHMoKSk7Cithc3NlcnQuYXN5bmNUZXN0KHRlc3RSZWZUeXBlc0luVGFi
bGVzKCkpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3dhc20uanNvbiBiL0pTVGVzdHMvd2Fz
bS93YXNtLmpzb24KaW5kZXggOWQyMjVlNGU4MjI0OTY2MDQ0NGZmNDFhZWJiYTI3YzY0Yzc2ZWVm
MS4uMzJjOGFmOGJiZjU3ZWE2MDViMzM1NWE1NmQ4ODJlOGRkZTFlMGVlZCAxMDA2NDQKLS0tIGEv
SlNUZXN0cy93YXNtL3dhc20uanNvbgorKysgYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCkBAIC0x
NiwxMiArMTYsMTEgQEAKICAgICAgICAgInJlZl9udWxsIjogIHsgInR5cGUiOiAidmFyaW50NyIs
ICJ2YWx1ZSI6ICAtMjAsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAicmVmIjog
ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMSwgImIzdHlwZSI6ICJCMzo6
SW50NjQiIH0sCiAgICAgICAgICJmdW5jIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFs
dWUiOiAgLTMyLCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidm9pZCI6ICAgICAg
eyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIg
fSwKLSAgICAgICAgInR5cGVfaWR4IjogIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6IC0x
MjgsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9CisgICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBl
IjogInZhcmludDciLCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9CiAgICAg
fSwKICAgICAidmFsdWVfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgImV4dGVy
bnJlZiIsICJmdW5jcmVmIl0sCiAgICAgImJsb2NrX3R5cGUiOiBbImkzMiIsICJpNjQiLCAiZjMy
IiwgImY2NCIsICJ2b2lkIiwgImV4dGVybnJlZiIsICJmdW5jcmVmIl0sCi0gICAgInJlZl90eXBl
IjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJ0eXBlX2lkeCJdLAorICAgICJyZWZfdHlwZSI6
IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAicmVmIiwgInJlZl9udWxsIl0sCiAgICAgImV4dGVy
bmFsX2tpbmQiOiB7CiAgICAgICAgICJGdW5jdGlvbiI6ICAgIHsgInR5cGUiOiAidWludDgiLCAi
dmFsdWUiOiAwIH0sCiAgICAgICAgICJUYWJsZSI6ICAgICAgIHsgInR5cGUiOiAidWludDgiLCAi
dmFsdWUiOiAxIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442571</attachid>
            <date>2021-10-26 23:20:26 -0700</date>
            <delta_ts>2021-10-27 02:04:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20211027132024.patch</filename>
            <type>text/plain</type>
            <size>79893</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGE2YmE5M2Q4OGQwYTgxN2IxNzljNmM5ZGRhOWNlMjI1NWNjY2E5Li5hMTAzMGY2NjJlZmJkNmI2
NDg3OGNkZjViODFmN2NhZGZmNzYwMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlZCByZWR1bmRhbmQgVHlwZUtpbmQ6OlR5cGVJ
ZHggYmVjYXVzZSBuZXcgUmVmIGFuZCBSZWZOdWxsIG9wY29kZXMgY292ZXIKKyAgICAgICAgdGhl
IHNhbWUgY2FzZXMuCisgICAgICAgIEFsc28gdXNlIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmL0V4dGVybnJlZiB3aGVuIHR5cGVkCisgICAgICAgIGZ1bmN0aW9uIHJlZmVy
ZW5jZXMgcHJvcG9zYWwgaXMgZW5hYmxlZC4KKyAgICAgICAgCisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdSZWYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAoSlNDOjpXYXNtOjpB
aXJJUkdlbmVyYXRvcjo6bW92ZU9wRm9yVmFsdWVUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZExvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFk
ZFJlZkZ1bmMpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6Z1R5cGVJZHgp
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAg
ICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzUmVmVHlwZSk6
CisgICAgICAgIChKU0M6Oldhc206OmlzRXh0ZXJucmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
aXNGdW5jcmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3JlZlR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpFeHRlcm5yZWZUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNTdWJ0eXBlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6aXNEZWZhdWx0YWJsZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJsZUlu
Zm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBh
cnNlRXhwcmVzc2lvbik6CisgICAgICAgICogd2FzbS9XYXNtR2xvYmFsLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6R2xvYmFsOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9i
YWw6OnNldCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBs
KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKToKKyAgICAgICAgKiB3
YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VjdGlvblBh
cnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpUYWJsZTo6d2FzbVR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwOgorICAgICAgICAoSlND
OjpKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5
cGUpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMTAtMjIgIEp1c3Rp
biBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBuaXRz
IGZyb20gMjMyMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmNwcAppbmRleCA2NDU3NGY3YWM5YjAwMGUxYmRiY2FlYTExYzkxNGIyM2IyMjgx
YzcyLi4zOThmNTViM2U3NTY1ZGIzNjI0NmY3ZTFlMjEzMTkzOWUwMTFhOTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKQEAgLTQw
MywxNSArNDAzLDE3IEBAIENTdHJpbmcgQnl0ZWNvZGVEdW1wZXI6OmZvcm1hdENvbnN0YW50KFR5
cGUgdHlwZSwgdWludDY0X3QgY29uc3RhbnQpIGNvbnN0CiAgICAgY2FzZSBUeXBlS2luZDo6RjY0
OgogICAgICAgICByZXR1cm4gdG9DU3RyaW5nKGJpdHdpc2VfY2FzdDxkb3VibGU+KGNvbnN0YW50
KSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVjb2RlKGNvbnN0
YW50KSA9PSBqc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiAibnVsbCI7Ci0gICAgICAgIHJl
dHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkp
OwotICAgIGRlZmF1bHQ6CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoaXNGdW5jcmVmKHR5
cGUpIHx8IGlzRXh0ZXJucmVmKHR5cGUpKSB7CisgICAgICAgICAgICBpZiAoSlNWYWx1ZTo6ZGVj
b2RlKGNvbnN0YW50KSA9PSBqc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gIm51bGwi
OworICAgICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhSYXdQb2ludGVyKGJpdHdpc2VfY2FzdDx2
b2lkKj4oY29uc3RhbnQpKSk7CisgICAgICAgIH0KKwogICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gIiI7CiAgICAgfQorICAgIH0KIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21B
aXJJUkdlbmVyYXRvci5jcHAKaW5kZXggNzkyODJiNzdlNzg2MTYxZDVkZjA4YTZkZjgxYTQyZmVl
MTE4MzlmYy4uZjIzYzE1MGZhNDk1ZmQ1MDI5MzRjYWEzMTZmYWE5NzE0MWJjZDk2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBA
IC00MzQsNyArNDM0LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlZFRtcCBnNjQoKSB7IHJldHVybiB7
IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6STY0IH07IH0KICAgICBUeXBlZFRtcCBnRXh0ZXJucmVm
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZXM6OkV4dGVybnJlZiB9OyB9CiAgICAg
VHlwZWRUbXAgZ0Z1bmNyZWYoKSB7IHJldHVybiB7IG5ld1RtcChCMzo6R1ApLCBUeXBlczo6RnVu
Y3JlZiB9OyB9Ci0gICAgVHlwZWRUbXAgZ1R5cGVJZHgoVHlwZSB0eXBlKSB7IHJldHVybiB7IG5l
d1RtcChCMzo6R1ApLCB0eXBlIH07IH0KKyAgICBUeXBlZFRtcCBnUmVmKFR5cGUgdHlwZSkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgdHlwZSB9OyB9CiAgICAgVHlwZWRUbXAgZjMyKCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkYzMiB9OyB9CiAgICAgVHlwZWRUbXAgZjY0
KCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkZQKSwgVHlwZXM6OkY2NCB9OyB9CiAKQEAgLTQ0Nyw4
ICs0NDcsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGc2NCgpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgcmV0dXJuIGdGdW5jcmVmKCk7Ci0g
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICByZXR1cm4gZ1R5cGVJ
ZHgodHlwZSk7CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKKyAgICAgICAgICAgIHJldHVybiBnUmVmKHR5cGUpOwogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICByZXR1cm4gZ0V4dGVybnJlZigp
OwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC02MjUsNyArNjI2LDggQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0g
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmOgorICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAg
ICAgICAgICByZXN1bHRUeXBlID0gQjM6OkludDY0OwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNjc1LDcgKzY3Nyw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICByZXR1cm4gTW92ZTsKICAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICAgICAgcmV0dXJuIE1vdmVGbG9hdDsKQEAg
LTkzMyw3ICs5MzYsOCBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9k
dWxlSW5mb3JtYXRpb24mIGluZm8sIEIzOjpQcm9jZWR1cmUmIHBybwogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoK
KyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZO
dWxsOgogICAgICAgICAgICAgYXBwZW5kKE1vdmUsIGFyZywgbV9sb2NhbHNbaV0pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTEwMzYsNyArMTA0
MCw4IEBAIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMyX3Qg
Y291bnQpIC0+IFBhcnRpYWxSZXN1bHQKICAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
dW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAg
ICBhcHBlbmQoTW92ZSwgQXJnOjppbW0oSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSksIGxvY2Fs
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CkBAIC0x
MDcyLDcgKzEwNzcsOCBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDb25zdGFudChCYXNpY0Js
b2NrKiBibG9jaywgVHlwZSB0eXBlLCB1aW50NjRfdCB2YWx1ZSkgLQogICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtp
bmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICBhcHBlbmQoYmxv
Y2ssIE1vdmUsIEFyZzo6YmlnSW1tKHZhbHVlKSwgcmVzdWx0KTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtMTExOSw3ICsxMTI1LDcgQEAgYXV0byBBaXJJUkdl
bmVyYXRvcjo6YWRkUmVmRnVuYyh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCkgLT4gUGFydGkKICAgICAvLyBGSVhNRTogRW1pdCB0aGlzIGlubGluZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODUwNj4uCiAgICAgaWYgKE9wdGlvbnM6OnVz
ZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICBTaWduYXR1
cmVJbmRleCBzaWduYXR1cmVJbmRleCA9IG1faW5mby5zaWduYXR1cmVJbmRleEZyb21GdW5jdGlv
bkluZGV4U3BhY2UoaW5kZXgpOwotICAgICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGUgeyBU
eXBlS2luZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9KTsKKyAgICAg
ICAgcmVzdWx0ID0gdG1wRm9yVHlwZShUeXBlIHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5v
LCBzaWduYXR1cmVJbmRleCB9KTsKICAgICB9IGVsc2UKICAgICAgICAgcmVzdWx0ID0gdG1wRm9y
VHlwZShUeXBlczo6RnVuY3JlZik7CiAgICAgZW1pdENDYWxsKCZvcGVyYXRpb25XYXNtUmVmRnVu
YywgcmVzdWx0LCBpbnN0YW5jZVZhbHVlKCksIGFkZENvbnN0YW50KFR5cGVzOjpJMzIsIGluZGV4
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0Nv
bnZlbnRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVu
dGlvbi5oCmluZGV4IDdiZjAwMWVkOTJlZmNiYWZjMGZiYzhhNTBiNGJmNjI3MjVkMmNjZTUuLjU5
MWVlYjI3YjAxNjkwMDdhZmExODNkNDMyNzI5ZmEwY2E1NmFkODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsaW5nQ29udmVudGlvbi5oCkBAIC0xMDcsNyAr
MTA3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIHJldHVy
biBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJBcmdzLCBncEFyZ3VtZW50Q291bnQsIHN0
YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGNjQ6CkBAIC0xOTYsNyArMTk3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVm
TnVsbDoKICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsbExvY2F0aW9uSW1wbChyb2xlLCBncHJB
cmdzLCBncEFyZ3VtZW50Q291bnQsIHN0YWNrT2Zmc2V0KTsKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggOGNjZTM5NWQ4OTJjNWUzOWQ3M2UzMjM0MTg2NDM3NWVi
NDdhNzEwZi4uOWViMTc4NjkxNzA5OTE4YWM5MzY4YjE2MTliMzU4MWRhMzE4Y2MzMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzEsNyArNzEsOCBAQCBpbmxp
bmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJu
cmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmOgorICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgIHJldHVybiBPcHRpb25zOjp1c2VXZWJB
c3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCk7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CkBAIC05NCwyMCArOTUsNjEgQEAgaW5saW5lIEpTU3RyaW5nKiB0eXBlVG9TdHJpbmco
Vk0mIHZtLCBUeXBlS2luZCB0eXBlKQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKK2lubGluZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCit7CisgICAgaWYgKE9wdGlv
bnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0
dXJuIHR5cGUuaXNSZWYoKSB8fCB0eXBlLmlzUmVmTnVsbCgpOworICAgIHJldHVybiB0eXBlLmlz
RnVuY3JlZigpIHx8IHR5cGUuaXNFeHRlcm5yZWYoKTsKK30KKworaW5saW5lIGJvb2wgaXNFeHRl
cm5yZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVk
RnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBpc1JlZlR5cGUodHlwZSkgJiYg
dHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oVHlwZUtpbmQ6OkV4dGVy
bnJlZik7CisgICAgcmV0dXJuIHR5cGUua2luZCA9PSBUeXBlS2luZDo6RXh0ZXJucmVmOworfQor
CitpbmxpbmUgYm9vbCBpc0Z1bmNyZWYoVHlwZSB0eXBlKQoreworICAgIGlmIChPcHRpb25zOjp1
c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBp
c1JlZlR5cGUodHlwZSkgJiYgdHlwZS5pbmRleCA9PSBzdGF0aWNfY2FzdDxTaWduYXR1cmVJbmRl
eD4oVHlwZUtpbmQ6OkZ1bmNyZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6
OkZ1bmNyZWY7Cit9CisKK2lubGluZSBUeXBlIGZ1bmNyZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0
aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICBy
ZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJs
ZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNtOjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6
OkZ1bmNyZWYpIH07CisgICAgcmV0dXJuIFR5cGVzOjpGdW5jcmVmOworfQorCitpbmxpbmUgVHlw
ZSBleHRlcm5yZWZUeXBlKCkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBl
ZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gV2FzbTo6VHlwZSB7IFdhc206
OlR5cGVLaW5kOjpSZWZOdWxsLCBXYXNtOjpOdWxsYWJsZTo6WWVzLCBzdGF0aWNfY2FzdDxXYXNt
OjpTaWduYXR1cmVJbmRleD4oV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZikgfTsKKyAgICByZXR1
cm4gVHlwZXM6OkV4dGVybnJlZjsKK30KKworaW5saW5lIGJvb2wgaXNSZWZXaXRoVHlwZUluZGV4
KFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5j
dGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGlz
UmVmVHlwZSh0eXBlKSAmJiAhaXNFeHRlcm5yZWYodHlwZSkgJiYgIWlzRnVuY3JlZih0eXBlKTsK
K30KKwogaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKIHsKICAg
ICBpZiAoc3ViLmlzTnVsbGFibGUoKSAmJiAhcGFyZW50LmlzTnVsbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN1Yi5pc1R5cGVJZHgoKSAmJiBwYXJlbnQuaXNGdW5j
cmVmKCkpCisgICAgaWYgKChzdWIuaXNSZWYoKSB8fCBzdWIuaXNSZWZOdWxsKCkpICYmIGlzRnVu
Y3JlZihwYXJlbnQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBzdWIgPT0g
cGFyZW50OwotfQorICAgIGlmIChzdWIuaXNSZWYoKSAmJiBwYXJlbnQuaXNSZWZOdWxsKCkgJiYg
c3ViLmluZGV4ID09IHBhcmVudC5pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLWlubGlu
ZSBib29sIGlzUmVmVHlwZShUeXBlIHR5cGUpCi17Ci0gICAgcmV0dXJuIHR5cGUuaXNGdW5jcmVm
KCkgfHwgdHlwZS5pc0V4dGVybnJlZigpIHx8IHR5cGUuaXNUeXBlSWR4KCk7CisgICAgcmV0dXJu
IHN1YiA9PSBwYXJlbnQ7CiB9CiAKIGlubGluZSBib29sIGlzVmFsaWRIZWFwVHlwZUtpbmQoVHlw
ZUtpbmQga2luZCkKQEAgLTEyNCw3ICsxNjYsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5
cGVLaW5kKFR5cGVLaW5kIGtpbmQpCiAKIGlubGluZSBib29sIGlzRGVmYXVsdGFibGVUeXBlKFR5
cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gIWlzUmVmVHlwZSh0eXBlKSB8fCB0eXBlLmlzTnVsbGFi
bGUoKTsKKyAgICByZXR1cm4gIXR5cGUuaXNSZWYoKTsKIH0KIAogZW51bSBjbGFzcyBFeHRlcm5h
bEtpbmQgOiB1aW50OF90IHsKQEAgLTM0NSw3ICszODcsNyBAQCBwdWJsaWM6CiAgICAgdWludDMy
X3QgaW5pdGlhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbDsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IG1heGltdW0oKSBjb25zdCB7IHJldHVybiBtX21heGltdW07IH0KICAgICBU
YWJsZUVsZW1lbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICBUeXBl
IHdhc21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1
bmNyZWYgPyBUeXBlczo6RnVuY3JlZiA6IFR5cGVzOjpFeHRlcm5yZWY7IH0KKyAgICBUeXBlIHdh
c21UeXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYgPyBmdW5jcmVmVHlwZSgpIDogZXh0ZXJucmVmVHlwZSgpOyB9CiAKIHByaXZhdGU6CiAgICAg
dWludDMyX3QgbV9pbml0aWFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
RnVuY3Rpb25QYXJzZXIuaAppbmRleCBmYWQ3ZDc2OGViMTBmNmI1NDljN2M4OTE4YzE3NmRlNWYx
MmZkNjY3Li5mZWYyMThlODQyYTE5Y2U3MDEwNDYwMWRmNDliNDA1NWE0OWFjOGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtMTEw
NSw3ICsxMTA1LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0Up
CiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVy
ZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBt
X2luZm8uc2lnbmF0dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAg
ICAgICAgIG1fZXhwcmVzc2lvblN0YWNrLmNvbnN0cnVjdEFuZEFwcGVuZChUeXBlIHtUeXBlS2lu
ZDo6VHlwZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleH0sIHJlc3VsdCk7CisgICAg
ICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7IFR5cGVL
aW5kOjpSZWYsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfSwgcmVzdWx0KTsKICAgICAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KIApAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAKICAgICBjYXNlIENhbGxS
ZWY6IHsKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1i
bHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpLCAiZnVuY3Rpb24gcmVmZXJlbmNlcyBhcmUgbm90
IGVuYWJsZWQiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighbV9leHByZXNzaW9u
U3RhY2subGFzdCgpLnR5cGUoKS5pc1R5cGVJZHgoKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZh
bHVlICIsIG1fZXhwcmVzc2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CisgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzUmVmV2l0aFR5cGVJbmRleChtX2V4cHJlc3Npb25TdGFj
ay5sYXN0KCkudHlwZSgpKSwgIm5vbi1mdW5jcmVmIGNhbGxfcmVmIHZhbHVlICIsIG1fZXhwcmVz
c2lvblN0YWNrLmxhc3QoKS50eXBlKCkua2luZCk7CiAKICAgICAgICAgY29uc3QgU2lnbmF0dXJl
SW5kZXggY2FsbGVlU2lnbmF0dXJlSW5kZXggPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlw
ZSgpLmluZGV4OwogICAgICAgICBjb25zdCBTaWduYXR1cmUmIGNhbGxlZVNpZ25hdHVyZSA9IFNp
Z25hdHVyZUluZm9ybWF0aW9uOjpnZXQoY2FsbGVlU2lnbmF0dXJlSW5kZXgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcAppbmRleCA1OWRhOTc3YzNjYTZmYTRjYTM1
N2UwY2Y1ZGVhNGQ1NjZiYjBjOTRkLi5jYjNkMTYzYmJlMDhiNmE1NzU4Y2Q5ZGMyOGRlMDY4YTFk
ZTU2ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFs
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtR2xvYmFsLmNwcApAQCAt
NDgsNyArNDgsOCBAQCBKU1ZhbHVlIEdsb2JhbDo6Z2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CiAgICAgICAgIHJldHVybiBqc051bWJlcihwdXJpZnlOYU4oYml0d2lzZV9j
YXN0PGRvdWJsZT4obV92YWx1ZS5tX3ByaW1pdGl2ZSkpKTsKICAgICBjYXNlIFR5cGVLaW5kOjpF
eHRlcm5yZWY6CiAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICBjYXNlIFR5cGVLaW5k
OjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpS
ZWZOdWxsOgogICAgICAgICByZXR1cm4gbV92YWx1ZS5tX2V4dGVybnJlZi5nZXQoKTsKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTg1LDU3ICs4Niw0MyBA
QCB2b2lkIEdsb2JhbDo6c2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
YXJndW1lbnQpCiAgICAgICAgIG1fdmFsdWUubV9wcmltaXRpdmUgPSBiaXR3aXNlX2Nhc3Q8dWlu
dDY0X3Q+KHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgVHlwZUtpbmQ6
OkV4dGVybnJlZjogewotICAgICAgICBSRUxFQVNFX0FTU0VSVChtX293bmVyKTsKLSAgICAgICAg
aWYgKCFtX3R5cGUuaXNOdWxsYWJsZSgpICYmIGFyZ3VtZW50LmlzTnVsbCgpKSB7Ci0gICAgICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJl
ZiBjYW5ub3QgYmUgbnVsbCIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1
bWVudCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4
OgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQo
bV9vd25lcik7Ci0gICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9IG1fdHlwZS5pc051bGxhYmxlKCk7
Ci0gICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7Ci0g
ICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1
bWVudCwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUg
fHwgIWFyZ3VtZW50LmlzTnVsbCgpKSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGds
b2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlv
biIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAobV90eXBl
LmtpbmQgPT0gVHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3JhcHBl
ckZ1bmN0aW9uKSkgewotICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IG1fdHlwZS5pbmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0lu
ZGV4OwotICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAgICBhcmdJ
bmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVy
ZUluZGV4KCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkgewotICAg
ICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3Jl
YXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQg
ZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgZGVmYXVs
dDogeworICAgICAgICBpZiAoaXNFeHRlcm5yZWYobV90eXBlKSkgeworICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQobV9vd25lcik7CisgICAgICAgICAgICBpZiAoIW1fdHlwZS5pc051bGxhYmxl
KCkgJiYgYXJndW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlv
bihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIk5vbi1udWxsIEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBt
X3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVudCk7
CisgICAgICAgIH0gZWxzZSBpZiAoaXNGdW5jcmVmKG1fdHlwZSkgfHwgaXNSZWZXaXRoVHlwZUlu
ZGV4KG1fdHlwZSkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOworICAg
ICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9u
ID0gbnVsbHB0cjsKKyAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2
bSwgYXJndW1lbnQsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFtX3R5
cGUuaXNOdWxsYWJsZSgpIHx8ICFhcmd1bWVudC5pc051bGwoKSkpIHsKKyAgICAgICAgICAgICAg
ICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNz
ZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzUmVmV2l0aFR5cGVJbmRleChtX3R5cGUpICYm
ICFhcmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUlu
ZGV4IHBhcmFtSW5kZXggPSBtX3R5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgV2FzbTo6U2ln
bmF0dXJlSW5kZXggYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24gPyB3YXNtRnVuY3Rpb24tPnNpZ25h
dHVyZUluZGV4KCkgOiB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAg
ICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KSB7CisgICAgICAgICAgICAg
ICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiQXJndW1lbnQgZnVuY3Rp
b24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBtX3ZhbHVlLm1fZXh0ZXJucmVmLnNldChtX293bmVyLT52bSgpLCBtX293bmVyLCBhcmd1bWVu
dCk7CiAgICAgICAgIH0KLSAgICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+
dm0oKSwgbV9vd25lciwgYXJndW1lbnQpOwotICAgICAgICBicmVhazsKICAgICB9Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNp
dG9yPgogdm9pZCBHbG9iYWw6OnZpc2l0QWdncmVnYXRlSW1wbChWaXNpdG9yJiB2aXNpdG9yKQog
ewotICAgIHN3aXRjaCAobV90eXBlLmtpbmQpIHsKLSAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5y
ZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjogeworICAgIGlmIChpc0Z1bmNyZWYobV90
eXBlKSB8fCBpc0V4dGVybnJlZihtX3R5cGUpKSB7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
b3duZXIpOwogICAgICAgICB2aXNpdG9yLmFwcGVuZChtX3ZhbHVlLm1fZXh0ZXJucmVmKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRv
ci5jcHAKaW5kZXggNGM5YTlkMTFlNDE4MmE1NDcyNWYzNWUxZTdlMzY3OWJkMjAwNWZiYi4uOGVk
MjMwOTNmNzEzZTFmNDIyOWViM2YxZmM3NDVkNTQxYmZmYjI3NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCkBAIC02MDksNyArNjA5
LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIGlmIChncHJJbmRleCA8IGdwckNvdW50KQogICAgICAgICAgICAgICAgICsrZ3BySW5k
ZXg7CiAgICAgICAgICAgICBlbHNlIGlmIChzdGFja0luZGV4KysgPj0gc3RhY2tDb3VudCkKQEAg
LTYyNCw4ICs2MjUsNiBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JD
YWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIH0KICAgICB9OwpAQCAtNjY3LDcgKzY2Niw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6
OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4g
TExJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPiBncHJM
aW1pdCkKICAgICAgICAgICAgICAgICBhcmd1bWVudHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbCgtLWdwckluZGV4KTsKICAgICAgICAgICAgIGVsc2UKQEAgLTY4Miw4ICs2ODIsNiBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0
dXJlJiBzaWduYXR1cmUpIC0+IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC02OTcsNyArNjk1LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9y
Q2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6
CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZjoKICAgICAgICAgICAgIGlmIChncHJJbmRleCA+IGdwckxpbWl0KQogICAgICAgICAgICAg
ICAgIHRlbXBvcmFyeVJlc3VsdHNbaV0gPSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgtLWdwcklu
ZGV4KTsKICAgICAgICAgICAgIGVsc2UKQEAgLTcxMiw4ICs3MTEsNiBAQCBhdXRvIExMSW50R2Vu
ZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1
cmUpIC0+IExMSQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZv
aWQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6
OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC03NTUsNyArNzUy
LDggQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0
OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAg
ICAgICAgIGlmIChncHJJbmRleCA8IG1heEdQUkluZGV4KQogICAgICAgICAgICAgICAgIG1fcmVz
dWx0cy5hcHBlbmQodmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwobnVtYmVyT2ZMTEludENhbGxlZVNh
dmVSZWdpc3RlcnMgKyBncHJJbmRleCsrKSk7CiAgICAgICAgICAgICBlbHNlCkBAIC03NzAsOCAr
NzY4LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBWZWMKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgot
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpS
ZWY6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgfQpAQCAtODEyLDcgKzgwOCw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3Vt
ZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKKyAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmOgogICAgICAgICAgICAgYWRkQXJndW1lbnQoaSwgZ3BySW5kZXgsIG1heEdQ
UkluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6
CkBAIC04MjEsOCArODE4LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQXJndW1lbnRzKGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBU
eXBlS2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTgzNywxNiArODMyLDExIEBAIGF1dG8gTExJbnRHZW5lcmF0
b3I6OmFkZExvY2FsKFR5cGUgdHlwZSwgdWludDMyX3QgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
ICAgICBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAgICBtX2NvZGVCbG9jay0+bV9udW1WYXJzICs9
IGNvdW50OwotICAgIHN3aXRjaCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgaWYgKGlzRnVuY3JlZih0
eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgewogICAgICAgICB3aGlsZSAoY291bnQtLSkKICAg
ICAgICAgICAgIG1fdW5pdGlhbGl6ZWRMb2NhbHMuYXBwZW5kKHB1c2goTm9Db25zaXN0ZW5jeUNo
ZWNrKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6CisgICAgfSBlbHNlCiAgICAgICAg
IG1fc3RhY2tTaXplICs9IGNvdW50OwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgcmV0dXJu
IHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMu
Y3BwCmluZGV4IDczNWIzMDM1ZTExMGIzODIxNGU1ZmNjZTIyMDljMDVhZmRjMWVjNmYuLjNiMDJl
YmYwOTI1ODczZTRiZmY3NjM3MzlkMmIwMTg1NzhlMDJiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKQEAgLTU0Myw3ICs1NDMsOCBAQCBKU0Nf
REVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgSQogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gYnVmZmVyLmF0KGlu
ZGV4KTsKIAogICAgICAgICB1aW50NjRfdCB1bmJveGVkVmFsdWUgPSAwOwotICAgICAgICBzd2l0
Y2ggKHNpZ25hdHVyZS0+cmV0dXJuVHlwZShpbmRleCkua2luZCkgeworICAgICAgICBjb25zdCBh
dXRvJiByZXR1cm5UeXBlID0gc2lnbmF0dXJlLT5yZXR1cm5UeXBlKGluZGV4KTsKKyAgICAgICAg
c3dpdGNoIChyZXR1cm5UeXBlLmtpbmQpIHsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgog
ICAgICAgICAgICAgdW5ib3hlZFZhbHVlID0gdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC01NTYsMTcgKzU1NywxNiBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSXRlcmF0ZVJlc3VsdHMsIHZvaWQsIChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGNjQ6CiAgICAgICAgICAgICB1bmJveGVk
VmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6
Ci0gICAgICAgICAgICBpZiAoIXZhbHVlLmlzQ2FsbGFibGUodm0pKSB7Ci0gICAgICAgICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkZ1bmNyZWYgdmFsdWUgaXMg
bm90IGEgZnVuY3Rpb24iX3MpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRl
cm5yZWY6Ci0gICAgICAgICAgICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+
KHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgZGVmYXVsdDogeworICAg
ICAgICAgICAgaWYgKGlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBpc0V4dGVybnJlZihyZXR1cm5U
eXBlKSkgeworICAgICAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYocmV0dXJuVHlwZSkgJiYgIXZh
bHVlLmlzQ2FsbGFibGUodm0pKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsICJGdW5jcmVmIHZhbHVlIGlzIG5vdCBhIGZ1bmN0aW9uIl9z
KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB1bmJveGVkVmFsdWUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtUGFyc2Vy
LmgKaW5kZXggNjNkODlkNjFkNDM1MzBhMjZmYjU0MTVlMjcwMWNjMzBhNzNhMzI4NC4uOGVjZDI1
MTBjY2IyZmJkMzZjODVhZjU1NDNlMzcxMDc0ZDk0YzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21QYXJzZXIuaApAQCAtMzA1LDcgKzMwNSwxMSBAQCBBTFdBWVNfSU5MSU5FIGJv
b2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxlSW5mb3Jt
YXRpb24mCiAgICAgVHlwZUtpbmQgdHlwZUtpbmQgPSBzdGF0aWNfY2FzdDxUeXBlS2luZD4oa2lu
ZCk7CiAgICAgYm9vbCBpc051bGxhYmxlID0gdHJ1ZTsKICAgICBTaWduYXR1cmVJbmRleCBzaWdJ
bmRleCA9IDA7Ci0gICAgaWYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWYgfHwgdHlwZUtpbmQg
PT0gVHlwZUtpbmQ6OlJlZk51bGwpIHsKKworICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJs
eVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkgJiYgKHR5cGVLaW5kID09IFR5cGVLaW5kOjpGdW5j
cmVmIHx8IHR5cGVLaW5kID09IFR5cGVLaW5kOjpFeHRlcm5yZWYpKSB7CisgICAgICAgIHNpZ0lu
ZGV4ID0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJlSW5kZXg+KHR5cGVLaW5kKTsKKyAgICAgICAgdHlw
ZUtpbmQgPSBUeXBlS2luZDo6UmVmTnVsbDsKKyAgICB9IGVsc2UgaWYgKHR5cGVLaW5kID09IFR5
cGVLaW5kOjpSZWYgfHwgdHlwZUtpbmQgPT0gVHlwZUtpbmQ6OlJlZk51bGwpIHsKICAgICAgICAg
aWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTMxOCw5ICszMjIsOCBAQCBBTFdBWVNfSU5M
SU5FIGJvb2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYWx1ZVR5cGUoY29uc3QgTW9kdWxl
SW5mb3JtYXRpb24mCiAgICAgICAgICAgICBUeXBlS2luZCBoZWFwS2luZCA9IHN0YXRpY19jYXN0
PFR5cGVLaW5kPihoZWFwVHlwZSk7CiAgICAgICAgICAgICBpZiAoIWlzVmFsaWRIZWFwVHlwZUtp
bmQoaGVhcEtpbmQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHR5cGVLaW5kID0gaGVhcEtpbmQ7CisgICAgICAgICAgICBzaWdJbmRleCA9IHN0YXRpY19jYXN0
PFNpZ25hdHVyZUluZGV4PihoZWFwS2luZCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICB0eXBlS2luZCA9IFR5cGVLaW5kOjpUeXBlSWR4OwogICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PHNpemVfdD4oaGVhcFR5cGUpID49IGluZm8udXNlZFNpZ25hdHVyZXMuc2l6ZSgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHNpZ0luZGV4ID0gU2lnbmF0
dXJlSW5mb3JtYXRpb246OmdldChpbmZvLnVzZWRTaWduYXR1cmVzW2hlYXBUeXBlXS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAK
aW5kZXggY2ZkYWZmZGQ3YTQyY2M4MWU1YmEzYTYxZTRiYWU4ZWY1ZWNiZDNiYS4uZmVjYzBlNjc1
ZTk5ZTljNjkzZjk2MDgzOGJhZmRhYTJlMDRhM2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtNjMxLDcgKzYzMSw3IEBAIGF1
dG8gU2VjdGlvblBhcnNlcjo6cGFyc2VJbml0RXhwcih1aW50OF90JiBvcGNvZGUsIHVpbnQ2NF90
JiBiaXRzT3JJbXBvcnROdW1iZXIsCiAKICAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2Vt
Ymx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkgewogICAgICAgICAgICAgU2lnbmF0dXJlSW5k
ZXggc2lnbmF0dXJlSW5kZXggPSBtX2luZm8tPnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5k
ZXhTcGFjZShpbmRleCk7Ci0gICAgICAgICAgICByZXN1bHRUeXBlID0geyBUeXBlS2luZDo6VHlw
ZUlkeCwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9OworICAgICAgICAgICAgcmVzdWx0
VHlwZSA9IHsgVHlwZUtpbmQ6OlJlZiwgTnVsbGFibGU6Ok5vLCBzaWduYXR1cmVJbmRleCB9Owog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlc3VsdFR5cGUgPSBUeXBlczo6RnVuY3JlZjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJsZS5jcHAKaW5kZXggZTRmOTNiMTM0
NzdhM2E1ZmIxNGI3MWQ3ZGQzZWEzY2M0MjMzMjJjNi4uYzM2NzVjODI0M2Q3ODk5MzQwYTI2YjFm
MDA0MDk4MTM5Y2M3MjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUu
Y3BwCkBAIC0xNzksOSArMTc5LDkgQEAgREVGSU5FX1ZJU0lUX0FHR1JFR0FURShUYWJsZSk7CiBU
eXBlIFRhYmxlOjp3YXNtVHlwZSgpIGNvbnN0CiB7CiAgICAgaWYgKGlzRXh0ZXJucmVmVGFibGUo
KSkKLSAgICAgICAgcmV0dXJuIFR5cGVzOjpFeHRlcm5yZWY7CisgICAgICAgIHJldHVybiBleHRl
cm5yZWZUeXBlKCk7CiAgICAgQVNTRVJUKGlzRnVuY3JlZlRhYmxlKCkpOwotICAgIHJldHVybiBU
eXBlczo6RnVuY3JlZjsKKyAgICByZXR1cm4gZnVuY3JlZlR5cGUoKTsKIH0KIAogRnVuY1JlZlRh
YmxlKiBUYWJsZTo6YXNGdW5jcmVmVGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNUb1dhc20uY3BwCmluZGV4IDcyYmE4NzQzODlhYTNhZTY5ODc2NTRjMmIzNDY2ZDE1OGJm
OGE3ZmEuLmQxNTVkOGEzNGJmMWIzNTZjODcwZjBiNmZlOTkxMjJlZjE1ZjY5NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKQEAgLTQ1LDEwICs0NSw2IEBA
IHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAg
ICAgICAgICAgICBqaXQubW92ZVRydXN0ZWRWYWx1ZShqc1VuZGVmaW5lZCgpLCBkc3QpOwogICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAgIGppdC5tb3ZlKHNyYy5ncHIo
KSwgZHN0LnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBU
eXBlS2luZDo6STMyOgogICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzcmMuZ3By
KCksIGRzdC5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgaml0LmJveEludDMyKGRzdC5wYXls
b2FkR1BSKCksIGRzdCwgRG9Ob3RIYXZlVGFnUmVnaXN0ZXJzKTsKQEAgLTYzLDkgKzU5LDEyIEBA
IHZvaWQgbWFyc2hhbGxKU1Jlc3VsdChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU2lnbmF0dXJl
JiBzaWduYXR1cmUsIGNvbnN0IENhbGxJCiAgICAgICAgICAgICBpc05hTi5saW5rKCZqaXQpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIGppdC5icmVha3BvaW50KCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDogeworICAgICAgICAgICAgaWYgKGlzRnVuY3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBl
KSkKKyAgICAgICAgICAgICAgICBqaXQubW92ZShzcmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGppdC5icmVha3BvaW50KCk7Cisg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKaW5kZXggOWM1ZjE4YTY4Mzk2
ODk1MmQwNDQ4ZjRkMjgwYjg3ZjYzZjFiYzJjYS4uNTcxZTA1YWFjZmY2MzE2ZDFkY2U1YzY4YzMz
NWY3Y2MxYmIyMzM0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
SlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseUdsb2JhbC5jcHAKQEAgLTEwNSwxNCArMTA1LDE0IEBAIEpTT2JqZWN0
KiBKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjY0OgogICAgICAgICB2YWx1ZVN0cmluZyA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImY2NCIpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2
aWFsU3RyaW5nKHZtLCAiZXh0ZXJucmVmIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIHZhbHVlU3RyaW5nID0ganNOb250cml2aWFs
U3RyaW5nKHZtLCAiZnVuY3JlZiIpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGRlZmF1bHQ6IHsKKyAgICAg
ICAgaWYgKFdhc206OmlzRnVuY3JlZih2YWx1ZVR5cGUpKQorICAgICAgICAgICAgdmFsdWVTdHJp
bmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmdW5jcmVmIik7CisgICAgICAgIGVsc2UgaWYg
KFdhc206OmlzRXh0ZXJucmVmKHZhbHVlVHlwZSkpCisgICAgICAgICAgICB2YWx1ZVN0cmluZyA9
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJlZiIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICB9CiAgICAg
cmVzdWx0LT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJ2YWx1ZSIp
LCB2YWx1ZVN0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL0pTV2ViQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCmluZGV4IGI2MjBlZGNhMjhhOWUyNDI5ZjEyMGNlMTk2
N2EzYjBjMTEyMTM1NzEuLmYyNzE3NzllMGI4ODFkMWRlYzYwYWZjODY2MGZkODliMzc5MzBlNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlI
ZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJs
eUhlbHBlcnMuaApAQCAtMTM5LDkgKzEzOSw5IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBpc1dlYkFz
c2VtYmx5SG9zdEZ1bmN0aW9uKFZNJiB2bSwgSlNWYWx1ZSBvYmplY3QpCiBBTFdBWVNfSU5MSU5F
IEpTVmFsdWUgZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZShjb25zdCBXYXNtOjpUeXBlIHR5
cGUpCiB7CiAgICAgQVNTRVJUKFdhc206OmlzUmVmVHlwZSh0eXBlKSk7Ci0gICAgaWYgKHR5cGUu
aXNFeHRlcm5yZWYoKSkKKyAgICBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpCiAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIEFTU0VSVCh0eXBlLmlzRnVuY3JlZigpKTsKKyAg
ICBBU1NFUlQoV2FzbTo6aXNGdW5jcmVmKHR5cGUpKTsKICAgICByZXR1cm4ganNOdWxsKCk7CiB9
CiAKQEAgLTE3MywyOSArMTczLDYgQEAgQUxXQVlTX0lOTElORSB1aW50NjRfdCBmcm9tSlNWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXYXNtOjpUeXAKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogICAgIHN3aXRjaCAodHlwZS5raW5kKSB7Ci0gICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6VHlwZUlkeDoKLSAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAg
ICAgIGJvb2wgaXNOdWxsYWJsZSA9IHR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICBXZWJBc3Nl
bWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwotICAgICAgICBXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgICAg
IGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwg
d2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkp
Ci0gICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJGdW5j
cmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKLSAgICAgICAgaWYgKHR5
cGUua2luZCA9PSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdh
c21XcmFwcGVyRnVuY3Rpb24pKSB7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBw
YXJhbUluZGV4ID0gdHlwZS5pbmRleDsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4
IGFyZ0luZGV4OwotICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAgICAgICAg
ICBhcmdJbmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNp
Z25hdHVyZUluZGV4KCk7Ci0gICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJB
cmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKTsKLSAg
ICAgICAgfQotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RXh0ZXJucmVmOgotICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpICYmIHZhbHVlLmlzTnVs
bCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAi
Tm9uLW51bGwgRXh0ZXJucmVmIGNhbm5vdCBiZSBudWxsIikpOwotICAgICAgICBicmVhazsKICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpJMzI6CiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgdmFsdWUudG9JbnQzMihnbG9iYWxPYmplY3QpKTsKICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpJNjQ6CkBAIC0yMDQsMTMgKzE4MSwyNSBAQCBBTFdBWVNfSU5MSU5FIHVpbnQ2NF90IGZy
b21KU1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFdhc206OlR5cAog
ICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50MzJfdD4o
dmFsdWUudG9GbG9hdChnbG9iYWxPYmplY3QpKSk7CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RjY0OgogICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4odmFsdWUudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpOwotICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OlZvaWQ6Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuYzoKLSAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpSZWZOdWxsOgotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWZhdWx0OiB7CisgICAg
ICAgIGlmIChXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgeworICAgICAgICAgICAgaWYgKCF0eXBl
LmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dGhyb3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5
UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYgY2Fubm90
IGJlIG51bGwiKSk7CisgICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKHR5cGUpIHx8
IGlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSkgeworICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5j
dGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAg
IGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwg
d2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCF0eXBlLmlzTnVsbGFibGUoKSB8fCAhdmFsdWUuaXNO
dWxsKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0
LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOworICAg
ICAgICAgICAgaWYgKGlzUmVmV2l0aFR5cGVJbmRleCh0eXBlKSAmJiAhdmFsdWUuaXNOdWxsKCkp
IHsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gdHlw
ZS5pbmRleDsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleCA9
IHdhc21GdW5jdGlvbiA/IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKSA6IHdhc21XcmFw
cGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmFt
SW5kZXggIT0gYXJnSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhj
ZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhl
IHJlZmVyZW5jZSB0eXBlIikpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogICAgIH0KLQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dhc21Ub0pTLmNwcAppbmRleCBkNjVmYzYx
MjFiNjA5MGJkN2YyZDQwZDAzYmI0NWVlN2FhNjQwMjM0Li41ODEwNDFiM2NhMzQzM2M3YWZhYmYx
YmUzNDY3NWRhYjdkNGE0ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XYXNtVG9KUy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Fz
bVRvSlMuY3BwCkBAIC0xMDcsNyArMTA3LDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAg
ICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFR5cGVL
aW5kOjpSZWY6CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
Ly8gSGFuZGxlZCBhYm92ZS4KLSAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5cGVJZHg6CiAg
ICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMyOgpAQCAtMTgy
LDcgKzE4MSw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJU
YWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEhhbmRsZWQgYWJvdmUu
Ci0gICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgogICAgICAgICAgICAgY2FzZSBU
eXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoK
ICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoKQEAgLTI3OSwxNCArMjc3LDggQEAgRXhw
ZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRhZz4sIEJpbmRpbmdGYWls
dXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICBhdXRvIGRvbmVMb2NhdGlvbiA9IGppdC5sYWJlbCgp
OwogCiAgICAgaWYgKHNpZ25hdHVyZS5yZXR1cm5Db3VudCgpID09IDEpIHsKLSAgICAgICAgc3dp
dGNoIChzaWduYXR1cmUucmV0dXJuVHlwZSgwKS5raW5kKSB7Ci0gICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlZvaWQ6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKLSAgICAgICAgICAg
IC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0eXBl
cyBpbiB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2YWxp
ZGF0aW9uIGVycm9yLgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjb25zdCBhdXRvJiByZXR1cm5UeXBlID0gc2ln
bmF0dXJlLnJldHVyblR5cGUoMCk7CisgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZS5raW5kKSB7
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDogewogICAgICAgICAgICAgLy8gRklYTUU6IE9w
dGltaXplIEk2NCBleHRyYWN0aW9uIGZyb20gQmlnSW50LgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDA1MwpAQCAtMzI0LDExICszMTYs
NiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmlu
ZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBUeXBlS2luZDo6
RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKLSAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6IHsKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcExpc3QgZG9uZTsKICAgICAgICAgICAgIEZQUlJlZyBkZXN0ID0gd2FzbUNhbGxJ
bmZvLnJlc3VsdHNbMF0uZnByKCk7CkBAIC0zOTAsNiArMzc3LDEzIEBAIEV4cGVjdGVkPE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRv
SlMoVk0mIHZtCiAgICAgICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OiAgeworICAgICAgICAgICAgaWYgKFdhc206
OmlzRnVuY3JlZihyZXR1cm5UeXBlKSB8fCBXYXNtOjppc0V4dGVybnJlZihyZXR1cm5UeXBlKSkK
KyAgICAgICAgICAgICAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgd2FzbUNh
bGxJbmZvLnJlc3VsdHNbMF0uZ3ByKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIC8vIEZvciB0aGUgSmF2YVNjcmlwdCBlbWJlZGRpbmcsIGltcG9ydHMgd2l0aCB0aGVzZSB0
eXBlcyBpbiB0aGVpciBzaWduYXR1cmUgcmV0dXJuIGFyZSBhIFdlYkFzc2VtYmx5Lk1vZHVsZSB2
YWxpZGF0aW9uIGVycm9yLgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoc2lnbmF0dXJlLnJl
dHVybkNvdW50KCkgPiAxKSB7CiAgICAgICAgIEdQUlJlZyB3YXNtQ29udGV4dEluc3RhbmNlR1BS
ID0gUGlubmVkUmVnaXN0ZXJJbmZvOjpnZXQoKS53YXNtQ29udGV4dEluc3RhbmNlUG9pbnRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVu
Y3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5j
dGlvbi5jcHAKaW5kZXggMTk3MThkY2U2OTk2OTAwMWVlMTJkNjQ0Zjg2MjQ1ZTAxNzM2NWIwOC4u
YWEyMmEzZDMxNjRmMWNjOGRmNmMwYmEzNjNhYTZmYWY1MDhhYWQ3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAg
LTI1MywzNyArMjUzLDM5IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRyVGFnPiBX
ZWJBc3NlbWJseUZ1bmN0aW9uOjpqc0NhbGxFbnRyeXBvaW50U2xvdygpCiAgICAgICAgICAgICAg
ICAgaml0Lnplcm9FeHRlbmQzMlRvV29yZChzY3JhdGNoR1BSLCB3YXNtQ2FsbEluZm8ucGFyYW1z
W2ldLmdwcigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1
bmNyZWY6IHsKLSAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBm
dW5jdGlvbi4KLSAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQotICAgICAgICAgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChpc051bGwpOwotICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFu
Y2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOworICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpS
ZWY6CisgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgIGNhc2Ug
V2FzbTo6VHlwZUtpbmQ6OkZ1bmNyZWY6CisgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4
dGVybnJlZjogeworICAgICAgICAgICAgaWYgKCFXYXNtOjppc0V4dGVybnJlZih0eXBlKSkgewor
ICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB3ZSBoYXZlIGEgV0FTTSBleHBvcnRlZCBmdW5jdGlv
bi4KKyAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOworICAg
ICAgICAgICAgICAgIGF1dG8gaXNOdWxsID0gaml0LmJyYW5jaElmTnVsbChzY3JhdGNoR1BSKTsK
KyAgICAgICAgICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQorICAgICAgICAgICAgICAg
ICAgICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKKyAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgICAgIHN0
YWNrTGltaXRHUFJJc0Nsb2JiZXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBqaXQuZW1pdExvYWRT
dHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHN0YWNrTGltaXRHUFIpOwotICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIFN0
cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAg
ICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGppdC5l
bWl0TG9hZFN0cnVjdHVyZSh2bSwgc2NyYXRjaEdQUiwgc2NyYXRjaEdQUiwgc3RhY2tMaW1pdEdQ
Uik7CisgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNj
cmF0Y2hHUFIsIFN0cnVjdHVyZTo6Y2xhc3NJbmZvT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKIAot
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5RnVuY3Rp
b24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMgYmVsb3ciKTsKLSAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIpOworICAg
ICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1bmN0
aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7CisgICAg
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2VtYmx5V3JhcHBl
ckZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7
CiAKLSAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRyKENDYWxs
SGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihX
ZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVu
ZChqaXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbVB0cihXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6aW5mbygp
KSkpOworICAgICAgICAgICAgICAgIGF1dG8gaXNXYXNtRnVuY3Rpb24gPSBqaXQuYnJhbmNoUHRy
KENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihXZWJBc3NlbWJseUZ1bmN0aW9uOjppbmZvKCkpKTsKKyAgICAgICAgICAgICAgICBzbG93
UGF0aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNo
R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rp
b246OmluZm8oKSkpKTsKIAotICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygmaml0KTsK
LSAgICAgICAgICAgIGlmICh0eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHgpIHsK
LSAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwotICAgICAg
ICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNoR1BSLCBX
ZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRleCgpKSwgc2NyYXRj
aEdQUik7Ci0gICAgICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0Nh
bGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKHR5cGUuaW5kZXgpKSk7CisgICAgICAgICAgICAgICAgaXNXYXNtRnVuY3Rpb24ubGluaygm
aml0KTsKKyAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KHR5cGUp
KSB7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkNjQoanNQYXJhbSwgc2NyYXRjaEdQUik7
CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
Y3JhdGNoR1BSLCBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTo6b2Zmc2V0T2ZTaWduYXR1cmVJbmRl
eCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoUHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGlmICh0eXBlLmlzTnVsbGFibGUoKSkKKyAgICAgICAgICAgICAgICAg
ICAgaXNOdWxsLmxpbmsoJmppdCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICh0
eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAgICBpc051bGwubGluaygmaml0KTsKLSAg
ICAgICAgICAgIEZBTExUSFJPVUdIOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkV4dGVybnJlZjogewogICAgICAgICAgICAgaWYgKGlzU3RhY2spIHsKICAgICAgICAg
ICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAg
IGlmICghdHlwZS5pc051bGxhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4
IDhmNjVhZWQ5ZmQxYWJkNzk3ZTRhNjdjODhlZjYxZThhYTcxNDE5NzkuLjEwMDA1NmRlNjE1MGI5
YzE4N2IxMWMwNzllYjhkMWRiYWU3MDBhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3Bw
CkBAIC05NSw5ICs5NSw5IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgICAgIGVsc2Ug
aWYgKHZhbHVlU3RyaW5nID09ICJmNjQiX3MpCiAgICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlw
ZXM6OkY2NDsKICAgICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImFueWZ1bmMiX3MgfHwg
dmFsdWVTdHJpbmcgPT0gImZ1bmNyZWYiX3MpCi0gICAgICAgICAgICB0eXBlID0gV2FzbTo6VHlw
ZXM6OkZ1bmNyZWY7CisgICAgICAgICAgICB0eXBlID0gV2FzbTo6ZnVuY3JlZlR5cGUoKTsKICAg
ICAgICAgZWxzZSBpZiAodmFsdWVTdHJpbmcgPT0gImV4dGVybnJlZiJfcykKLSAgICAgICAgICAg
IHR5cGUgPSBXYXNtOjpUeXBlczo6RXh0ZXJucmVmOworICAgICAgICAgICAgdHlwZSA9IFdhc206
OmV4dGVybnJlZlR5cGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0
ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsICJXZWJBc3NlbWJseS5HbG9iYWwgZXhwZWN0cyBpdHMg
J3ZhbHVlJyBmaWVsZCB0byBiZSB0aGUgc3RyaW5nICdpMzInLCAnaTY0JywgJ2YzMicsICdmNjQn
LCAnYW55ZnVuYycsICdmdW5jcmVmJywgb3IgJ2V4dGVybnJlZiciX3MpKSk7CiAgICAgfQpAQCAt
MTM3LDI0ICsxMzcsMjIgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICAgICAgfQogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjogewot
ICAgICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkKLSAgICAgICAgICAgIGFyZ3VtZW50
ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKLSAgICAgICAgaWYgKCFpc1dl
YkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCBhcmd1bWVudCkgJiYgIWFyZ3VtZW50LmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNy
ZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIikpOwotICAgICAgICAgICAgcmV0
dXJuIHsgfTsKLSAgICAgICAgfQotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNv
ZGUoYXJndW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6RXh0ZXJucmVmOiB7Ci0gICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQot
ICAgICAgICAgICAgYXJndW1lbnQgPSBkZWZhdWx0VmFsdWVGb3JSZWZlcmVuY2VUeXBlKHR5cGUp
OwotICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQpOwotICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OiB7CisgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYo
dHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAg
ICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsK
KyAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJndW1lbnQp
ICYmICFhcmd1bWVudC5pc051bGwoKSkgeworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9u
KGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cihnbG9iYWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVu
Y3Rpb24iKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGluaXRpYWxWYWx1ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKKyAgICAgICAgICAgIGlm
IChhcmd1bWVudC5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVm
YXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlwZSh0eXBlKTsKKyAgICAgICAgICAgIGluaXRpYWxWYWx1
ZSA9IEpTVmFsdWU6OmVuY29kZShhcmd1bWVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICBSZWY8V2Fz
bTo6R2xvYmFsPiB3YXNtR2xvYmFsID0gV2FzbTo6R2xvYmFsOjpjcmVhdGUodHlwZSwgbXV0YWJp
bGl0eSwgaW5pdGlhbFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCBkZWNhYTk4MmY3ZGYy
YWJkMDg2NTRhYTNmMjRmNDE4NzMyMThhNWYyLi45NjkyNmYyZDZiMjdhYjlkMDA0OTdhNGQwYjg3
YTdhYjIyOThhMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0yNTcsMzggKzI1Nyw4IEBAIHZv
aWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhj
ZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1w
b3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm11c3QgYmUgYSBzYW1l
IHR5cGUiKSkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVmFsdWUtPmdsb2JhbCgp
LT5tdXRhYmlsaXR5KCkgIT0gV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkltbXV0YWJsZSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIHNhbWUgbXV0YWJpbGl0eSIpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAobW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBvcnQua2lu
ZEluZGV4XS50eXBlLmtpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6
RnVuY3JlZjogewotICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc051bGxhYmxlID0gZ2xv
YmFsLnR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1i
bHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVs
bHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZ2xvYmFsVmFsdWUtPmdsb2Jh
bCgpLT5nZXQoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21X
cmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gaXNOdWxsYWJsZSA/
ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEg
d2FzbSBleHBvcnRlZCBmdW5jdGlvbiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwg
dm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChn
bG9iYWwudHlwZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rp
b24gfHwgd2FzbVdyYXBwZXJGdW5jdGlvbikpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUuaW5kZXg7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJnSW5kZXg7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdhc21GdW5jdGlvbikKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVy
ZUluZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdJbmRleCA9IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25h
dHVyZUluZGV4KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXgg
IT0gYXJnSW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNl
cHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBv
cnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVuY3Rp
b24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUiKSkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+aW5zdGFuY2Uo
KS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxPYmplY3QpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsLnR5cGUuaXNOdWxsYWJsZSgpICYmIHZh
bHVlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRp
b24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRG
YWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibm9uLW51bGwgZXh0ZXJucmVm
IGNhbm5vdCBiZSBudWxsIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2Ut
Pmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBk
ZWNsYXJlZEdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5k
SW5kZXhdLnR5cGU7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVjbGFyZWRHbG9iYWxU
eXBlLmtpbmQpIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMy
OgogICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6CiAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkYzMjoKQEAgLTI5Niw3ICsyNjYsMzIg
QEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBv
cnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5z
dGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGdsb2JhbFZhbHVl
LT5nbG9iYWwoKS0+Z2V0UHJpbWl0aXZlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKFdhc206OmlzRXh0ZXJucmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2Jh
bE9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2Jh
bC50eXBlLmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVk
IGdsb2JhbCIsICJub24tbnVsbCBleHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGlt
cG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoV2FzbTo6aXNGdW5jcmVmKGRlY2xhcmVkR2xvYmFsVHlwZSkgfHwgV2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KGRlY2xhcmVkR2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3Jh
cHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IGdsb2JhbFZhbHVlLT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24o
dm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghZ2xvYmFs
LnR5cGUuaXNOdWxsYWJsZSgpIHx8ICF2YWx1ZS5pc051bGwoKSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gZ2xvYmFsLnR5cGUuaXNOdWxsYWJs
ZSgpID8gIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3Qg
YmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2Jh
bE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIs
IG1zZykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRoVHlwZUluZGV4KGRlY2xhcmVkR2xvYmFs
VHlwZSkgJiYgIXZhbHVlLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBhcmFtSW5kZXggPSBnbG9iYWwudHlwZS5pbmRleDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJn
SW5kZXggPSB3YXNtRnVuY3Rpb24gPyB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCkgOiB3
YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnRlZCBnbG9iYWwiLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVm
ZXJlbmNlIHR5cGUiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGlt
cG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICBjb25zdCBhdXRvIGdsb2JhbFR5cGUgPSBtb2R1bGVJbmZvcm1hdGlvbi5n
bG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGU7CkBAIC0zMTMsMzMgKzMwOCw2IEBAIHZvaWQg
V2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRzQW5kRXhwb3J0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAKICAgICAgICAgICAgICAgICAgICAgLy8gaWlpLiBBcHBlbmQg
VG9XZWJBc3NlbWJseVZhbHVlKHYpIHRvIGltcG9ydHMuCiAgICAgICAgICAgICAgICAgICAgIHN3
aXRjaCAoZ2xvYmFsVHlwZS5raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJsZSA9
IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgV2ViQXNz
ZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3YXNtV3JhcHBlckZ1bmN0aW9uID0g
bnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RG
dW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYg
KCFpc051bGxhYmxlIHx8ICF2YWx1ZS5pc051bGwoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBtc2cgPSBpc051bGxhYmxlID8gIm11c3QgYmUgYSB3YXNtIGV4
cG9ydGVkIGZ1bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0
aW9uIjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0
ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3Nh
Z2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgbXNnKSkpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbFR5cGUua2luZCA9PSBX
YXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2FzbUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVu
Y3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5k
ZXggcGFyYW1JbmRleCA9IGdsb2JhbC50eXBlLmluZGV4OwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4OwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNz
ZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0
LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhl
IHJlZmVyZW5jZSB0eXBlIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5r
aW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6
OkV4dGVybnJlZjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsVHlwZS5pc051
bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVj
dCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0
IGJlIGEgbm9uLW51bGwgdmFsdWUiKSkpOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0
YW5jZS0+aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmlu
c3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlLnRvSW50MzIoZ2xvYmFs
T2JqZWN0KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM1Niw3ICszMjQs
MjggQEAgdm9pZCBXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRF
eHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
aW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIGJpdHdpc2Vf
Y2FzdDx1aW50NjRfdD4odmFsdWUuYXNOdW1iZXIoKSkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKFdhc206OmlzRXh0ZXJucmVmKGdsb2JhbFR5cGUpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSAmJiB2YWx1ZS5pc051
bGwoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihj
cmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxN
ZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbm9uLW51bGwgdmFs
dWUiKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmluc3RhbmNl
KCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoV2FzbTo6aXNGdW5jcmVmKGdsb2JhbFR5cGUpIHx8IFdhc206Omlz
UmVmV2l0aFR5cGVJbmRleChnbG9iYWxUeXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21XcmFw
cGVyRnVuY3Rpb24gPSBudWxscHRyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh
aXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgdmFsdWUsIHdhc21GdW5jdGlvbiwgd2FzbVdy
YXBwZXJGdW5jdGlvbikgJiYgKCFnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSB8fCAhdmFsdWUuaXNO
dWxsKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1z
ZyA9IGdsb2JhbFR5cGUuaXNOdWxsYWJsZSgpID8gIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1
bmN0aW9uIG9yIG51bGwiIDogIm11c3QgYmUgYSB3YXNtIGV4cG9ydGVkIGZ1bmN0aW9uIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dl
YkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGlt
cG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoV2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bGwoKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xv
YmFsLnR5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNp
Z25hdHVyZUluZGV4IGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uID8gd2FzbUZ1bmN0aW9uLT5zaWdu
YXR1cmVJbmRleCgpIDogd2FzbVdyYXBwZXJGdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNy
ZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1l
c3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBu
b3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5j
ZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTU1NCw3ICs1NDMsOCBAQCB2b2lkIFdlYkFzc2Vt
Ymx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9ydHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgICAgICAgICAgc3dpdGNoIChnbG9iYWwudHlwZS5raW5kKSB7CiAgICAg
ICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6VHlwZUlkeDoKKyAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZjoKKyAgICAg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpJNjQ6
CiAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS93YXNtLmpzb24KaW5kZXggOWQyMjVlNGU4MjI0OTY2MDQ0NGZmNDFhZWJiYTI3YzY0Yzc2
ZWVmMS4uMzJjOGFmOGJiZjU3ZWE2MDViMzM1NWE1NmQ4ODJlOGRkZTFlMGVlZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgpAQCAtMTYsMTIgKzE2LDExIEBACiAgICAgICAgICJy
ZWZfbnVsbCI6ICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIwLCAiYjN0eXBlIjog
IkIzOjpJbnQ2NCIgfSwKICAgICAgICAgInJlZiI6ICAgICAgIHsgInR5cGUiOiAidmFyaW50NyIs
ICJ2YWx1ZSI6ICAtMjEsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6
ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zMiwgImIzdHlwZSI6ICJCMzo6
Vm9pZCIgfSwKLSAgICAgICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6ICAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ0eXBlX2lkeCI6ICB7
ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAtMTI4LCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIg
fQorICAgICAgICAidm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02
NCwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfQogICAgIH0sCiAgICAgInZhbHVlX3R5cGUiOiBbImkz
MiIsICJpNjQiLCAiZjMyIiwgImY2NCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJdLAogICAgICJi
bG9ja190eXBlIjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJleHRlcm5y
ZWYiLCAiZnVuY3JlZiJdLAotICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYi
LCAidHlwZV9pZHgiXSwKKyAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwg
InJlZiIsICJyZWZfbnVsbCJdLAogICAgICJleHRlcm5hbF9raW5kIjogewogICAgICAgICAiRnVu
Y3Rpb24iOiAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMCB9LAogICAgICAgICAiVGFi
bGUiOiAgICAgICB7ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMSB9LApkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI4MzYzMWExNzY4NDZlMjQy
MWQyYjcwOWQyY2I5NjM0ZTM1MzVmMWIuLmMyZTA2MmYzYmJjZTczY2FjMDI5Mjg4ZmY4NjcyYjMx
ZmE3MTMzY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6
aGV0c2tvdkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNd
IEFkZCBjYWxsX3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjk3MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIEFkZCBhIG5ldyByb3V0aW5lIHRvIHJ1biB0eXBlZCBm
dW5jdGlvbiByZWZlcmVuY2VzIHNwZWMgdGVzdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTEwLTIzICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gUmVwbGFjZSBjdXJyZW50IExMVk0gZmxhbmcncyBJ
bnQxMjggd2l0aCBhYnNlaWwtY3BwJ3MgSW50MTI4CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwppbmRleCBjZDA3NWJhNzVmYjdmNjI1ZGJhMjZkNGIxMjUxNDNkOTQyYzExODQ1Li5jNDlhYjIy
NTdiYmNkNGYzODNhNmRkMzVlMjU4OGFlNmJhMDE5ZjJjIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMKQEAgLTEzMzcsNiArMTMzNywxMCBAQCBkZWYgcnVuV2ViQXNzZW1ibHlSZWZlcmVu
Y2VTcGVjVGVzdChtb2RlKQogICAgIHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3RCYXNlKG1vZGUsICJy
ZWYtc3BlYy1oYXJuZXNzIikKIGVuZAogCitkZWYgcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVy
ZW5jZVNwZWNUZXN0KG1vZGUpCisgICAgcnVuV2ViQXNzZW1ibHlTcGVjVGVzdEJhc2UobW9kZSwg
InNwZWMtaGFybmVzcyIsICItLXVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXM9
dHJ1ZSIpCitlbmQKKwogZGVmIHJ1bldlYkFzc2VtYmx5TG93RXhlY3V0YWJsZU1lbW9yeSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJldHVybiBpZiAhJGppdFRlc3RzCiAgICAg
cmV0dXJuIGlmICEkaXNGVExQbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cg
Yi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhY2M4MDRlZWJmYmJmZDI5ZjNjNjNjYWM0MzY2YTA2
MGY2ZmNiNjIxLi5mYWM0MTMxODg5ZWZhZDRjYWI3ODFjN2QyY2QwMjkwODY3OWZhNTY1IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIxLTA5LTMwICBEbWl0cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dBU00tRnVuY3Rpb24tUmVmZXJlbmNlc10gQWRkIGNhbGxf
cmVmIHNwZWMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyOTcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAg
ICAgICAKKyAgICAgICAgQWRkIHRlc3RzIGZvciBjYWxsX3JlZiBpbnN0cnVjdGlvbiBmcm9tIHRo
ZSBzcGVjIHJlcG86CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9mdW5j
dGlvbi1yZWZlcmVuY2VzL2Jsb2IvbWFzdGVyL3Rlc3QvY29yZS9jYWxsX3JlZi53YXN0LgorICAg
ICAgICBBbHNvIGFkZGVkIHRlc3RzIGZvciBGdW5jcmVmL0V4dGVybnJlZiBpbiBXYXNtIHRhYmxl
cyBhbmQgZ2xvYmFscyB0byB0ZXN0CisgICAgICAgIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmID0gKHJlZiBudWxsIGZ1bmNyZWYpLgorICAgICAgICAKKyAgICAgICAgKiB3
YXNtLnlhbWw6CisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMv
Y2FsbF9yZWYud2FzdC5qczogQWRkZWQuCisgICAgICAgICogd2FzbS9mdW5jdGlvbi1yZWZlcmVu
Y2VzL3JlZl90eXBlcy5qczoKKyAgICAgICAgKGFzeW5jIHRlc3RSZWZHbG9iYWxDaGVjayk6Cisg
ICAgICAgIChhc3luYyB0ZXN0Tm9uTnVsbEV4dGVybnJlZkluY29tcGF0aWJsZSk6CisgICAgICAg
IChhc3luYyB0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUpOgorICAgICAgICAoYXN5bmMg
dGVzdFdhc21KU0dsb2JhbHMpOgorICAgICAgICAoYXN5bmMgdGVzdFJlZlR5cGVzSW5UYWJsZXMp
OgorICAgICAgICAqIHdhc20vd2FzbS5qc29uOgorCiAyMDIxLTEwLTIzICBQaGlsbGlwIE1hdGVz
ICA8cG1hdGVzQGlnYWxpYS5jb20+CiAKICAgICAgICAgdXBkYXRlIHRlc3QyNjIKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvd2FzbS55YW1sIGIvSlNUZXN0cy93YXNtLnlhbWwKaW5kZXggMWY0NTFiYzkx
MThjY2FjMzM5ODk3MGVhNDliMjU4OWNhZjMzY2MyNy4uYzBjYTMwZDIzZGFhNThiMDk0Y2U0ZjUx
ZmQzYjk4Mjk3Mjc3NWRlZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtLnlhbWwKKysrIGIvSlNU
ZXN0cy93YXNtLnlhbWwKQEAgLTEzNyw2ICsxMzcsOSBAQAogLSBwYXRoOiB3YXNtL3RocmVhZHMt
c3BlYy10ZXN0cy93YWl0LWxhcmdlLndhc3QuanMKICAgY21kOiBydW5XZWJBc3NlbWJseVNwZWNU
ZXN0IDpub3JtYWwKIAorLSBwYXRoOiB3YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0
cy9jYWxsX3JlZi53YXN0LmpzCisgIGNtZDogcnVuV2ViQXNzZW1ibHlGdW5jdGlvblJlZmVyZW5j
ZVNwZWNUZXN0IDpub3JtYWwKKwogLSBwYXRoOiB3YXNtL3NwZWMtdGVzdHMvYWRkcmVzcy53YXN0
LmpzCiAgIGNtZDogcnVuV2ViQXNzZW1ibHlTcGVjVGVzdCA6bm9ybWFsCiAtIHBhdGg6IHdhc20v
c3BlYy10ZXN0cy9hbGlnbi53YXN0LmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rp
b24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMgYi9KU1Rlc3RzL3dhc20v
ZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2NhbGxfcmVmLndhc3QuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDcyYzU2NzJiMDEwODhiYmJjMzg5OTQxZGUxYWViNmJiNzU1ZjIxMgotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9y
ZWYud2FzdC5qcwpAQCAtMCwwICsxLDk2IEBACitsZXQgJDEgPSBpbnN0YW5jZSgiXHgwMFx4NjFc
eDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgxOFx4MDRceDYwXHgwMVx4N2ZceDAxXHg3Zlx4
NjBceDAxXHg3ZVx4MDFceDdlXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHg2MFx4MDJceDZiXHgw
MFx4N2ZceDAxXHg3Zlx4MDNceDBhXHgwOVx4MDNceDAwXHgwMFx4MDBceDAxXHgwMlx4MDFceDAx
XHgwMVx4MDZceDFmXHgwNVx4NmJceDAxXHgwMFx4ZDJceDA0XHgwYlx4NmJceDAyXHgwMFx4ZDJc
eDA1XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA2XHgwYlx4NmJceDAxXHgwMFx4ZDJceDA3XHgwYlx4
NmJceDAxXHgwMFx4ZDJceDA4XHgwYlx4MDdceDJhXHgwNlx4MDNceDcyXHg3NVx4NmVceDAwXHgw
M1x4MDNceDY2XHg2MVx4NjNceDAwXHgwNFx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYz
XHgwMFx4MDVceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDZceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBc
eDA3XHgwM1x4NmZceDY0XHg2NFx4MDBceDA4XHgwOVx4MTdceDA1XHgwM1x4MDBceDAyXHgwMVx4
MDJceDAzXHgwMFx4MDFceDA0XHgwM1x4MDBceDAxXHgwNVx4MDNceDAwXHgwMVx4MDZceDAzXHgw
MFx4MDJceDA3XHgwOFx4MGFceGE3XHgwMVx4MDlceDA3XHgwMFx4MjBceDAxXHgyMFx4MDBceDE0
XHgwYlx4MDdceDAwXHgyMFx4MDBceDIwXHgwMFx4NmNceDBiXHgwN1x4MDBceDQxXHgwMFx4MjBc
eDAwXHg2Ylx4MGJceDE1XHgwMVx4MDJceDZjXHgwMFx4ZDJceDAxXHgyMVx4MDFceGQyXHgwMlx4
MjFceDAyXHgyMFx4MDBceDIwXHgwMVx4MTRceDIwXHgwMlx4MTRceDBiXHgxNlx4MDBceDIwXHgw
MFx4NTBceDA0XHg3ZVx4NDJceDAxXHgwNVx4MjBceDAwXHgyMFx4MDBceDQyXHgwMVx4N2RceDIz
XHgwMFx4MTRceDdlXHgwYlx4MGJceDE4XHgwMFx4MjBceDAwXHg1MFx4MDRceDdlXHgyMFx4MDFc
eDA1XHgyMFx4MDBceDQyXHgwMVx4N2RceDIwXHgwMFx4MjBceDAxXHg3ZVx4MjNceDAxXHgxNFx4
MGJceDBiXHgxZVx4MDBceDIwXHgwMFx4NDJceDAxXHg1OFx4MDRceDdlXHg0Mlx4MDFceDA1XHgy
MFx4MDBceDQyXHgwMlx4N2RceDIzXHgwMlx4MTRceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAy
XHgxNFx4N2NceDBiXHgwYlx4MTNceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDQyXHgyY1x4MDVc
eDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDA0XHgxNFx4MGJceDBiXHgxNFx4MDBceDIwXHgwMFx4
NTBceDA0XHg3ZVx4NDJceGUzXHgwMFx4MDVceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAzXHgx
NFx4MGJceDBiIik7CisKK2Fzc2VydF9yZXR1cm4oKCkgPT4gY2FsbCgkMSwgInJ1biIsIFswXSks
IDApOworYXNzZXJ0X3JldHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzNdKSwgLTkpOworCisv
LyBjYWxsX3JlZi53YXN0Ojk5CisvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIChyZWYubnVsbCA8
aGVhcHR5cGU+KTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcw
Ny4KKy8vIChhc3NlcnRfdHJhcCAoaW52b2tlICJudWxsIikgIm51bGwgZnVuY3Rpb24iKQorCisv
LyBjYWxsX3JlZi53YXN0Ojk5CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
NVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMAorcnVuKCgpID0+IGNhbGwoaW5z
dGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4
MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2
Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1
XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBc
eDAxXHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRz
KCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZh
YyIgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDEK
K3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgw
MFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAx
XHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdc
eDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4
NDBceDQyXHgwNVx4MTBceDAwXHgwMVx4NDJceGY4XHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDUpKSAoaTY0LmNvbnN0IDEyMCkp
CisKKy8vIGNhbGxfcmVmLndhc3Q6MTAyCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4
NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgw
MVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2MVx4NjNceDAw
XHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFc
eDBhXHgxZVx4MDFceDFjXHgwMFx4MDJceDQwXHg0Mlx4MTlceDEwXHgwMFx4MDFceDQyXHg4MFx4
ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgw
Zlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFz
c2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAoaTY0LmNvbnN0IDI1KSkgKGk2NC5jb25zdCA3MDM0
NTM1Mjc3NTczOTYzNzc2KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDMKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4
NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgz
MVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAw
XHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBc
eDAyXHg0MFx4NDJceDAwXHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0NVx4
MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkp
OyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25zdCAwKSAoaTY0
LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwNAorcnVuKCgp
ID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4
MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgw
Mlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAy
XHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFc
eDE1XHgwMFx4MDJceDQwXHg0Mlx4MDFceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4
NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1
biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0
IDEpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA1
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwYVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgw
ZVx4MDFceDAyXHgyNFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDE4XHgwMVx4MTZceDAwXHgwMlx4NDBceDQyXHgwNVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4
ZjhceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEi
LCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNj
IiAoaTY0LmNvbnN0IDUpIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMTIwKSkKKworLy8gY2Fs
bF9yZWYud2FzdDoxMDYKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZk
XHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2Vc
eDAxXHg3ZVx4MDJceDBlXHgwMVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4
NjNceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MjBceDAxXHgxZVx4MDBceDAyXHg0MFx4NDJceDE5XHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHg4MFx4ODBceDgwXHhkZVx4ODdceDkyXHhlY1x4Y2ZceGUxXHgwMFx4MDFc
eDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJy
dW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjLWFjYyIgKGk2NC5jb25z
dCAyNSkgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCA3MDM0NTM1Mjc3NTczOTYzNzc2KQorCisv
LyBjYWxsX3JlZi53YXN0OjExMQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCAwKSkg
KGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTIKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJm
aWIiIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTEz
CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4
MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgw
MVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3
XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJc
eDQwXHg0Mlx4MDJceDEwXHgwMFx4MDFceDQyXHgwMlx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4
MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2Vy
dF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDIpKSAoaTY0LmNvbnN0IDIpKQorCisv
LyBjYWxsX3JlZi53YXN0OjExNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdl
XHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4NjlceDYyXHgwMFx4MDFc
eDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4
MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDA1XHgxMFx4MDBceDAxXHg0Mlx4MDhceDAxXHg1
MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVu
IiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIgKGk2NC5jb25zdCA1KSkg
KGk2NC5jb25zdCA4KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTUKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHgxNFx4MTBceDAw
XHgwMVx4NDJceGMyXHhkNVx4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImZpYiIgKGk2NC5jb25zdCAyMCkpIChpNjQuY29uc3QgMTA5NDYpKQorCisvLyBjYWxs
X3JlZi53YXN0OjExNworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRc
eDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4
N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgw
M1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1
XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTgKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgwNFx4
NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIi
LCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChp
bnZva2UgImV2ZW4iIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgOTkpKQorCisvLyBjYWxsX3Jl
Zi53YXN0OjExOQorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAx
XHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2Vc
eDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4
MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgw
MVx4MTRceDAwXHgwMlx4NDBceDQyXHhlNFx4MDBceDEwXHgwMFx4MDFceDQyXHgyY1x4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZXZlbiIgKGk2NC5jb25zdCAxMDAp
KSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjAKK3J1bigoKSA9PiBjYWxs
KGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4
NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGJceDAxXHgwMlx4MjRceDMxXHgw
NFx4NjVceDc2XHg2NVx4NmVceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAz
XHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJceDQwXHg0Mlx4Y2Rc
eDAwXHgxMFx4MDBceDAxXHg0Mlx4ZTNceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA5OSkpCisKKy8v
IGNhbGxfcmVmLndhc3Q6MTIxCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2Vc
eDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4
MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgx
Nlx4MDFceDE0XHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAx
XHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAi
cnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAw
KSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTIyCitydW4oKCkgPT4gY2Fs
bChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJc
eDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4
MDNceDZmXHg2NFx4NjRceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3
Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEw
XHgwMFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAib2RkIiAoaTY0LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gY2FsbF9yZWYud2Fz
dDoxMjMKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBc
eDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4
MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgw
MFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAw
XHgwMlx4NDBceDQyXHhjOFx4MDFceDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVc
eDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10p
KTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgIm9kZCIgKGk2NC5jb25zdCAyMDApKSAoaTY0
LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjQKK3J1bigoKSA9PiBjYWxsKGluc3Rh
bmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAw
XHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZc
eDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4
NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBceDEwXHgw
MFx4MDFceDQyXHgyY1x4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9y
dHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAi
b2RkIiAoaTY0LmNvbnN0IDc3KSkgKGk2NC5jb25zdCA0NCkpCisKKy8vIFVucmVhY2hhYmxlIHR5
cGluZy4KKworLy8gY2FsbF9yZWYud2FzdDoxMjkKK2xldCAkMiA9IGluc3RhbmNlKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA1XHgwMVx4NjBceDAwXHgwMVx4N2ZceDAz
XHgwMlx4MDFceDAwXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVceDYxXHg2M1x4Njhc
eDYxXHg2Mlx4NmNceDY1XHgwMFx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MDBceDE0XHgwYiIp
OworYXNzZXJ0X3RyYXAoKCkgPT4gY2FsbCgkMiwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8g
Y2FsbF9yZWYud2FzdDoxMzcKK2xldCAkMyA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgw
MVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4MDBceDAx
XHg3Zlx4MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVceDZlXHg3Mlx4NjVc
eDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4MDFceDAzXHgwMFx4
MDFceDAwXHgwYVx4MGRceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA2XHgwMFx4MDBceGQyXHgw
MFx4MTRceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQzLCAidW5yZWFjaGFibGUiLCBb
XSkpOworCisvLyBjYWxsX3JlZi53YXN0OjE0OQorbGV0ICQ0ID0gaW5zdGFuY2UoIlx4MDBceDYx
XHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2Zc
eDYwXHgwMFx4MDFceDdmXHgwM1x4MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4
NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgw
MVx4MDNceDAwXHgwMVx4MDBceDBhXHgxMlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MGJceDAw
XHgwMFx4NDFceDAwXHhkMlx4MDBceDE0XHgxYVx4NDFceDAwXHgwYiIpOworYXNzZXJ0X3RyYXAo
KCkgPT4gY2FsbCgkNCwgInVucmVhY2hhYmxlIiwgW10pKTsKKworLy8gY2FsbF9yZWYud2FzdDox
NjQKKy8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIw
Mjc4LgorLy8gYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdmXHgwM1x4MDNc
eDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4
NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4MDBceDBhXHgw
Zlx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MDhceDAwXHgwMFx4NDJceDAwXHhkMlx4MDBceDE0
XHgwYiIpOworCisvLyBjYWxsX3JlZi53YXN0OjE3OQorLy8gRklYTUU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNzguCisvLyBhc3NlcnRfaW52YWxpZCgiXHgw
MFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAx
XHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJc
eDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4
MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDEwXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgw
OVx4MDBceDAwXHhkMlx4MDBceDE0XHgxYVx4NDJceDAwXHgwYiIpOworCisvLyBjYWxsX3JlZi53
YXN0OjE5NQorYXNzZXJ0X2ludmFsaWQoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAw
XHgwMVx4MDVceDAxXHg2MFx4MDFceDZmXHgwMFx4MDNceDAyXHgwMVx4MDBceDBhXHgwN1x4MDFc
eDA1XHgwMFx4MjBceDAwXHgxNFx4MGIiKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5j
dGlvbi1yZWZlcmVuY2VzL3JlZl90eXBlcy5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZl
cmVuY2VzL3JlZl90eXBlcy5qcwppbmRleCA3YmFmOWMyYzk5MWNhYjExNTQxNzY1NjhhMDkxY2U4
NDE5ZmUzYmU5Li44NmJlYzYxOTk4YWIwMjkwYTA4ZjVkMjQ5OGE5ZDUzMTE5YjIzZTU0IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKKysr
IGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzCkBAIC0yMDgs
NyArMjA4LDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdFJlZkdsb2JhbENoZWNrKCkgewogICAgICAg
KQogICAgIH0sCiAgICAgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLAotICAgICJXZWJBc3NlbWJs
eS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogc2V0X2dsb2JhbCAwIHdpdGggdHlwZSBFeHRlcm5y
ZWYiCisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBzZXRfZ2xvYmFs
IDAgd2l0aCB0eXBlIFJlZiB3aXRoIGEgdmFyaWFibGUgb2YgdHlwZSBSZWZOdWxsLCBpbiBmdW5j
dGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJ1ZmZl
ciknKSIKICAgKTsKIH0KIApAQCAtMjcyLDcgKzI3Miw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3RO
b25OdWxsRXh0ZXJucmVmSW5jb21wYXRpYmxlKCkgewogICAgICAgICAiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwN1x4MDFceDYwXHgwMVx4NmZceDAxXHg2Ylx4NmZceDAz
XHgwMlx4MDFceDAwXHgwYVx4MDZceDAxXHgwNFx4MDBceDIwXHgwMFx4MGJceDAwXHgwYlx4MDRc
eDZlXHg2MVx4NmRceDY1XHgwMVx4MDRceDAxXHgwMFx4MDFceDY2IgogICAgICAgKSwKICAgICBX
ZWJBc3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGgg
dW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYiCisgICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vz
bid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4g
UmVmTnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcg
J25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScpIgogICApOwogfQogCkBAIC0zMDAsMTAg
KzMwMCw3NSBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUo
KSB7CiAgICAgICAgICJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA3XHgw
MVx4NjBceDAxXHg3MFx4MDFceDZiXHg3MFx4MDNceDAyXHgwMVx4MDBceDBhXHgwNlx4MDFceDA0
XHgwMFx4MjBceDAwXHgwYlx4MDBceDBiXHgwNFx4NmVceDYxXHg2ZFx4NjVceDAxXHgwNFx4MDFc
eDAwXHgwMVx4NjYiCiAgICAgICApLAogICAgIFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwKLSAg
ICAiY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEZ1bmNyZWYiCisg
ICAgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0
dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gUmVmTnVsbCBpcyBub3QgYSBSZWYsIGluIGZ1bmN0
aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVy
KScpIgogICApOwogfQogCithc3luYyBmdW5jdGlvbiB0ZXN0V2FzbUpTR2xvYmFscygpIHsKKyAg
Y29uc3QgcHJvdmlkZXJJbnN0YW5jZSA9IGF3YWl0IGluc3RhbnRpYXRlKAorICAgIGAobW9kdWxl
CisgICAgICAgIChmdW5jIChleHBvcnQgImYiKSAocGFyYW0gZjY0KSAocmVzdWx0IGY2NCkKKyAg
ICAgICAgICAobG9jYWwuZ2V0IDApKQorICAgICApYCwKKyAgICB7fSwKKyAgICB7IHJlZmVyZW5j
ZV90eXBlczogdHJ1ZSB9CisgICk7CisKKyAgY29uc3Qgd2FzbUdsb2JhbEZ1bmNyZWYgPSBuZXcg
V2ViQXNzZW1ibHkuR2xvYmFsKHt2YWx1ZTonZnVuY3JlZicsIG11dGFibGU6dHJ1ZX0pOworCisg
IC8vIE51bGwgaXMgT0ssIGJlY2F1c2UgRnVuY3JlZiBpbiB0eXBlZCBmdW5jdGlvbiByZWZlcmVu
Y2VzIHByb3Bvc2FsIHJlcHJlc2VudHMgKHJlZiBudWxsIGZ1bmNyZWYpLgorICBhc3NlcnQuZXEo
d2FzbUdsb2JhbEZ1bmNyZWYudmFsdWUsIG51bGwpOworICB3YXNtR2xvYmFsRnVuY3JlZi52YWx1
ZSA9IG51bGw7CisgIGFzc2VydC5lcSh3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSwgbnVsbCk7CisK
KyAgLy8gQSB3YXNtIGZ1bmN0aW9uIGZyb20gb3RoZXIgaW5zdGFuY2UgaXMgT0sgdG9vIGJlY2F1
c2UgKHJlZiAkdCkgPDogKHJlZiBudWxsIGZ1bmNyZWYpCisgIHdhc21HbG9iYWxGdW5jcmVmLnZh
bHVlID0gcHJvdmlkZXJJbnN0YW5jZS5leHBvcnRzLmY7CisKKyAgYXNzZXJ0LnRocm93cygKKyAg
ICAoKSA9PiB3YXNtR2xvYmFsRnVuY3JlZi52YWx1ZSA9IGNvbnNvbGUubG9nLAorICAgIFdlYkFz
c2VtYmx5LlJ1bnRpbWVFcnJvciwKKyAgICAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdh
c20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ3dhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gY29uc29s
ZS5sb2cnKSIKKyAgKTsKKworICBjb25zdCB3YXNtR2xvYmFsRXh0ZXJuID0gbmV3IFdlYkFzc2Vt
Ymx5Lkdsb2JhbCh7dmFsdWU6J2V4dGVybnJlZicsIG11dGFibGU6dHJ1ZX0pOworICBhc3NlcnQu
ZXEod2FzbUdsb2JhbEV4dGVybi52YWx1ZSwgdW5kZWZpbmVkKTsKKyAgd2FzbUdsb2JhbEV4dGVy
bi52YWx1ZSA9IGNvbnNvbGUubG9nOworICBhc3NlcnQuZXEod2FzbUdsb2JhbEV4dGVybi52YWx1
ZSwgY29uc29sZS5sb2cpOworCisgIHdhc21HbG9iYWxFeHRlcm4udmFsdWUgPSBwcm92aWRlcklu
c3RhbmNlLmV4cG9ydHMuZjsKKyAgYXNzZXJ0LmVxKHdhc21HbG9iYWxFeHRlcm4udmFsdWUsIHBy
b3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdFJlZlR5
cGVzSW5UYWJsZXMoKSB7CisgIGNvbnN0IHByb3ZpZGVySW5zdGFuY2UgPSBhd2FpdCBpbnN0YW50
aWF0ZSgKKyAgICBgKG1vZHVsZQorICAgICAgICAoZnVuYyAoZXhwb3J0ICJmIikgKHBhcmFtIGY2
NCkgKHJlc3VsdCBmNjQpCisgICAgICAgICAgKGxvY2FsLmdldCAwKSkKKyAgICAgKWAsCisgICAg
e30sCisgICAgeyByZWZlcmVuY2VfdHlwZXM6IHRydWUgfQorICApOworCisgIGNvbnN0IHdhc21U
YWJsZUZ1bmNyZWYgPSBuZXcgV2ViQXNzZW1ibHkuVGFibGUoeyBpbml0aWFsOiAxLCBtYXhpbXVt
OiAxLCBlbGVtZW50OiAiZnVuY3JlZiIgfSk7CisgIGFzc2VydC5lcSh3YXNtVGFibGVGdW5jcmVm
LmdldCgwKSwgbnVsbCk7CisgIHdhc21UYWJsZUZ1bmNyZWYuc2V0KDAsIHByb3ZpZGVySW5zdGFu
Y2UuZXhwb3J0cy5mKTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUZ1bmNyZWYuZ2V0KDApLCBwcm92
aWRlckluc3RhbmNlLmV4cG9ydHMuZik7CisKKyAgYXNzZXJ0LnRocm93cygKKyAgICAoKSA9PiB3
YXNtVGFibGVGdW5jcmVmLnNldCgwLCBjb25zb2xlLmxvZyksCisgICAgVHlwZUVycm9yLAorICAg
ICJXZWJBc3NlbWJseS5UYWJsZS5wcm90b3R5cGUuc2V0IGV4cGVjdHMgdGhlIHNlY29uZCBhcmd1
bWVudCB0byBiZSBudWxsIG9yIGFuIGluc3RhbmNlIG9mIFdlYkFzc2VtYmx5LkZ1bmN0aW9uIgor
ICApOworCisgIGNvbnN0IHdhc21UYWJsZUV4dGVybnJlZiA9IG5ldyBXZWJBc3NlbWJseS5UYWJs
ZSh7IGluaXRpYWw6IDEsIG1heGltdW06IDEsIGVsZW1lbnQ6ICJleHRlcm5yZWYiIH0pOworICBh
c3NlcnQuZXEod2FzbVRhYmxlRXh0ZXJucmVmLmdldCgwKSwgdW5kZWZpbmVkKTsKKyAgd2FzbVRh
YmxlRXh0ZXJucmVmLnNldCgwLCBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZik7CisgIGFzc2Vy
dC5lcSh3YXNtVGFibGVFeHRlcm5yZWYuZ2V0KDApLCBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMu
Zik7CisKKyAgd2FzbVRhYmxlRXh0ZXJucmVmLnNldCgwLCBjb25zb2xlLmxvZyk7CisgIGFzc2Vy
dC5lcSh3YXNtVGFibGVFeHRlcm5yZWYuZ2V0KDApLCBjb25zb2xlLmxvZyk7Cit9CisKIGFzc2Vy
dC5hc3luY1Rlc3QodGVzdFJlZlR5cGVMb2NhbCgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdE5v
bk51bGxSZWZUeXBlTG9jYWwoKSk7CiBhc3NlcnQuYXN5bmNUZXN0KHRlc3RSZWZUeXBlSW5TaWdu
YXR1cmUoKSk7CkBAIC0zMTQsMyArMzc5LDUgQEAgYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0RXh0ZXJu
cmVmQ29tcGF0aWJpbGl0eSgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdE5vbk51bGxFeHRlcm5y
ZWZJbmNvbXBhdGlibGUoKSk7CiBhc3NlcnQuYXN5bmNUZXN0KHRlc3RGdW5jcmVmQ29tcGF0aWJp
bGl0eSgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdE5vbk51bGxGdW5jcmVmSW5jb21wYXRpYmxl
KCkpOworYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0V2FzbUpTR2xvYmFscygpKTsKK2Fzc2VydC5hc3lu
Y1Rlc3QodGVzdFJlZlR5cGVzSW5UYWJsZXMoKSk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20v
d2FzbS5qc29uIGIvSlNUZXN0cy93YXNtL3dhc20uanNvbgppbmRleCA5ZDIyNWU0ZTgyMjQ5NjYw
NDQ0ZmY0MWFlYmJhMjdjNjRjNzZlZWYxLi4zMmM4YWY4YmJmNTdlYTYwNWIzMzU1YTU2ZDg4MmU4
ZGRlMWUwZWVkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCisrKyBiL0pTVGVz
dHMvd2FzbS93YXNtLmpzb24KQEAgLTE2LDEyICsxNiwxMSBAQAogICAgICAgICAicmVmX251bGwi
OiAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMCwgImIzdHlwZSI6ICJCMzo6SW50
NjQiIH0sCiAgICAgICAgICJyZWYiOiAgICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUi
OiAgLTIxLCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfSwKICAgICAgICAgImZ1bmMiOiAgICAgIHsg
InR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMzIsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0s
Ci0gICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTY0
LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidHlwZV9pZHgiOiAgeyAidHlwZSI6
ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTEyOCwgImIzdHlwZSI6ICJCMzo6SW50NjQiIH0KKyAgICAg
ICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNjQsICJiM3R5
cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAogICAgICJ2YWx1ZV90eXBlIjogWyJpMzIiLCAiaTY0
IiwgImYzMiIsICJmNjQiLCAiZXh0ZXJucmVmIiwgImZ1bmNyZWYiXSwKICAgICAiYmxvY2tfdHlw
ZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiLCAiZXh0ZXJucmVmIiwgImZ1
bmNyZWYiXSwKLSAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwgInR5cGVf
aWR4Il0sCisgICAgInJlZl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVybnJlZiIsICJyZWYiLCAi
cmVmX251bGwiXSwKICAgICAiZXh0ZXJuYWxfa2luZCI6IHsKICAgICAgICAgIkZ1bmN0aW9uIjog
ICAgeyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDAgfSwKICAgICAgICAgIlRhYmxlIjogICAg
ICAgeyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDEgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442573</attachid>
            <date>2021-10-27 02:04:53 -0700</date>
            <delta_ts>2021-10-27 12:29:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229710-20211027160451.patch</filename>
            <type>text/plain</type>
            <size>79946</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
M2RmMWNhN2Y3OWUwNWE3MjQyZmIxNjUxMzhhNDU5Mjc3ZTA3ZThiLi43ZmJkOTM2MGUyZGY2NDk3
OTY5ZTJiZTY4OWNmMjZiNGFlZjUzYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NyBAQAorMjAyMS0wOS0zMCAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLUZ1bmN0aW9uLVJlZmVyZW5jZXNdIEFkZCBjYWxs
X3JlZiBzcGVjIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk3MTAKKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgUmVtb3ZlZCByZWR1bmRhbmQgVHlwZUtpbmQ6OlR5cGVJ
ZHggYmVjYXVzZSBuZXcgUmVmIGFuZCBSZWZOdWxsIG9wY29kZXMgY292ZXIKKyAgICAgICAgdGhl
IHNhbWUgY2FzZXMuCisgICAgICAgIEFsc28gdXNlIG5ldyBpbnRlcm5hbCByZXByZXNlbnRhdGlv
biBvZiBGdW5jcmVmL0V4dGVybnJlZiB3aGVuIHR5cGVkCisgICAgICAgIGZ1bmN0aW9uIHJlZmVy
ZW5jZXMgcHJvcG9zYWwgaXMgZW5hYmxlZC4KKyAgICAgICAgCisgICAgICAgICogYnl0ZWNvZGUv
Qnl0ZWNvZGVEdW1wZXIuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpCeXRlY29kZUR1bXBlcjo6
Zm9ybWF0Q29uc3RhbnQgY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmdSZWYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6dG1wRm9yVHlwZSk6CisgICAgICAgIChKU0M6
Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q0NhbGwpOgorICAgICAgICAoSlNDOjpXYXNtOjpB
aXJJUkdlbmVyYXRvcjo6bW92ZU9wRm9yVmFsdWVUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
QWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OmFkZExvY2FsKToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0
b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFk
ZFJlZkZ1bmMpOgorICAgICAgICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6Z1R5cGVJZHgp
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUNhbGxpbmdDb252ZW50aW9uLmg6CisgICAg
ICAgIChKU0M6Oldhc206Oldhc21DYWxsaW5nQ29udmVudGlvbjo6bWFyc2hhbGxMb2NhdGlvbiBj
b25zdCk6CisgICAgICAgIChKU0M6Oldhc206OkpTQ2FsbGluZ0NvbnZlbnRpb246Om1hcnNoYWxs
TG9jYXRpb24gY29uc3QpOgorICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5oOgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206OmlzUmVmVHlwZSk6
CisgICAgICAgIChKU0M6Oldhc206OmlzRXh0ZXJucmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6
aXNGdW5jcmVmKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3JlZlR5cGUpOgorICAgICAgICAo
SlNDOjpXYXNtOjpFeHRlcm5yZWZUeXBlKToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNSZWZXaXRo
VHlwZUluZGV4KToKKyAgICAgICAgKEpTQzo6V2FzbTo6aXNTdWJ0eXBlKToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6aXNEZWZhdWx0YWJsZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpUYWJsZUlu
Zm9ybWF0aW9uOjp3YXNtVHlwZSBjb25zdCk6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBh
cnNlRXhwcmVzc2lvbik6CisgICAgICAgICogd2FzbS9XYXNtR2xvYmFsLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6R2xvYmFsOjpnZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpXYXNtOjpHbG9i
YWw6OnNldCk6CisgICAgICAgIChKU0M6Oldhc206Okdsb2JhbDo6dmlzaXRBZ2dyZWdhdGVJbXBs
KToKKyAgICAgICAgKiB3YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
Oldhc206OkxMSW50R2VuZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVlKToK
KyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRMb2NhbCk6CisgICAgICAgICogd2Fz
bS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206OkpTQ19ERUZJTkVfSklU
X09QRVJBVElPTik6CisgICAgICAgICogd2FzbS9XYXNtUGFyc2VyLmg6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKToKKyAgICAgICAgKiB3
YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6U2VjdGlvblBh
cnNlcjo6cGFyc2VJbml0RXhwcik6CisgICAgICAgICogd2FzbS9XYXNtVGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpXYXNtOjpUYWJsZTo6d2FzbVR5cGUgY29uc3QpOgorICAgICAgICAqIHdhc20v
anMvSlNUb1dhc20uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjptYXJzaGFsbEpTUmVzdWx0KToK
KyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwOgorICAgICAgICAoSlND
OjpKU1dlYkFzc2VtYmx5R2xvYmFsOjp0eXBlKToKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNz
ZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OmRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5
cGUpOgorICAgICAgICAqIHdhc20vanMvV2FzbVRvSlMuY3BwOgorICAgICAgICAoSlNDOjpXYXNt
Ojp3YXNtVG9KUyk6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6
V2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3cpOgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1v
ZHVsZVJlY29yZC5jcHA6CisgICAgICAgIChKU0M6OldlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjps
aW5rSW1wbCk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIwMjEtMTAtMjYgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjg0MjU1LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUR1bXBlci5jcHAKaW5kZXggNjQ1NzRmN2FjOWIwMDBlMWJkYmNhZWExMWM5MTRi
MjNiMjI4MWM3Mi4uMzk4ZjU1YjNlNzU2NWRiMzYyNDZmN2UxZTIxMzE5MzllMDExYTk3NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3Bw
CkBAIC00MDMsMTUgKzQwMywxNyBAQCBDU3RyaW5nIEJ5dGVjb2RlRHVtcGVyOjpmb3JtYXRDb25z
dGFudChUeXBlIHR5cGUsIHVpbnQ2NF90IGNvbnN0YW50KSBjb25zdAogICAgIGNhc2UgVHlwZUtp
bmQ6OkY2NDoKICAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhiaXR3aXNlX2Nhc3Q8ZG91YmxlPihj
b25zdGFudCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
Ci0gICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgaWYgKEpTVmFsdWU6OmRlY29k
ZShjb25zdGFudCkgPT0ganNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gIm51bGwiOwotICAg
ICAgICByZXR1cm4gdG9DU3RyaW5nKFJhd1BvaW50ZXIoYml0d2lzZV9jYXN0PHZvaWQqPihjb25z
dGFudCkpKTsKLSAgICBkZWZhdWx0OgorICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgaWYgKGlzRnVu
Y3JlZih0eXBlKSB8fCBpc0V4dGVybnJlZih0eXBlKSkgeworICAgICAgICAgICAgaWYgKEpTVmFs
dWU6OmRlY29kZShjb25zdGFudCkgPT0ganNOdWxsKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
ICJudWxsIjsKKyAgICAgICAgICAgIHJldHVybiB0b0NTdHJpbmcoUmF3UG9pbnRlcihiaXR3aXNl
X2Nhc3Q8dm9pZCo+KGNvbnN0YW50KSkpOworICAgICAgICB9CisKICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KKyAgICB9CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdhc20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDc5MjgyYjc3ZTc4NjE2MWQ1ZGYwOGE2ZGY4
MWE0MmZlZTExODM5ZmMuLmYyM2MxNTBmYTQ5NWZkNTAyOTM0Y2FhMzE2ZmFhOTcxNDFiY2Q5NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9y
LmNwcApAQCAtNDM0LDcgKzQzNCw3IEBAIHByaXZhdGU6CiAgICAgVHlwZWRUbXAgZzY0KCkgeyBy
ZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlwZXM6Okk2NCB9OyB9CiAgICAgVHlwZWRUbXAgZ0V4
dGVybnJlZigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIFR5cGVzOjpFeHRlcm5yZWYgfTsg
fQogICAgIFR5cGVkVG1wIGdGdW5jcmVmKCkgeyByZXR1cm4geyBuZXdUbXAoQjM6OkdQKSwgVHlw
ZXM6OkZ1bmNyZWYgfTsgfQotICAgIFR5cGVkVG1wIGdUeXBlSWR4KFR5cGUgdHlwZSkgeyByZXR1
cm4geyBuZXdUbXAoQjM6OkdQKSwgdHlwZSB9OyB9CisgICAgVHlwZWRUbXAgZ1JlZihUeXBlIHR5
cGUpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpHUCksIHR5cGUgfTsgfQogICAgIFR5cGVkVG1wIGYz
MigpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpGUCksIFR5cGVzOjpGMzIgfTsgfQogICAgIFR5cGVk
VG1wIGY2NCgpIHsgcmV0dXJuIHsgbmV3VG1wKEIzOjpGUCksIFR5cGVzOjpGNjQgfTsgfQogCkBA
IC00NDcsOCArNDQ3LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBnNjQoKTsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgICAgIHJldHVybiBnRnVuY3Jl
ZigpOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgcmV0dXJu
IGdUeXBlSWR4KHR5cGUpOworICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAgICAgICByZXR1cm4gZ1JlZih0eXBlKTsKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAgcmV0dXJuIGdFeHRl
cm5yZWYoKTsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOgpAQCAtNjI1LDcgKzYyNiw4IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgICAgICBj
YXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5j
cmVmOgotICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgICAgIGNh
c2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAg
ICAgICAgICAgICAgICAgcmVzdWx0VHlwZSA9IEIzOjpJbnQ2NDsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTY3NSw3ICs2NzcsOCBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgor
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgcmV0dXJuIE1vdmU7
CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAgICAgIHJldHVybiBNb3ZlRmxv
YXQ7CkBAIC05MzMsNyArOTM2LDggQEAgQWlySVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKGNv
bnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvLCBCMzo6UHJvY2VkdXJlJiBwcm8KICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6CiAg
ICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlR5
cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoKKyAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGFwcGVuZChNb3ZlLCBhcmcsIG1fbG9jYWxzW2ldKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGMzI6CkBAIC0xMDM2
LDcgKzEwNDAsOCBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVp
bnQzMl90IGNvdW50KSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgIHN3aXRjaCAodHlwZS5raW5k
KSB7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBl
S2luZDo6RnVuY3JlZjoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAg
ICAgICAgICAgYXBwZW5kKE1vdmUsIEFyZzo6aW1tKEpTVmFsdWU6OmVuY29kZShqc051bGwoKSkp
LCBsb2NhbCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6STMy
OgpAQCAtMTA3Miw3ICsxMDc3LDggQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkQ29uc3RhbnQo
QmFzaWNCbG9jayogYmxvY2ssIFR5cGUgdHlwZSwgdWludDY0X3QgdmFsdWUpIC0KICAgICBjYXNl
IFR5cGVLaW5kOjpJNjQ6CiAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgIGNhc2Ug
VHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICBjYXNl
IFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgYXBw
ZW5kKGJsb2NrLCBNb3ZlLCBBcmc6OmJpZ0ltbSh2YWx1ZSksIHJlc3VsdCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKQEAgLTExMTksNyArMTEyNSw3IEBAIGF1dG8g
QWlySVJHZW5lcmF0b3I6OmFkZFJlZkZ1bmModWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBl
JiByZXN1bHQpIC0+IFBhcnRpCiAgICAgLy8gRklYTUU6IEVtaXQgdGhpcyBpbmxpbmUgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1MDY+LgogICAgIGlmIChPcHRp
b25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpIHsKICAgICAgICAg
U2lnbmF0dXJlSW5kZXggc2lnbmF0dXJlSW5kZXggPSBtX2luZm8uc2lnbmF0dXJlSW5kZXhGcm9t
RnVuY3Rpb25JbmRleFNwYWNlKGluZGV4KTsKLSAgICAgICAgcmVzdWx0ID0gdG1wRm9yVHlwZShU
eXBlIHsgVHlwZUtpbmQ6OlR5cGVJZHgsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfSk7
CisgICAgICAgIHJlc3VsdCA9IHRtcEZvclR5cGUoVHlwZSB7IFR5cGVLaW5kOjpSZWYsIE51bGxh
YmxlOjpObywgc2lnbmF0dXJlSW5kZXggfSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHJlc3VsdCA9
IHRtcEZvclR5cGUoVHlwZXM6OkZ1bmNyZWYpOwogICAgIGVtaXRDQ2FsbCgmb3BlcmF0aW9uV2Fz
bVJlZkZ1bmMsIHJlc3VsdCwgaW5zdGFuY2VWYWx1ZSgpLCBhZGRDb25zdGFudChUeXBlczo6STMy
LCBpbmRleCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNh
bGxpbmdDb252ZW50aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGlu
Z0NvbnZlbnRpb24uaAppbmRleCA3YmYwMDFlZDkyZWZjYmFmYzBmYmM4YTUwYjRiZjYyNzI1ZDJj
Y2U1Li41OTFlZWIyN2IwMTY5MDA3YWZhMTgzZDQzMjcyOWZhMGNhNTZhZDgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGluZ0NvbnZlbnRpb24uaApAQCAt
MTA3LDcgKzEwNyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0
ZXJucmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CiAgICAgICAgICAg
ICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9sZSwgZ3ByQXJncywgZ3BBcmd1bWVudENv
dW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkYzMjoKICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RjY0OgpAQCAtMTk2LDcgKzE5Nyw4IEBAIHByaXZhdGU6CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAg
ICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpU
eXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgICAgIGNhc2UgVHlwZUtp
bmQ6OlJlZk51bGw6CiAgICAgICAgICAgICByZXR1cm4gbWFyc2hhbGxMb2NhdGlvbkltcGwocm9s
ZSwgZ3ByQXJncywgZ3BBcmd1bWVudENvdW50LCBzdGFja09mZnNldCk7CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkYzMjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCmluZGV4IDhjY2UzOTVkODkyYzVlMzlkNzNlMzIzNDE4
NjQzNzVlYjQ3YTcxMGYuLjllYjE3ODY5MTcwOTkxOGFjOTM2OGIxNjE5YjM1ODFkYTMxOGNjMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKQEAgLTcxLDcgKzcxLDgg
QEAgaW5saW5lIGJvb2wgaXNWYWx1ZVR5cGUoVHlwZSB0eXBlKQogICAgIGNhc2UgVHlwZUtpbmQ6
OkV4dGVybnJlZjoKICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAgIGNhc2UgVHlwZUtpbmQ6OlJl
ZjoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICByZXR1cm4gT3B0aW9uczo6
dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwpAQCAtOTQsMjAgKzk1LDYxIEBAIGlubGluZSBKU1N0cmluZyogdHlwZVRv
U3RyaW5nKFZNJiB2bSwgVHlwZUtpbmQgdHlwZSkKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCitpbmxpbmUgYm9vbCBpc1JlZlR5cGUoVHlwZSB0eXBlKQoreworICAgIGlm
IChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAg
ICAgIHJldHVybiB0eXBlLmlzUmVmKCkgfHwgdHlwZS5pc1JlZk51bGwoKTsKKyAgICByZXR1cm4g
dHlwZS5pc0Z1bmNyZWYoKSB8fCB0eXBlLmlzRXh0ZXJucmVmKCk7Cit9CisKK2lubGluZSBib29s
IGlzRXh0ZXJucmVmKFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoT3B0aW9uczo6dXNlV2ViQXNzZW1i
bHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICByZXR1cm4gaXNSZWZUeXBlKHR5
cGUpICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8U2lnbmF0dXJlSW5kZXg+KFR5cGVLaW5k
OjpFeHRlcm5yZWYpOworICAgIHJldHVybiB0eXBlLmtpbmQgPT0gVHlwZUtpbmQ6OkV4dGVybnJl
ZjsKK30KKworaW5saW5lIGJvb2wgaXNGdW5jcmVmKFR5cGUgdHlwZSkKK3sKKyAgICBpZiAoT3B0
aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpKQorICAgICAgICBy
ZXR1cm4gaXNSZWZUeXBlKHR5cGUpICYmIHR5cGUuaW5kZXggPT0gc3RhdGljX2Nhc3Q8U2lnbmF0
dXJlSW5kZXg+KFR5cGVLaW5kOjpGdW5jcmVmKTsKKyAgICByZXR1cm4gdHlwZS5raW5kID09IFR5
cGVLaW5kOjpGdW5jcmVmOworfQorCitpbmxpbmUgVHlwZSBmdW5jcmVmVHlwZSgpCit7CisgICAg
aWYgKE9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAg
ICAgICAgcmV0dXJuIFdhc206OlR5cGUgeyBXYXNtOjpUeXBlS2luZDo6UmVmTnVsbCwgV2FzbTo6
TnVsbGFibGU6Olllcywgc3RhdGljX2Nhc3Q8V2FzbTo6U2lnbmF0dXJlSW5kZXg+KFdhc206OlR5
cGVLaW5kOjpGdW5jcmVmKSB9OworICAgIHJldHVybiBUeXBlczo6RnVuY3JlZjsKK30KKworaW5s
aW5lIFR5cGUgZXh0ZXJucmVmVHlwZSgpCit7CisgICAgaWYgKE9wdGlvbnM6OnVzZVdlYkFzc2Vt
Ymx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSkKKyAgICAgICAgcmV0dXJuIFdhc206OlR5cGUg
eyBXYXNtOjpUeXBlS2luZDo6UmVmTnVsbCwgV2FzbTo6TnVsbGFibGU6Olllcywgc3RhdGljX2Nh
c3Q8V2FzbTo6U2lnbmF0dXJlSW5kZXg+KFdhc206OlR5cGVLaW5kOjpFeHRlcm5yZWYpIH07Cisg
ICAgcmV0dXJuIFR5cGVzOjpFeHRlcm5yZWY7Cit9CisKK2lubGluZSBib29sIGlzUmVmV2l0aFR5
cGVJbmRleChUeXBlIHR5cGUpCit7CisgICAgaWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5
cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiBpc1JlZlR5cGUodHlwZSkgJiYgIWlzRXh0ZXJucmVmKHR5cGUpICYmICFpc0Z1bmNyZWYo
dHlwZSk7Cit9CisKIGlubGluZSBib29sIGlzU3VidHlwZShUeXBlIHN1YiwgVHlwZSBwYXJlbnQp
CiB7CiAgICAgaWYgKHN1Yi5pc051bGxhYmxlKCkgJiYgIXBhcmVudC5pc051bGxhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChzdWIuaXNUeXBlSWR4KCkgJiYgcGFyZW50
LmlzRnVuY3JlZigpKQorICAgIGlmICgoc3ViLmlzUmVmKCkgfHwgc3ViLmlzUmVmTnVsbCgpKSAm
JiBpc0Z1bmNyZWYocGFyZW50KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4g
c3ViID09IHBhcmVudDsKLX0KKyAgICBpZiAoc3ViLmlzUmVmKCkgJiYgcGFyZW50LmlzUmVmTnVs
bCgpICYmIHN1Yi5pbmRleCA9PSBwYXJlbnQuaW5kZXgpCisgICAgICAgIHJldHVybiB0cnVlOwog
Ci1pbmxpbmUgYm9vbCBpc1JlZlR5cGUoVHlwZSB0eXBlKQotewotICAgIHJldHVybiB0eXBlLmlz
RnVuY3JlZigpIHx8IHR5cGUuaXNFeHRlcm5yZWYoKSB8fCB0eXBlLmlzVHlwZUlkeCgpOworICAg
IHJldHVybiBzdWIgPT0gcGFyZW50OwogfQogCiBpbmxpbmUgYm9vbCBpc1ZhbGlkSGVhcFR5cGVL
aW5kKFR5cGVLaW5kIGtpbmQpCkBAIC0xMjQsNyArMTY2LDcgQEAgaW5saW5lIGJvb2wgaXNWYWxp
ZEhlYXBUeXBlS2luZChUeXBlS2luZCBraW5kKQogCiBpbmxpbmUgYm9vbCBpc0RlZmF1bHRhYmxl
VHlwZShUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuICFpc1JlZlR5cGUodHlwZSkgfHwgdHlwZS5p
c051bGxhYmxlKCk7CisgICAgcmV0dXJuICF0eXBlLmlzUmVmKCk7CiB9CiAKIGVudW0gY2xhc3Mg
RXh0ZXJuYWxLaW5kIDogdWludDhfdCB7CkBAIC0zNDUsNyArMzg3LDcgQEAgcHVibGljOgogICAg
IHVpbnQzMl90IGluaXRpYWwoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWw7IH0KICAgICBzdGQ6
Om9wdGlvbmFsPHVpbnQzMl90PiBtYXhpbXVtKCkgY29uc3QgeyByZXR1cm4gbV9tYXhpbXVtOyB9
CiAgICAgVGFibGVFbGVtZW50VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0g
ICAgVHlwZSB3YXNtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUYWJsZUVsZW1lbnRU
eXBlOjpGdW5jcmVmID8gVHlwZXM6OkZ1bmNyZWYgOiBUeXBlczo6RXh0ZXJucmVmOyB9CisgICAg
VHlwZSB3YXNtVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBUYWJsZUVsZW1lbnRUeXBl
OjpGdW5jcmVmID8gZnVuY3JlZlR5cGUoKSA6IGV4dGVybnJlZlR5cGUoKTsgfQogCiBwcml2YXRl
OgogICAgIHVpbnQzMl90IG1faW5pdGlhbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggZmFkN2Q3NjhlYjEwZjZiNTQ5YzdjODkxOGMx
NzZkZTVmMTJmZDY2Ny4uZmVmMjE4ZTg0MmExOWNlNzAxMDQ2MDFkZjQ5YjQwNTVhNDlhYzhjMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2Vy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgK
QEAgLTExMDUsNyArMTEwNSw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFU
RV9DQVNFKQogCiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rp
b25SZWZlcmVuY2VzKCkpIHsKICAgICAgICAgICAgIFNpZ25hdHVyZUluZGV4IHNpZ25hdHVyZUlu
ZGV4ID0gbV9pbmZvLnNpZ25hdHVyZUluZGV4RnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShpbmRleCk7
Ci0gICAgICAgICAgICBtX2V4cHJlc3Npb25TdGFjay5jb25zdHJ1Y3RBbmRBcHBlbmQoVHlwZSB7
VHlwZUtpbmQ6OlR5cGVJZHgsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXh9LCByZXN1bHQp
OworICAgICAgICAgICAgbV9leHByZXNzaW9uU3RhY2suY29uc3RydWN0QW5kQXBwZW5kKFR5cGUg
eyBUeXBlS2luZDo6UmVmLCBOdWxsYWJsZTo6Tm8sIHNpZ25hdHVyZUluZGV4IH0sIHJlc3VsdCk7
CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAKQEAgLTEyNDcsNyArMTI0Nyw3
IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogCiAgICAgY2Fz
ZSBDYWxsUmVmOiB7CiAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdl
YkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMoKSwgImZ1bmN0aW9uIHJlZmVyZW5jZXMg
YXJlIG5vdCBlbmFibGVkIik7Ci0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1fZXhw
cmVzc2lvblN0YWNrLmxhc3QoKS50eXBlKCkuaXNUeXBlSWR4KCksICJub24tZnVuY3JlZiBjYWxs
X3JlZiB2YWx1ZSAiLCBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOworICAg
ICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1JlZldpdGhUeXBlSW5kZXgobV9leHByZXNz
aW9uU3RhY2subGFzdCgpLnR5cGUoKSksICJub24tZnVuY3JlZiBjYWxsX3JlZiB2YWx1ZSAiLCBt
X2V4cHJlc3Npb25TdGFjay5sYXN0KCkudHlwZSgpLmtpbmQpOwogCiAgICAgICAgIGNvbnN0IFNp
Z25hdHVyZUluZGV4IGNhbGxlZVNpZ25hdHVyZUluZGV4ID0gbV9leHByZXNzaW9uU3RhY2subGFz
dCgpLnR5cGUoKS5pbmRleDsKICAgICAgICAgY29uc3QgU2lnbmF0dXJlJiBjYWxsZWVTaWduYXR1
cmUgPSBTaWduYXR1cmVJbmZvcm1hdGlvbjo6Z2V0KGNhbGxlZVNpZ25hdHVyZUluZGV4KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21HbG9iYWwuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5jcHAKaW5kZXggNTlkYTk3N2MzY2E2
ZmE0Y2EzNTdlMGNmNWRlYTRkNTY2YmIwYzk0ZC4uY2IzZDE2M2JiZTA4YjZhNTc1OGNkOWRjMjhk
ZTA2OGExZGU1NmYxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUdsb2JhbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUdsb2JhbC5j
cHAKQEAgLTQ4LDcgKzQ4LDggQEAgSlNWYWx1ZSBHbG9iYWw6OmdldChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAogICAgICAgICByZXR1cm4ganNOdW1iZXIocHVyaWZ5TmFOKGJp
dHdpc2VfY2FzdDxkb3VibGU+KG1fdmFsdWUubV9wcmltaXRpdmUpKSk7CiAgICAgY2FzZSBUeXBl
S2luZDo6RXh0ZXJucmVmOgogICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgY2FzZSBU
eXBlS2luZDo6VHlwZUlkeDoKKyAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CisgICAgY2FzZSBUeXBl
S2luZDo6UmVmTnVsbDoKICAgICAgICAgcmV0dXJuIG1fdmFsdWUubV9leHRlcm5yZWYuZ2V0KCk7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC04NSw1NyAr
ODYsNDMgQEAgdm9pZCBHbG9iYWw6OnNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIGFyZ3VtZW50KQogICAgICAgICBtX3ZhbHVlLm1fcHJpbWl0aXZlID0gYml0d2lzZV9j
YXN0PHVpbnQ2NF90Pih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIFR5
cGVLaW5kOjpFeHRlcm5yZWY6IHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9vd25lcik7Ci0g
ICAgICAgIGlmICghbV90eXBlLmlzTnVsbGFibGUoKSAmJiBhcmd1bWVudC5pc051bGwoKSkgewot
ICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVh
dGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBF
eHRlcm5yZWYgY2Fubm90IGJlIG51bGwiKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25l
ciwgYXJndW1lbnQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlS2luZDo6
VHlwZUlkeDoKLSAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAgICAgIFJFTEVBU0Vf
QVNTRVJUKG1fb3duZXIpOwotICAgICAgICBib29sIGlzTnVsbGFibGUgPSBtX3R5cGUuaXNOdWxs
YWJsZSgpOwotICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxs
cHRyOwotICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5j
dGlvbiA9IG51bGxwdHI7Ci0gICAgICAgIGlmICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2
bSwgYXJndW1lbnQsIHdhc21GdW5jdGlvbiwgd2FzbVdyYXBwZXJGdW5jdGlvbikgJiYgKCFpc051
bGxhYmxlIHx8ICFhcmd1bWVudC5pc051bGwoKSkpIHsKLSAgICAgICAgICAgIHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvcihnbG9iYWxPYmplY3QsIHZtLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20g
ZnVuY3Rpb24iKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYg
KG1fdHlwZS5raW5kID09IFR5cGVLaW5kOjpUeXBlSWR4ICYmICh3YXNtRnVuY3Rpb24gfHwgd2Fz
bVdyYXBwZXJGdW5jdGlvbikpIHsKLSAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IHBh
cmFtSW5kZXggPSBtX3R5cGUuaW5kZXg7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRl
eCBhcmdJbmRleDsKLSAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAgICAgICAg
ICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9uLT5z
aWduYXR1cmVJbmRleCgpOwotICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgp
IHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkFy
Z3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpOworICAg
IGRlZmF1bHQ6IHsKKyAgICAgICAgaWYgKGlzRXh0ZXJucmVmKG1fdHlwZSkpIHsKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKG1fb3duZXIpOworICAgICAgICAgICAgaWYgKCFtX3R5cGUuaXNO
dWxsYWJsZSgpICYmIGFyZ3VtZW50LmlzTnVsbCgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJOb24tbnVsbCBFeHRlcm5yZWYgY2Fubm90IGJl
IG51bGwiKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwgYXJn
dW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKGlzRnVuY3JlZihtX3R5cGUpIHx8IGlzUmVmV2l0
aFR5cGVJbmRleChtX3R5cGUpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChtX293bmVy
KTsKKyAgICAgICAgICAgIFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxw
dHI7CisgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJG
dW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVu
Y3Rpb24odm0sIGFyZ3VtZW50LCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYm
ICghbV90eXBlLmlzTnVsbGFibGUoKSB8fCAhYXJndW1lbnQuaXNOdWxsKCkpKSB7CisgICAgICAg
ICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3Qg
YmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpc1JlZldpdGhUeXBlSW5kZXgobV90
eXBlKSAmJiAhYXJndW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICBXYXNtOjpTaWdu
YXR1cmVJbmRleCBwYXJhbUluZGV4ID0gbV90eXBlLmluZGV4OworICAgICAgICAgICAgICAgIFdh
c206OlNpZ25hdHVyZUluZGV4IGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uID8gd2FzbUZ1bmN0aW9u
LT5zaWduYXR1cmVJbmRleCgpIDogd2FzbVdyYXBwZXJGdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgo
KTsKKyAgICAgICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNy
ZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkFyZ3VtZW50
IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpOworICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgbV92YWx1ZS5tX2V4dGVybnJlZi5zZXQobV9vd25lci0+dm0oKSwgbV9vd25lciwg
YXJndW1lbnQpOwogICAgICAgICB9Ci0gICAgICAgIG1fdmFsdWUubV9leHRlcm5yZWYuc2V0KG1f
b3duZXItPnZtKCksIG1fb3duZXIsIGFyZ3VtZW50KTsKLSAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVmlzaXRvcj4KIHZvaWQgR2xvYmFsOjp2aXNpdEFnZ3JlZ2F0ZUltcGwoVmlzaXRvciYgdmlz
aXRvcikKIHsKLSAgICBzd2l0Y2ggKG1fdHlwZS5raW5kKSB7Ci0gICAgY2FzZSBUeXBlS2luZDo6
RXh0ZXJucmVmOgotICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6IHsKKyAgICBpZiAoaXNGdW5j
cmVmKG1fdHlwZSkgfHwgaXNFeHRlcm5yZWYobV90eXBlKSkgewogICAgICAgICBSRUxFQVNFX0FT
U0VSVChtX293bmVyKTsKICAgICAgICAgdmlzaXRvci5hcHBlbmQobV92YWx1ZS5tX2V4dGVybnJl
Zik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21M
TEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRH
ZW5lcmF0b3IuY3BwCmluZGV4IDRjOWE5ZDExZTQxODJhNTQ3MjVmMzVlMWU3ZTM2NzliZDIwMDVm
YmIuLjhlZDIzMDkzZjcxM2UxZjQyMjllYjNmMWZjNzQ1ZDU0MWJmZmIyNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcApAQCAtNjA5
LDcgKzYwOSw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxl
cihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPCBncHJDb3VudCkKICAgICAgICAgICAgICAgICAr
K2dwckluZGV4OwogICAgICAgICAgICAgZWxzZSBpZiAoc3RhY2tJbmRleCsrID49IHN0YWNrQ291
bnQpCkBAIC02MjQsOCArNjI1LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5
cGVLaW5kOjpGdW5jOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBj
YXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICB9CiAgICAgfTsKQEAgLTY2Nyw3ICs2NjYsOCBAQCBhdXRvIExMSW50R2Vu
ZXJhdG9yOjpjYWxsSW5mb3JtYXRpb25Gb3JDYWxsZXIoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1
cmUpIC0+IExMSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6CiAgICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVs
bDoKKyAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgaWYgKGdwckluZGV4
ID4gZ3ByTGltaXQpCiAgICAgICAgICAgICAgICAgYXJndW1lbnRzW2ldID0gdmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwoLS1ncHJJbmRleCk7CiAgICAgICAgICAgICBlbHNlCkBAIC02ODIsOCArNjgy
LDYgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0
IFNpZ25hdHVyZSYgc2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFR5cGVLaW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNjk3LDcgKzY5NSw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1h
dGlvbkZvckNhbGxlcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gTExJCiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgog
ICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpU
eXBlSWR4OgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWY6CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPiBncHJMaW1pdCkKICAgICAg
ICAgICAgICAgICB0ZW1wb3JhcnlSZXN1bHRzW2ldID0gdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwo
LS1ncHJJbmRleCk7CiAgICAgICAgICAgICBlbHNlCkBAIC03MTIsOCArNzExLDYgQEAgYXV0byBM
TEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0aW9uRm9yQ2FsbGVyKGNvbnN0IFNpZ25hdHVyZSYg
c2lnbmF0dXJlKSAtPiBMTEkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFR5cGVL
aW5kOjpWb2lkOgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAgICAgICBjYXNlIFR5
cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6CiAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzU1
LDcgKzc1Miw4IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNhbGxl
ZShjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gVmVjCiAgICAgICAgIGNhc2UgVHlwZUtp
bmQ6Okk2NDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICBjYXNl
IFR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBlSWR4OgorICAg
ICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6
CiAgICAgICAgICAgICBpZiAoZ3BySW5kZXggPCBtYXhHUFJJbmRleCkKICAgICAgICAgICAgICAg
ICBtX3Jlc3VsdHMuYXBwZW5kKHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG51bWJlck9mTExJbnRD
YWxsZWVTYXZlUmVnaXN0ZXJzICsgZ3BySW5kZXgrKykpOwogICAgICAgICAgICAgZWxzZQpAQCAt
NzcwLDggKzc2OCw2IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvckNh
bGxlZShjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gVmVjCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6Vm9pZDoKICAgICAgICAgY2FzZSBUeXBlS2luZDo6
RnVuYzoKLSAgICAgICAgY2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKLSAgICAgICAgY2FzZSBUeXBl
S2luZDo6UmVmOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTgxMiw3ICs4MDgsOCBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjph
ZGRBcmd1bWVudHMoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUpIC0+IFBhcnRpYWxSZXN1bHQK
ICAgICAgICAgY2FzZSBUeXBlS2luZDo6STY0OgogICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRl
cm5yZWY6CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6CisgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIGFkZEFyZ3VtZW50KGksIGdwckluZGV4
LCBtYXhHUFJJbmRleCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RjMyOgpAQCAtODIxLDggKzgxOCw2IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZEFyZ3Vt
ZW50cyhjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSkgLT4gUGFydGlhbFJlc3VsdAogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlZvaWQ6CiAgICAgICAgIGNhc2Ug
VHlwZUtpbmQ6OkZ1bmM6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZk51bGw6Ci0gICAgICAg
IGNhc2UgVHlwZUtpbmQ6OlJlZjoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC04MzcsMTYgKzgzMiwxMSBAQCBhdXRvIExMSW50
R2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90IGNvdW50KSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCiAgICAgbV9jb2RlQmxvY2stPm1fbnVt
VmFycyArPSBjb3VudDsKLSAgICBzd2l0Y2ggKHR5cGUua2luZCkgewotICAgIGNhc2UgVHlwZUtp
bmQ6OkV4dGVybnJlZjoKLSAgICBjYXNlIFR5cGVLaW5kOjpGdW5jcmVmOgorICAgIGlmIChpc0Z1
bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5yZWYodHlwZSkpIHsKICAgICAgICAgd2hpbGUgKGNvdW50
LS0pCiAgICAgICAgICAgICBtX3VuaXRpYWxpemVkTG9jYWxzLmFwcGVuZChwdXNoKE5vQ29uc2lz
dGVuY3lDaGVjaykpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgorICAgIH0gZWxzZQog
ICAgICAgICBtX3N0YWNrU2l6ZSArPSBjb3VudDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAg
IHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVy
YXRpb25zLmNwcAppbmRleCA3MzViMzAzNWUxMTBiMzgyMTRlNWZjY2UyMjA5YzA1YWZkYzFlYzZm
Li4zYjAyZWJmMDkyNTg3M2U0YmZmNzYzNzM5ZDJiMDE4NTc4ZTAyYmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC01NDMsNyArNTQzLDgg
QEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lk
LCAoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEkKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IGJ1ZmZl
ci5hdChpbmRleCk7CiAKICAgICAgICAgdWludDY0X3QgdW5ib3hlZFZhbHVlID0gMDsKLSAgICAg
ICAgc3dpdGNoIChzaWduYXR1cmUtPnJldHVyblR5cGUoaW5kZXgpLmtpbmQpIHsKKyAgICAgICAg
Y29uc3QgYXV0byYgcmV0dXJuVHlwZSA9IHNpZ25hdHVyZS0+cmV0dXJuVHlwZShpbmRleCk7Cisg
ICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZS5raW5kKSB7CiAgICAgICAgIGNhc2UgVHlwZUtpbmQ6
OkkzMjoKICAgICAgICAgICAgIHVuYm94ZWRWYWx1ZSA9IHZhbHVlLnRvSW50MzIoZ2xvYmFsT2Jq
ZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTU2LDE3ICs1NTcsMTYgQEAgSlNDX0RFRklO
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkl0ZXJhdGVSZXN1bHRzLCB2b2lkLCAoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEkKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjY0OgogICAgICAgICAgICAg
dW5ib3hlZFZhbHVlID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pih2YWx1ZS50b051bWJlcihnbG9i
YWxPYmplY3QpKTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpG
dW5jcmVmOgotICAgICAgICAgICAgaWYgKCF2YWx1ZS5pc0NhbGxhYmxlKHZtKSkgewotICAgICAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJGdW5jcmVmIHZh
bHVlIGlzIG5vdCBhIGZ1bmN0aW9uIl9zKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBGQUxMVEhST1VHSDsKLSAgICAgICAgY2FzZSBUeXBlS2lu
ZDo6RXh0ZXJucmVmOgotICAgICAgICAgICAgdW5ib3hlZFZhbHVlID0gYml0d2lzZV9jYXN0PHVp
bnQ2NF90Pih2YWx1ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGRlZmF1bHQ6
IHsKKyAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYocmV0dXJuVHlwZSkgfHwgaXNFeHRlcm5yZWYo
cmV0dXJuVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNGdW5jcmVmKHJldHVyblR5cGUp
ICYmICF2YWx1ZS5pc0NhbGxhYmxlKHZtKSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvd1R5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRnVuY3JlZiB2YWx1ZSBpcyBub3QgYSBmdW5j
dGlvbiJfcyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgdW5ib3hlZFZhbHVlID0gYml0d2lzZV9jYXN0PHVpbnQ2NF90Pih2
YWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVBhcnNlci5oCmluZGV4IDYzZDg5ZDYxZDQzNTMwYTI2ZmI1NDE1ZTI3MDFjYzMwYTczYTMyODQu
LjhlY2QyNTEwY2NiMmZiZDM2Yzg1YWY1NTQzZTM3MTA3NGQ5NGMzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtUGFyc2VyLmgKQEAgLTMwNSw3ICszMDUsMTEgQEAgQUxXQVlTX0lO
TElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKGNvbnN0IE1vZHVs
ZUluZm9ybWF0aW9uJgogICAgIFR5cGVLaW5kIHR5cGVLaW5kID0gc3RhdGljX2Nhc3Q8VHlwZUtp
bmQ+KGtpbmQpOwogICAgIGJvb2wgaXNOdWxsYWJsZSA9IHRydWU7CiAgICAgU2lnbmF0dXJlSW5k
ZXggc2lnSW5kZXggPSAwOwotICAgIGlmICh0eXBlS2luZCA9PSBUeXBlS2luZDo6UmVmIHx8IHR5
cGVLaW5kID09IFR5cGVLaW5kOjpSZWZOdWxsKSB7CisKKyAgICBpZiAoT3B0aW9uczo6dXNlV2Vi
QXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcygpICYmICh0eXBlS2luZCA9PSBUeXBlS2lu
ZDo6RnVuY3JlZiB8fCB0eXBlS2luZCA9PSBUeXBlS2luZDo6RXh0ZXJucmVmKSkgeworICAgICAg
ICBzaWdJbmRleCA9IHN0YXRpY19jYXN0PFNpZ25hdHVyZUluZGV4Pih0eXBlS2luZCk7CisgICAg
ICAgIHR5cGVLaW5kID0gVHlwZUtpbmQ6OlJlZk51bGw7CisgICAgfSBlbHNlIGlmICh0eXBlS2lu
ZCA9PSBUeXBlS2luZDo6UmVmIHx8IHR5cGVLaW5kID09IFR5cGVLaW5kOjpSZWZOdWxsKSB7CiAg
ICAgICAgIGlmICghT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNl
cygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zMTgsOSArMzIyLDggQEAgQUxX
QVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKGNvbnN0
IE1vZHVsZUluZm9ybWF0aW9uJgogICAgICAgICAgICAgVHlwZUtpbmQgaGVhcEtpbmQgPSBzdGF0
aWNfY2FzdDxUeXBlS2luZD4oaGVhcFR5cGUpOwogICAgICAgICAgICAgaWYgKCFpc1ZhbGlkSGVh
cFR5cGVLaW5kKGhlYXBLaW5kKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICB0eXBlS2luZCA9IGhlYXBLaW5kOworICAgICAgICAgICAgc2lnSW5kZXggPSBzdGF0
aWNfY2FzdDxTaWduYXR1cmVJbmRleD4oaGVhcEtpbmQpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgdHlwZUtpbmQgPSBUeXBlS2luZDo6VHlwZUlkeDsKICAgICAgICAgICAgIGlmIChz
dGF0aWNfY2FzdDxzaXplX3Q+KGhlYXBUeXBlKSA+PSBpbmZvLnVzZWRTaWduYXR1cmVzLnNpemUo
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBzaWdJbmRleCA9
IFNpZ25hdHVyZUluZm9ybWF0aW9uOjpnZXQoaW5mby51c2VkU2lnbmF0dXJlc1toZWFwVHlwZV0u
Z2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rp
b25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJz
ZXIuY3BwCmluZGV4IGNmZGFmZmRkN2E0MmNjODFlNWJhM2E2MWU0YmFlOGVmNWVjYmQzYmEuLmZl
Y2MwZTY3NWU5OWU5YzY5M2Y5NjA4MzhiYWZkYWEyZTA0YTNmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKQEAgLTYzMSw3ICs2MzEs
NyBAQCBhdXRvIFNlY3Rpb25QYXJzZXI6OnBhcnNlSW5pdEV4cHIodWludDhfdCYgb3Bjb2RlLCB1
aW50NjRfdCYgYml0c09ySW1wb3J0TnVtYmVyLAogCiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VX
ZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzKCkpIHsKICAgICAgICAgICAgIFNpZ25h
dHVyZUluZGV4IHNpZ25hdHVyZUluZGV4ID0gbV9pbmZvLT5zaWduYXR1cmVJbmRleEZyb21GdW5j
dGlvbkluZGV4U3BhY2UoaW5kZXgpOwotICAgICAgICAgICAgcmVzdWx0VHlwZSA9IHsgVHlwZUtp
bmQ6OlR5cGVJZHgsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5kZXggfTsKKyAgICAgICAgICAg
IHJlc3VsdFR5cGUgPSB7IFR5cGVLaW5kOjpSZWYsIE51bGxhYmxlOjpObywgc2lnbmF0dXJlSW5k
ZXggfTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXN1bHRUeXBlID0gVHlwZXM6OkZ1
bmNyZWY7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21UYWJs
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtVGFibGUuY3BwCmluZGV4IGU0
ZjkzYjEzNDc3YTNhNWZiMTRiNzFkN2RkM2VhM2NjNDIzMzIyYzYuLmMzNjc1YzgyNDNkNzg5OTM0
MGEyNmIxZjAwNDA5ODEzOWNjNzI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21UYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVRhYmxlLmNwcApAQCAtMTc5LDkgKzE3OSw5IEBAIERFRklORV9WSVNJVF9BR0dSRUdBVEUoVGFi
bGUpOwogVHlwZSBUYWJsZTo6d2FzbVR5cGUoKSBjb25zdAogewogICAgIGlmIChpc0V4dGVybnJl
ZlRhYmxlKCkpCi0gICAgICAgIHJldHVybiBUeXBlczo6RXh0ZXJucmVmOworICAgICAgICByZXR1
cm4gZXh0ZXJucmVmVHlwZSgpOwogICAgIEFTU0VSVChpc0Z1bmNyZWZUYWJsZSgpKTsKLSAgICBy
ZXR1cm4gVHlwZXM6OkZ1bmNyZWY7CisgICAgcmV0dXJuIGZ1bmNyZWZUeXBlKCk7CiB9CiAKIEZ1
bmNSZWZUYWJsZSogVGFibGU6OmFzRnVuY3JlZlRhYmxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTVG9XYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTVG9XYXNtLmNwcAppbmRleCA3MmJhODc0Mzg5YWEzYWU2OTg3NjU0YzJiMzQ2
NmQxNThiZjhhN2ZhLi5kMTU1ZDhhMzRiZjFiMzU2Yzg3MGYwYjZmZTk5MTIyZWYxNWY2OTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1RvV2FzbS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNUb1dhc20uY3BwCkBAIC00NSwxMCAr
NDUsNiBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNp
Z25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogICAgICAgICBjYXNlIFR5cGVLaW5kOjpW
b2lkOgogICAgICAgICAgICAgaml0Lm1vdmVUcnVzdGVkVmFsdWUoanNVbmRlZmluZWQoKSwgZHN0
KTsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFR5cGVLaW5kOjpFeHRlcm5yZWY6
Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgICAgICBqaXQubW92ZShz
cmMuZ3ByKCksIGRzdC5wYXlsb2FkR1BSKCkpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkkzMjoKICAgICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQo
c3JjLmdwcigpLCBkc3QucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIGppdC5ib3hJbnQzMihk
c3QucGF5bG9hZEdQUigpLCBkc3QsIERvTm90SGF2ZVRhZ1JlZ2lzdGVycyk7CkBAIC02Myw5ICs1
OSwxMiBAQCB2b2lkIG1hcnNoYWxsSlNSZXN1bHQoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFNp
Z25hdHVyZSYgc2lnbmF0dXJlLCBjb25zdCBDYWxsSQogICAgICAgICAgICAgaXNOYU4ubGluaygm
aml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICBqaXQuYnJlYWtwb2ludCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGlmIChpc0Z1bmNyZWYodHlwZSkgfHwgaXNFeHRlcm5y
ZWYodHlwZSkpCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoc3JjLmdwcigpLCBkc3QucGF5bG9h
ZEdQUigpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBqaXQuYnJlYWtwb2lu
dCgpOworICAgICAgICB9CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5R2xvYmFsLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCmluZGV4IDljNWYx
OGE2ODM5Njg5NTJkMDQ0OGY0ZDI4MGI4N2Y2M2YxYmMyY2EuLjU3MWUwNWFhY2ZmNjMxNmQxZGNl
NWM2OGMzMzVmN2NjMWJiMjMzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlHbG9iYWwuY3BwCkBAIC0xMDUsMTQgKzEwNSwxNCBAQCBK
U09iamVjdCogSlNXZWJBc3NlbWJseUdsb2JhbDo6dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkY2NDoKICAgICAgICAgdmFsdWVTdHJp
bmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJmNjQiKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgotICAgICAgICB2YWx1ZVN0cmluZyA9IGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgImV4dGVybnJlZiIpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOgotICAgICAgICB2YWx1ZVN0cmluZyA9IGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgImZ1bmNyZWYiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBkZWZhdWx0OiB7
CisgICAgICAgIGlmIChXYXNtOjppc0Z1bmNyZWYodmFsdWVUeXBlKSkKKyAgICAgICAgICAgIHZh
bHVlU3RyaW5nID0ganNOb250cml2aWFsU3RyaW5nKHZtLCAiZnVuY3JlZiIpOworICAgICAgICBl
bHNlIGlmIChXYXNtOjppc0V4dGVybnJlZih2YWx1ZVR5cGUpKQorICAgICAgICAgICAgdmFsdWVT
dHJpbmcgPSBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJleHRlcm5yZWYiKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiAgICAg
fQogICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
dmFsdWUiKSwgdmFsdWVTdHJpbmcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAppbmRleCBiNjIwZWRjYTI4YTllMjQyOWYx
MjBjZTE5NjdhM2IwYzExMjEzNTcxLi5mMjcxNzc5ZTBiODgxZDFkZWM2MGFmYzg2NjBmZDg5YjM3
OTMwZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2Vi
QXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzOSw5ICsxMzksOSBAQCBBTFdBWVNfSU5MSU5FIGJvb2wg
aXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbihWTSYgdm0sIEpTVmFsdWUgb2JqZWN0KQogQUxXQVlT
X0lOTElORSBKU1ZhbHVlIGRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5cGUoY29uc3QgV2FzbTo6
VHlwZSB0eXBlKQogewogICAgIEFTU0VSVChXYXNtOjppc1JlZlR5cGUodHlwZSkpOwotICAgIGlm
ICh0eXBlLmlzRXh0ZXJucmVmKCkpCisgICAgaWYgKFdhc206OmlzRXh0ZXJucmVmKHR5cGUpKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICBBU1NFUlQodHlwZS5pc0Z1bmNyZWYo
KSk7CisgICAgQVNTRVJUKFdhc206OmlzRnVuY3JlZih0eXBlKSk7CiAgICAgcmV0dXJuIGpzTnVs
bCgpOwogfQogCkBAIC0xNzMsMjkgKzE3Myw2IEBAIEFMV0FZU19JTkxJTkUgdWludDY0X3QgZnJv
bUpTVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgV2FzbTo6VHlwCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKICAgICBzd2l0Y2ggKHR5cGUua2luZCkgewotICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjog
ewotICAgICAgICBib29sIGlzTnVsbGFibGUgPSB0eXBlLmlzTnVsbGFibGUoKTsKLSAgICAgICAg
V2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsKLSAgICAgICAgV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21XcmFwcGVyRnVuY3Rpb24gPSBudWxscHRyOwot
ICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVu
Y3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNO
dWxsKCkpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZt
LCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24iKSk7Ci0gICAgICAg
IGlmICh0eXBlLmtpbmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlv
biB8fCB3YXNtV3JhcHBlckZ1bmN0aW9uKSkgewotICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJl
SW5kZXggcGFyYW1JbmRleCA9IHR5cGUuaW5kZXg7Ci0gICAgICAgICAgICBXYXNtOjpTaWduYXR1
cmVJbmRleCBhcmdJbmRleDsKLSAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0gICAgICAg
ICAgICAgICAgYXJnSW5kZXggPSB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0
aW9uLT5zaWduYXR1cmVJbmRleCgpOwotICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJn
SW5kZXgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3Qs
IHZtLCAiQXJndW1lbnQgZnVuY3Rpb24gZGlkIG5vdCBtYXRjaCB0aGUgcmVmZXJlbmNlIHR5cGUi
KSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSAmJiB2YWx1
ZS5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXhjZXB0aW9uKGdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoZ2xvYmFsT2JqZWN0
LCB2bSwgIk5vbi1udWxsIEV4dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIpKTsKLSAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STMyOgogICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIHZhbHVlLnRvSW50MzIoZ2xvYmFsT2JqZWN0KSk7CiAgICAgY2FzZSBXYXNt
OjpUeXBlS2luZDo6STY0OgpAQCAtMjA0LDEzICsxODEsMjUgQEAgQUxXQVlTX0lOTElORSB1aW50
NjRfdCBmcm9tSlNWYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBXYXNt
OjpUeXAKICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBiaXR3aXNlX2Nhc3Q8dWlu
dDMyX3Q+KHZhbHVlLnRvRmxvYXQoZ2xvYmFsT2JqZWN0KSkpOwogICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkY2NDoKICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBiaXR3aXNlX2Nh
c3Q8dWludDY0X3Q+KHZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKTsKLSAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpWb2lkOgotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmM6Ci0gICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6UmVmTnVsbDoKLSAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpS
ZWY6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgZGVmYXVsdDog
eworICAgICAgICBpZiAoV2FzbTo6aXNFeHRlcm5yZWYodHlwZSkpIHsKKyAgICAgICAgICAgIGlm
ICghdHlwZS5pc051bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHRocm93Vk1FeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSlNXZWJB
c3NlbWJseVJ1bnRpbWVFcnJvcihnbG9iYWxPYmplY3QsIHZtLCAiTm9uLW51bGwgRXh0ZXJucmVm
IGNhbm5vdCBiZSBudWxsIikpOworICAgICAgICB9IGVsc2UgaWYgKFdhc206OmlzRnVuY3JlZih0
eXBlKSB8fCBpc1JlZldpdGhUeXBlSW5kZXgodHlwZSkpIHsKKyAgICAgICAgICAgIFdlYkFzc2Vt
Ymx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAg
ICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVu
Y3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghdHlwZS5pc051bGxhYmxlKCkgfHwgIXZh
bHVlLmlzTnVsbCgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUV4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2Jh
bE9iamVjdCwgdm0sICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIp
KTsKKyAgICAgICAgICAgIGlmIChpc1JlZldpdGhUeXBlSW5kZXgodHlwZSkgJiYgIXZhbHVlLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IHR5cGUuaW5kZXg7CisgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggYXJn
SW5kZXggPSB3YXNtRnVuY3Rpb24gPyB3YXNtRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4KCkgOiB3
YXNtV3JhcHBlckZ1bmN0aW9uLT5zaWduYXR1cmVJbmRleCgpOworICAgICAgICAgICAgICAgIGlm
IChwYXJhbUluZGV4ICE9IGFyZ0luZGV4KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhy
b3dWTUV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0sICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1h
dGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KICAgICB9
Ci0KICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9K
Uy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XYXNtVG9KUy5jcHAKaW5kZXgg
ZDY1ZmM2MTIxYjYwOTBiZDdmMmQ0MGQwM2JiNDVlZTdhYTY0MDIzNC4uNTgxMDQxYjNjYTM0MzNj
N2FmYWJmMWJlMzQ2NzVkYWI3ZDRhNGZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2FzbVRvSlMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dhc21Ub0pTLmNwcApAQCAtMTA3LDcgKzEwNyw2IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5kaW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0m
IHZtCiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAgY2Fz
ZSBUeXBlS2luZDo6UmVmOgogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IC8vIEhhbmRsZWQgYWJvdmUuCi0gICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpUeXBl
SWR4OgogICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6RnVuY3JlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkkzMjoK
QEAgLTE4Miw3ICsxODEsNiBAQCBFeHBlY3RlZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVu
dHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAg
Y2FzZSBUeXBlS2luZDo6UmVmTnVsbDoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OlJlZjoK
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAvLyBIYW5kbGVk
IGFib3ZlLgotICAgICAgICAgICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKICAgICAgICAgICAg
IGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKICAgICAgICAgICAgIGNhc2UgVHlwZUtpbmQ6OkZ1
bmNyZWY6CiAgICAgICAgICAgICBjYXNlIFR5cGVLaW5kOjpJMzI6CkBAIC0yNzksMTQgKzI3Nyw4
IEBAIEV4cGVjdGVkPE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxXYXNtRW50cnlQdHJUYWc+LCBCaW5k
aW5nRmFpbHVyZT4gd2FzbVRvSlMoVk0mIHZtCiAgICAgYXV0byBkb25lTG9jYXRpb24gPSBqaXQu
bGFiZWwoKTsKIAogICAgIGlmIChzaWduYXR1cmUucmV0dXJuQ291bnQoKSA9PSAxKSB7Ci0gICAg
ICAgIHN3aXRjaCAoc2lnbmF0dXJlLnJldHVyblR5cGUoMCkua2luZCkgewotICAgICAgICBjYXNl
IFR5cGVLaW5kOjpWb2lkOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpGdW5jOgotICAgICAgICBj
YXNlIFR5cGVLaW5kOjpSZWZOdWxsOgotICAgICAgICBjYXNlIFR5cGVLaW5kOjpSZWY6Ci0gICAg
ICAgICAgICAvLyBGb3IgdGhlIEphdmFTY3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGggdGhl
c2UgdHlwZXMgaW4gdGhlaXIgc2lnbmF0dXJlIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5Nb2R1
bGUgdmFsaWRhdGlvbiBlcnJvci4KLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgY29uc3QgYXV0byYgcmV0dXJuVHlw
ZSA9IHNpZ25hdHVyZS5yZXR1cm5UeXBlKDApOworICAgICAgICBzd2l0Y2ggKHJldHVyblR5cGUu
a2luZCkgewogICAgICAgICBjYXNlIFR5cGVLaW5kOjpJNjQ6IHsKICAgICAgICAgICAgIC8vIEZJ
WE1FOiBPcHRpbWl6ZSBJNjQgZXh0cmFjdGlvbiBmcm9tIEJpZ0ludC4KICAgICAgICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAwNTMKQEAgLTMyNCwx
MSArMzE2LDYgQEAgRXhwZWN0ZWQ8TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFdhc21FbnRyeVB0clRh
Zz4sIEJpbmRpbmdGYWlsdXJlPiB3YXNtVG9KUyhWTSYgdm0KICAgICAgICAgICAgIGRvbmUubGlu
aygmaml0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgVHlw
ZUtpbmQ6OkZ1bmNyZWY6Ci0gICAgICAgIGNhc2UgVHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAg
ICAgY2FzZSBUeXBlS2luZDo6VHlwZUlkeDoKLSAgICAgICAgICAgIGppdC5tb3ZlKEdQUkluZm86
OnJldHVyblZhbHVlR1BSLCB3YXNtQ2FsbEluZm8ucmVzdWx0c1swXS5ncHIoKSk7Ci0gICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlS2luZDo6RjMyOiB7CiAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CiAgICAgICAgICAgICBGUFJSZWcgZGVzdCA9IHdh
c21DYWxsSW5mby5yZXN1bHRzWzBdLmZwcigpOwpAQCAtMzkwLDYgKzM3NywxMyBAQCBFeHBlY3Rl
ZDxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8V2FzbUVudHJ5UHRyVGFnPiwgQmluZGluZ0ZhaWx1cmU+
IHdhc21Ub0pTKFZNJiB2bQogICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDogIHsKKyAgICAgICAgICAgIGlm
IChXYXNtOjppc0Z1bmNyZWYocmV0dXJuVHlwZSkgfHwgV2FzbTo6aXNFeHRlcm5yZWYocmV0dXJu
VHlwZSkpCisgICAgICAgICAgICAgICAgaml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIs
IHdhc21DYWxsSW5mby5yZXN1bHRzWzBdLmdwcigpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAvLyBGb3IgdGhlIEphdmFTY3JpcHQgZW1iZWRkaW5nLCBpbXBvcnRzIHdpdGgg
dGhlc2UgdHlwZXMgaW4gdGhlaXIgc2lnbmF0dXJlIHJldHVybiBhcmUgYSBXZWJBc3NlbWJseS5N
b2R1bGUgdmFsaWRhdGlvbiBlcnJvci4KKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHNpZ25h
dHVyZS5yZXR1cm5Db3VudCgpID4gMSkgewogICAgICAgICBHUFJSZWcgd2FzbUNvbnRleHRJbnN0
YW5jZUdQUiA9IFBpbm5lZFJlZ2lzdGVySW5mbzo6Z2V0KCkud2FzbUNvbnRleHRJbnN0YW5jZVBv
aW50ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCmluZGV4IDE5NzE4ZGNlNjk5NjkwMDFlZTEyZDY0NGY4NjI0NWUwMTcz
NjViMDguLmFhMjJhM2QzMTY0ZjFjYzhkZjZjMGJhMzYzYWE2ZmFmNTA4YWFkN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCkBAIC0yNTMsMzcgKzI1MywzOSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0
clRhZz4gV2ViQXNzZW1ibHlGdW5jdGlvbjo6anNDYWxsRW50cnlwb2ludFNsb3coKQogICAgICAg
ICAgICAgICAgIGppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoc2NyYXRjaEdQUiwgd2FzbUNhbGxJbmZv
LnBhcmFtc1tpXS5ncHIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpGdW5jcmVmOiB7Ci0gICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdBU00gZXhw
b3J0ZWQgZnVuY3Rpb24uCi0gICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0Y2hH
UFIpOwotICAgICAgICAgICAgYXV0byBpc051bGwgPSBqaXQuYnJhbmNoSWZOdWxsKHNjcmF0Y2hH
UFIpOwotICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKLSAgICAgICAgICAgICAg
ICBzbG93UGF0aC5hcHBlbmQoaXNOdWxsKTsKLSAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChq
aXQuYnJhbmNoSWZOb3RDZWxsKHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgY2FzZSBXYXNtOjpUeXBl
S2luZDo6UmVmOgorICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgorICAgICAg
ICBjYXNlIFdhc206OlR5cGVLaW5kOjpGdW5jcmVmOgorICAgICAgICBjYXNlIFdhc206OlR5cGVL
aW5kOjpFeHRlcm5yZWY6IHsKKyAgICAgICAgICAgIGlmICghV2FzbTo6aXNFeHRlcm5yZWYodHlw
ZSkpIHsKKyAgICAgICAgICAgICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBhIFdBU00gZXhwb3J0ZWQg
ZnVuY3Rpb24uCisgICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BS
KTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzTnVsbCA9IGppdC5icmFuY2hJZk51bGwoc2NyYXRj
aEdQUik7CisgICAgICAgICAgICAgICAgaWYgKCF0eXBlLmlzTnVsbGFibGUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKGlzTnVsbCk7CisgICAgICAgICAgICAgICAgc2xv
d1BhdGguYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwoc2NyYXRjaEdQUikpOwogCi0gICAgICAg
ICAgICBzdGFja0xpbWl0R1BSSXNDbG9iYmVyZWQgPSB0cnVlOwotICAgICAgICAgICAgaml0LmVt
aXRMb2FkU3RydWN0dXJlKHZtLCBzY3JhdGNoR1BSLCBzY3JhdGNoR1BSLCBzdGFja0xpbWl0R1BS
KTsKLSAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3JhdGNo
R1BSLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgICAg
ICAgICAgICAgc3RhY2tMaW1pdEdQUklzQ2xvYmJlcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBqaXQuZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIsIHN0YWNr
TGltaXRHUFIpOworICAgICAgICAgICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhzY3JhdGNoR1BSLCBTdHJ1Y3R1cmU6OmNsYXNzSW5mb09mZnNldCgpKSwgc2NyYXRjaEdQ
Uik7CiAKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJs
eUZ1bmN0aW9uPjo6dmFsdWUsICJXZSBkbyBub3QgY2hlY2sgZm9yIHN1YnR5cGVzIGJlbG93Iik7
Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb24+Ojp2YWx1ZSwgIldlIGRvIG5vdCBjaGVjayBmb3Igc3VidHlwZXMgYmVsb3ci
KTsKKyAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8V2ViQXNzZW1i
bHlGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBiZWxvdyIp
OworICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbj46OnZhbHVlLCAiV2UgZG8gbm90IGNoZWNrIGZvciBzdWJ0eXBlcyBi
ZWxvdyIpOwogCi0gICAgICAgICAgICBhdXRvIGlzV2FzbUZ1bmN0aW9uID0gaml0LmJyYW5jaFB0
cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7Ci0gICAgICAgICAgICBzbG93UGF0
aC5hcHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BS
LCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246
OmluZm8oKSkpKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlzV2FzbUZ1bmN0aW9uID0gaml0LmJy
YW5jaFB0cihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoV2ViQXNzZW1ibHlGdW5jdGlvbjo6aW5mbygpKSk7CisgICAgICAgICAgICAg
ICAgc2xvd1BhdGguYXBwZW5kKGppdC5icmFuY2hQdHIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwg
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKFdlYkFzc2VtYmx5V3JhcHBl
ckZ1bmN0aW9uOjppbmZvKCkpKSk7CiAKLSAgICAgICAgICAgIGlzV2FzbUZ1bmN0aW9uLmxpbmso
JmppdCk7Ci0gICAgICAgICAgICBpZiAodHlwZS5raW5kID09IFdhc206OlR5cGVLaW5kOjpUeXBl
SWR4KSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsK
LSAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRj
aEdQUiwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0dXJlSW5kZXgoKSks
IHNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgICAgIHNsb3dQYXRoLmFwcGVuZChqaXQuYnJhbmNo
UHRyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cih0eXBlLmluZGV4KSkpOworICAgICAgICAgICAgICAgIGlzV2FzbUZ1bmN0aW9u
LmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgaWYgKFdhc206OmlzUmVmV2l0aFR5cGVJbmRl
eCh0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDY0KGpzUGFyYW0sIHNjcmF0
Y2hHUFIpOworICAgICAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Moc2NyYXRjaEdQUiwgV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2U6Om9mZnNldE9mU2lnbmF0
dXJlSW5kZXgoKSksIHNjcmF0Y2hHUFIpOworICAgICAgICAgICAgICAgICAgICBzbG93UGF0aC5h
cHBlbmQoaml0LmJyYW5jaFB0cihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodHlwZS5pbmRleCkpKTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAodHlwZS5pc051bGxhYmxlKCkpCisgICAgICAgICAg
ICAgICAgICAgIGlzTnVsbC5saW5rKCZqaXQpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAodHlwZS5pc051bGxhYmxlKCkpCi0gICAgICAgICAgICAgICAgaXNOdWxsLmxpbmsoJmpp
dCk7Ci0gICAgICAgICAgICBGQUxMVEhST1VHSDsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFdh
c206OlR5cGVLaW5kOjpFeHRlcm5yZWY6IHsKICAgICAgICAgICAgIGlmIChpc1N0YWNrKSB7CiAg
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NChqc1BhcmFtLCBzY3JhdGNoR1BSKTsKICAgICAgICAg
ICAgICAgICBpZiAoIXR5cGUuaXNOdWxsYWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNw
cAppbmRleCA4ZjY1YWVkOWZkMWFiZDc5N2U0YTY3Yzg4ZWY2MWU4YWE3MTQxOTc5Li4xMDAwNTZk
ZTYxNTBiOWMxODdiMTFjMDc5ZWI4ZDFkYmFlNzAwYTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENvbnN0cnVj
dG9yLmNwcApAQCAtOTUsOSArOTUsOSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNXZWJBc3NlbWJseUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgICAg
ICBlbHNlIGlmICh2YWx1ZVN0cmluZyA9PSAiZjY0Il9zKQogICAgICAgICAgICAgdHlwZSA9IFdh
c206OlR5cGVzOjpGNjQ7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlU3RyaW5nID09ICJhbnlmdW5j
Il9zIHx8IHZhbHVlU3RyaW5nID09ICJmdW5jcmVmIl9zKQotICAgICAgICAgICAgdHlwZSA9IFdh
c206OlR5cGVzOjpGdW5jcmVmOworICAgICAgICAgICAgdHlwZSA9IFdhc206OmZ1bmNyZWZUeXBl
KCk7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVlU3RyaW5nID09ICJleHRlcm5yZWYiX3MpCi0gICAg
ICAgICAgICB0eXBlID0gV2FzbTo6VHlwZXM6OkV4dGVybnJlZjsKKyAgICAgICAgICAgIHR5cGUg
PSBXYXNtOjpleHRlcm5yZWZUeXBlKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiV2ViQXNzZW1ibHkuR2xvYmFsIGV4cGVj
dHMgaXRzICd2YWx1ZScgZmllbGQgdG8gYmUgdGhlIHN0cmluZyAnaTMyJywgJ2k2NCcsICdmMzIn
LCAnZjY0JywgJ2FueWZ1bmMnLCAnZnVuY3JlZicsIG9yICdleHRlcm5yZWYnIl9zKSkpOwogICAg
IH0KQEAgLTEzNywyNCArMTM3LDIyIEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkZ1bmNy
ZWY6IHsKLSAgICAgICAgaWYgKGFyZ3VtZW50LmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICBh
cmd1bWVudCA9IGRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5cGUodHlwZSk7Ci0gICAgICAgIGlm
ICghaXNXZWJBc3NlbWJseUhvc3RGdW5jdGlvbih2bSwgYXJndW1lbnQpICYmICFhcmd1bWVudC5p
c051bGwoKSkgewotICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBjcmVhdGVKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKGdsb2JhbE9iamVjdCwgdm0s
ICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiIpKTsKLSAgICAgICAg
ICAgIHJldHVybiB7IH07Ci0gICAgICAgIH0KLSAgICAgICAgaW5pdGlhbFZhbHVlID0gSlNWYWx1
ZTo6ZW5jb2RlKGFyZ3VtZW50KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OkV4dGVybnJlZjogewotICAgICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmlu
ZWQoKSkKLSAgICAgICAgICAgIGFyZ3VtZW50ID0gZGVmYXVsdFZhbHVlRm9yUmVmZXJlbmNlVHlw
ZSh0eXBlKTsKLSAgICAgICAgaW5pdGlhbFZhbHVlID0gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3VtZW50
KTsKLSAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDogeworICAgICAgICBpZiAoV2FzbTo6aXNG
dW5jcmVmKHR5cGUpKSB7CisgICAgICAgICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkK
KyAgICAgICAgICAgICAgICBhcmd1bWVudCA9IGRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5cGUo
dHlwZSk7CisgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIGFy
Z3VtZW50KSAmJiAhYXJndW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZUpTV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3
YXNtIGZ1bmN0aW9uIikpOworICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpbml0aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQp
OworICAgICAgICB9IGVsc2UgaWYgKFdhc206OmlzRXh0ZXJucmVmKHR5cGUpKSB7CisgICAgICAg
ICAgICBpZiAoYXJndW1lbnQuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgICAgICBhcmd1bWVu
dCA9IGRlZmF1bHRWYWx1ZUZvclJlZmVyZW5jZVR5cGUodHlwZSk7CisgICAgICAgICAgICBpbml0
aWFsVmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQpOworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAg
UmVmPFdhc206Okdsb2JhbD4gd2FzbUdsb2JhbCA9IFdhc206Okdsb2JhbDo6Y3JlYXRlKHR5cGUs
IG11dGFiaWxpdHksIGluaXRpYWxWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAKaW5kZXggZGVjYWE5
ODJmN2RmMmFiZDA4NjU0YWEzZjI0ZjQxODczMjE4YTVmMi4uOTY5MjZmMmQ2YjI3YWI5ZDAwNDk3
YTRkMGI4N2E3YWIyMjk4YTI4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcApAQCAtMjU3LDM4ICsyNTcs
OCBAQCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4
cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwg
dm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJl
IGEgc2FtZSB0eXBlIikpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbFZhbHVlLT5n
bG9iYWwoKS0+bXV0YWJpbGl0eSgpICE9IFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpJbW11dGFi
bGUpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1w
b3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm11c3QgYmUgYSBzYW1lIG11dGFiaWxpdHkiKSkpOwot
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG1vZHVsZUluZm9ybWF0aW9uLmdsb2JhbHNbaW1w
b3J0LmtpbmRJbmRleF0udHlwZS5raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2Fz
bTo6VHlwZUtpbmQ6OlR5cGVJZHg6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlw
ZUtpbmQ6OkZ1bmNyZWY6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNOdWxsYWJs
ZSA9IGdsb2JhbC50eXBlLmlzTnVsbGFibGUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFdl
YkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5jdGlv
biA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGdsb2JhbFZhbHVl
LT5nbG9iYWwoKS0+Z2V0KGdsb2JhbE9iamVjdCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1bmN0aW9uKHZtLCB2YWx1ZSwgd2FzbUZ1bmN0aW9u
LCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAoIWlzTnVsbGFibGUgfHwgIXZhbHVlLmlzTnVsbCgp
KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1zZyA9IGlzTnVs
bGFibGUgPyAibXVzdCBiZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24gb3IgbnVsbCIgOiAibXVz
dCBiZSBhIHdhc20gZXhwb3J0ZWQgZnVuY3Rpb24iOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxP
YmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCBt
c2cpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZ2xvYmFsLnR5cGUua2luZCA9PSBXYXNtOjpUeXBlS2luZDo6VHlwZUlkeCAmJiAod2Fz
bUZ1bmN0aW9uIHx8IHdhc21XcmFwcGVyRnVuY3Rpb24pKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRleCA9IGdsb2JhbC50eXBlLmlu
ZGV4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUluZGV4IGFy
Z0luZGV4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3YXNtRnVuY3Rpb24pCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uLT5z
aWduYXR1cmVJbmRleCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnSW5kZXggPSB3YXNtV3JhcHBlckZ1bmN0aW9u
LT5zaWduYXR1cmVJbmRleCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJh
bUluZGV4ICE9IGFyZ0luZGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2
bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50
IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2ggdGhlIHJlZmVyZW5jZSB0eXBlIikpKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIG1faW5zdGFuY2UtPmlu
c3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIGNhc2UgV2FzbTo6VHlwZUtpbmQ6OkV4dGVybnJlZjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlID0gZ2xvYmFsVmFsdWUtPmdsb2JhbCgpLT5nZXQoZ2xvYmFsT2JqZWN0KTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbC50eXBlLmlzTnVsbGFibGUo
KSAmJiB2YWx1ZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwg
aW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIm5vbi1udWxsIGV4
dGVybnJlZiBjYW5ub3QgYmUgbnVsbCIpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX2lu
c3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
YXV0byYgZGVjbGFyZWRHbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBv
cnQua2luZEluZGV4XS50eXBlOworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRlY2xhcmVk
R2xvYmFsVHlwZS5raW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgV2FzbTo6VHlwZUtp
bmQ6OkkzMjoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6STY0Ogog
ICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpGMzI6CkBAIC0yOTYsNyAr
MjY2LDMyIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBvcnRz
QW5kRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCBnbG9i
YWxWYWx1ZS0+Z2xvYmFsKCktPmdldFByaW1pdGl2ZSgpKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChXYXNtOjppc0V4dGVybnJlZihkZWNsYXJlZEdsb2JhbFR5cGUpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdl
dChnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFnbG9iYWwudHlwZS5pc051bGxhYmxlKCkgJiYgdmFsdWUuaXNOdWxsKCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJs
eUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJp
bXBvcnRlZCBnbG9iYWwiLCAibm9uLW51bGwgZXh0ZXJucmVmIGNhbm5vdCBiZSBudWxsIikpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEds
b2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKFdhc206OmlzRnVuY3JlZihkZWNsYXJlZEdsb2JhbFR5cGUpIHx8IFdhc206Omlz
UmVmV2l0aFR5cGVJbmRleChkZWNsYXJlZEdsb2JhbFR5cGUpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0gbnVsbHB0cjsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiog
d2FzbVdyYXBwZXJGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsdWUgPSBnbG9iYWxWYWx1ZS0+Z2xvYmFsKCktPmdldChnbG9iYWxPYmplY3QpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5SG9zdEZ1
bmN0aW9uKHZtLCB2YWx1ZSwgd2FzbUZ1bmN0aW9uLCB3YXNtV3JhcHBlckZ1bmN0aW9uKSAmJiAo
IWdsb2JhbC50eXBlLmlzTnVsbGFibGUoKSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG1zZyA9IGdsb2JhbC50eXBlLmlz
TnVsbGFibGUoKSA/ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6
ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlvbiI7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJv
cihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBn
bG9iYWwiLCBtc2cpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKFdhc206OmlzUmVmV2l0aFR5cGVJbmRleChkZWNsYXJl
ZEdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bGwoKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBwYXJhbUluZGV4ID0gZ2xvYmFsLnR5cGUu
aW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNpZ25hdHVyZUlu
ZGV4IGFyZ0luZGV4ID0gd2FzbUZ1bmN0aW9uID8gd2FzbUZ1bmN0aW9uLT5zaWduYXR1cmVJbmRl
eCgpIDogd2FzbVdyYXBwZXJGdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtSW5kZXggIT0gYXJnSW5kZXgpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2Vi
QXNzZW1ibHlMaW5rRXJyb3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1w
b3J0LCAiaW1wb3J0ZWQgZ2xvYmFsIiwgIkFyZ3VtZW50IGZ1bmN0aW9uIGRpZCBub3QgbWF0Y2gg
dGhlIHJlZmVyZW5jZSB0eXBlIikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEds
b2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3Jt
YXRpb24uZ2xvYmFsc1tpbXBvcnQua2luZEluZGV4XS50eXBlOwpAQCAtMzEzLDMzICszMDgsNiBA
QCB2b2lkIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjppbml0aWFsaXplSW1wb3J0c0FuZEV4cG9y
dHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAgICAgICAgICAgICAgICAgICAgIC8vIGlpaS4g
QXBwZW5kIFRvV2ViQXNzZW1ibHlWYWx1ZSh2KSB0byBpbXBvcnRzLgogICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKGdsb2JhbFR5cGUua2luZCkgewotICAgICAgICAgICAgICAgICAgICBjYXNl
IFdhc206OlR5cGVLaW5kOjpUeXBlSWR4OgotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206
OlR5cGVLaW5kOjpGdW5jcmVmOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzTnVs
bGFibGUgPSBnbG9iYWxUeXBlLmlzTnVsbGFibGUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IFdlYkFzc2VtYmx5RnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbVdyYXBwZXJGdW5j
dGlvbiA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2ViQXNzZW1i
bHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24sIHdhc21XcmFwcGVyRnVuY3Rp
b24pICYmICghaXNOdWxsYWJsZSB8fCAhdmFsdWUuaXNOdWxsKCkpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciogbXNnID0gaXNOdWxsYWJsZSA/ICJtdXN0IGJlIGEg
d2FzbSBleHBvcnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRl
ZCBmdW5jdGlvbiI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZh
aWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsIG1zZykpKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxUeXBlLmtp
bmQgPT0gV2FzbTo6VHlwZUtpbmQ6OlR5cGVJZHggJiYgKHdhc21GdW5jdGlvbiB8fCB3YXNtV3Jh
cHBlckZ1bmN0aW9uKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhc206OlNpZ25h
dHVyZUluZGV4IHBhcmFtSW5kZXggPSBnbG9iYWwudHlwZS5pbmRleDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXYXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAod2FzbUZ1bmN0aW9uKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdJbmRleCA9IHdhc21GdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFyZ0luZGV4ID0gd2FzbVdyYXBwZXJGdW5jdGlvbi0+c2lnbmF0dXJlSW5kZXgoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyYW1JbmRleCAhPSBhcmdJbmRleCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdl
KGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJBcmd1bWVudCBmdW5jdGlvbiBkaWQgbm90IG1h
dGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChp
bXBvcnQua2luZEluZGV4LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjYXNlIFdhc206OlR5
cGVLaW5kOjpFeHRlcm5yZWY6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdsb2JhbFR5
cGUuaXNOdWxsYWJsZSgpICYmIHZhbHVlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9i
YWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwi
LCAibXVzdCBiZSBhIG5vbi1udWxsIHZhbHVlIikpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1faW5zdGFuY2UtPmluc3RhbmNlKCkuc2V0R2xvYmFsKGltcG9ydC5raW5kSW5kZXgsIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBj
YXNlIFdhc206OlR5cGVLaW5kOjpJMzI6CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3Rh
bmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZS50b0ludDMy
KGdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNTYs
NyArMzI0LDI4IEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6OmluaXRpYWxpemVJbXBv
cnRzQW5kRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2luc3RhbmNlLT5pbnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCBi
aXR3aXNlX2Nhc3Q8dWludDY0X3Q+KHZhbHVlLmFzTnVtYmVyKCkpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChXYXNtOjppc0V4dGVybnJlZihnbG9iYWxUeXBlKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2xvYmFsVHlwZS5pc051bGxhYmxlKCkgJiYgdmFs
dWUuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNl
cHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBv
cnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBhIG5vbi1u
dWxsIHZhbHVlIikpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2luc3RhbmNlLT5p
bnN0YW5jZSgpLnNldEdsb2JhbChpbXBvcnQua2luZEluZGV4LCB2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKFdhc206OmlzRnVuY3JlZihnbG9iYWxUeXBlKSB8fCBX
YXNtOjppc1JlZldpdGhUeXBlSW5kZXgoZ2xvYmFsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBudWxscHRyOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKiB3
YXNtV3JhcHBlckZ1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIWlzV2ViQXNzZW1ibHlIb3N0RnVuY3Rpb24odm0sIHZhbHVlLCB3YXNtRnVuY3Rpb24s
IHdhc21XcmFwcGVyRnVuY3Rpb24pICYmICghZ2xvYmFsVHlwZS5pc051bGxhYmxlKCkgfHwgIXZh
bHVlLmlzTnVsbCgpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiBtc2cgPSBnbG9iYWxUeXBlLmlzTnVsbGFibGUoKSA/ICJtdXN0IGJlIGEgd2FzbSBleHBv
cnRlZCBmdW5jdGlvbiBvciBudWxsIiA6ICJtdXN0IGJlIGEgd2FzbSBleHBvcnRlZCBmdW5jdGlv
biI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3Jl
YXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZtLCBpbXBvcnRGYWlsTWVz
c2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCBtc2cpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFdhc206Omlz
UmVmV2l0aFR5cGVJbmRleChnbG9iYWxUeXBlKSAmJiAhdmFsdWUuaXNOdWxsKCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FzbTo6U2lnbmF0dXJlSW5kZXggcGFyYW1JbmRl
eCA9IGdsb2JhbC50eXBlLmluZGV4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
YXNtOjpTaWduYXR1cmVJbmRleCBhcmdJbmRleCA9IHdhc21GdW5jdGlvbiA/IHdhc21GdW5jdGlv
bi0+c2lnbmF0dXJlSW5kZXgoKSA6IHdhc21XcmFwcGVyRnVuY3Rpb24tPnNpZ25hdHVyZUluZGV4
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbUluZGV4ICE9IGFy
Z0luZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2Vw
dGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9y
dEZhaWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJBcmd1bWVudCBmdW5jdGlv
biBkaWQgbm90IG1hdGNoIHRoZSByZWZlcmVuY2UgdHlwZSIpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnN0YW5jZS0+
aW5zdGFuY2UoKS5zZXRHbG9iYWwoaW1wb3J0LmtpbmRJbmRleCwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC01NTQsNyArNTQzLDggQEAgdm9pZCBX
ZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6aW5pdGlhbGl6ZUltcG9ydHNBbmRFeHBvcnRzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWwKICAgICAgICAgICAgIHN3aXRjaCAoZ2xvYmFsLnR5cGUua2luZCkg
ewogICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RXh0ZXJucmVmOgogICAgICAgICAg
ICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RnVuY3JlZjoKLSAgICAgICAgICAgIGNhc2UgV2FzbTo6
VHlwZUtpbmQ6OlR5cGVJZHg6CisgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWY6
CisgICAgICAgICAgICBjYXNlIFdhc206OlR5cGVLaW5kOjpSZWZOdWxsOgogICAgICAgICAgICAg
Y2FzZSBXYXNtOjpUeXBlS2luZDo6STMyOgogICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2lu
ZDo6STY0OgogICAgICAgICAgICAgY2FzZSBXYXNtOjpUeXBlS2luZDo6RjMyOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vd2FzbS5qc29uIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vd2FzbS5qc29uCmluZGV4IDlkMjI1ZTRlODIyNDk2NjA0NDRmZjQxYWViYmEy
N2M2NGM3NmVlZjEuLjMyYzhhZjhiYmY1N2VhNjA1YjMzNTVhNTZkODgyZThkZGUxZTBlZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL3dhc20uanNvbgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS93YXNtLmpzb24KQEAgLTE2LDEyICsxNiwxMSBAQAogICAg
ICAgICAicmVmX251bGwiOiAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0yMCwgImIz
dHlwZSI6ICJCMzo6SW50NjQiIH0sCiAgICAgICAgICJyZWYiOiAgICAgICB7ICJ0eXBlIjogInZh
cmludDciLCAidmFsdWUiOiAgLTIxLCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfSwKICAgICAgICAg
ImZ1bmMiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtMzIsICJiM3R5cGUi
OiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ2b2lkIjogICAgICB7ICJ0eXBlIjogInZhcmludDci
LCAidmFsdWUiOiAgLTY0LCAiYjN0eXBlIjogIkIzOjpWb2lkIiB9LAotICAgICAgICAidHlwZV9p
ZHgiOiAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogLTEyOCwgImIzdHlwZSI6ICJCMzo6
SW50NjQiIH0KKyAgICAgICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1
ZSI6ICAtNjQsICJiM3R5cGUiOiAiQjM6OlZvaWQiIH0KICAgICB9LAogICAgICJ2YWx1ZV90eXBl
IjogWyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAiZXh0ZXJucmVmIiwgImZ1bmNyZWYiXSwK
ICAgICAiYmxvY2tfdHlwZSI6IFsiaTMyIiwgImk2NCIsICJmMzIiLCAiZjY0IiwgInZvaWQiLCAi
ZXh0ZXJucmVmIiwgImZ1bmNyZWYiXSwKLSAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0
ZXJucmVmIiwgInR5cGVfaWR4Il0sCisgICAgInJlZl90eXBlIjogWyJmdW5jcmVmIiwgImV4dGVy
bnJlZiIsICJyZWYiLCAicmVmX251bGwiXSwKICAgICAiZXh0ZXJuYWxfa2luZCI6IHsKICAgICAg
ICAgIkZ1bmN0aW9uIjogICAgeyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDAgfSwKICAgICAg
ICAgIlRhYmxlIjogICAgICAgeyAidHlwZSI6ICJ1aW50OCIsICJ2YWx1ZSI6IDEgfSwKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhYWMyZGQzZjMx
ZjMzYzJjN2YwNWVkYWQyZmM5YjU3YmE2NGMzNTdjLi5jMzEyNjRhYTVkOTQ5NzQzZDE4NGRlY2Q5
MGVkZmMxNjdlOGZmNGE2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDktMzAgIERtaXRyeSBCZXpoZXRza292
ICA8ZGJlemhldHNrb3ZAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0FTTS1GdW5jdGlvbi1SZWZl
cmVuY2VzXSBBZGQgY2FsbF9yZWYgc3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgYSBuZXcgcm91dGluZSB0byBydW4g
dHlwZWQgZnVuY3Rpb24gcmVmZXJlbmNlcyBzcGVjIHRlc3RzLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMS0xMC0yNiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBwcm9wZXJ0aWVzIHNl
dCBieSBOU1VSTFByb3RvY29sIG9uIE5TVVJMUmVxdWVzdCBiZWZvcmUgc2VyaWFsaXppbmcKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGNkMDc1YmE3NWZiN2Y2MjVkYmEyNmQ0YjEy
NTE0M2Q5NDJjMTE4NDUuLmM0OWFiMjI1N2JiY2Q0ZjM4M2E2ZGQzNWUyNTg4YWU2YmEwMTlmMmMg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTMzNyw2ICsxMzM3LDEwIEBAIGRl
ZiBydW5XZWJBc3NlbWJseVJlZmVyZW5jZVNwZWNUZXN0KG1vZGUpCiAgICAgcnVuV2ViQXNzZW1i
bHlTcGVjVGVzdEJhc2UobW9kZSwgInJlZi1zcGVjLWhhcm5lc3MiKQogZW5kCiAKK2RlZiBydW5X
ZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3BlY1Rlc3QobW9kZSkKKyAgICBydW5XZWJBc3Nl
bWJseVNwZWNUZXN0QmFzZShtb2RlLCAic3BlYy1oYXJuZXNzIiwgIi0tdXNlV2ViQXNzZW1ibHlU
eXBlZEZ1bmN0aW9uUmVmZXJlbmNlcz10cnVlIikKK2VuZAorCiBkZWYgcnVuV2ViQXNzZW1ibHlM
b3dFeGVjdXRhYmxlTWVtb3J5KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcmV0
dXJuIGlmICEkaml0VGVzdHMKICAgICByZXR1cm4gaWYgISRpc0ZUTFBsYXRmb3JtCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc2NGI5MjE2
Mjk0MDU2Nzg1MWJiNGFjOGM3ZmUyOTczNWQ0MDU0ZDkuLjA0ZjNiZDA4OWRhZTUxZDkxMjJhYzU1
YTIwYjhmZjY0MWMwZmU2NTggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDktMzAgIERtaXRyeSBCZXpo
ZXRza292ICA8ZGJlemhldHNrb3ZAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0FTTS1GdW5jdGlv
bi1SZWZlcmVuY2VzXSBBZGQgY2FsbF9yZWYgc3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzEwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgdGVzdHMgZm9yIGNhbGxf
cmVmIGluc3RydWN0aW9uIGZyb20gdGhlIHNwZWMgcmVwbzoKKyAgICAgICAgaHR0cHM6Ly9naXRo
dWIuY29tL1dlYkFzc2VtYmx5L2Z1bmN0aW9uLXJlZmVyZW5jZXMvYmxvYi9tYXN0ZXIvdGVzdC9j
b3JlL2NhbGxfcmVmLndhc3QuCisgICAgICAgIEFsc28gYWRkZWQgdGVzdHMgZm9yIEZ1bmNyZWYv
RXh0ZXJucmVmIGluIFdhc20gdGFibGVzIGFuZCBnbG9iYWxzIHRvIHRlc3QKKyAgICAgICAgbmV3
IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIEZ1bmNyZWYgPSAocmVmIG51bGwgZnVuY3JlZiku
CisgICAgICAgIAorICAgICAgICAqIHdhc20ueWFtbDoKKyAgICAgICAgKiB3YXNtL2Z1bmN0aW9u
LXJlZmVyZW5jZXMtc3BlYy10ZXN0cy9jYWxsX3JlZi53YXN0LmpzOiBBZGRlZC4KKyAgICAgICAg
KiB3YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzOgorICAgICAgICAoYXN5bmMg
dGVzdFJlZkdsb2JhbENoZWNrKToKKyAgICAgICAgKGFzeW5jIHRlc3ROb25OdWxsRXh0ZXJucmVm
SW5jb21wYXRpYmxlKToKKyAgICAgICAgKGFzeW5jIHRlc3ROb25OdWxsRnVuY3JlZkluY29tcGF0
aWJsZSk6CisgICAgICAgIChhc3luYyB0ZXN0V2FzbUpTR2xvYmFscyk6CisgICAgICAgIChhc3lu
YyB0ZXN0UmVmVHlwZXNJblRhYmxlcyk6CisgICAgICAgICogd2FzbS93YXNtLmpzb246CisKIDIw
MjEtMTAtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJlaXZld2VkLCBmaXggQ0xvb3AgYnVpbGQgYW5kIHRlc3QgZmFpbHVyZQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtLnlhbWwgYi9KU1Rlc3RzL3dhc20ueWFtbAppbmRleCAxZjQ1MWJjOTExOGNj
YWMzMzk4OTcwZWE0OWIyNTg5Y2FmMzNjYzI3Li5jMGNhMzBkMjNkYWE1OGIwOTRjZTRmNTFmZDNi
OTgyOTcyNzc1ZGVkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20ueWFtbAorKysgYi9KU1Rlc3Rz
L3dhc20ueWFtbApAQCAtMTM3LDYgKzEzNyw5IEBACiAtIHBhdGg6IHdhc20vdGhyZWFkcy1zcGVj
LXRlc3RzL3dhaXQtbGFyZ2Uud2FzdC5qcwogICBjbWQ6IHJ1bldlYkFzc2VtYmx5U3BlY1Rlc3Qg
Om5vcm1hbAogCistIHBhdGg6IHdhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy1zcGVjLXRlc3RzL2Nh
bGxfcmVmLndhc3QuanMKKyAgY21kOiBydW5XZWJBc3NlbWJseUZ1bmN0aW9uUmVmZXJlbmNlU3Bl
Y1Rlc3QgOm5vcm1hbAorCiAtIHBhdGg6IHdhc20vc3BlYy10ZXN0cy9hZGRyZXNzLndhc3QuanMK
ICAgY21kOiBydW5XZWJBc3NlbWJseVNwZWNUZXN0IDpub3JtYWwKIC0gcGF0aDogd2FzbS9zcGVj
LXRlc3RzL2FsaWduLndhc3QuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1y
ZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qcyBiL0pTVGVzdHMvd2FzbS9mdW5j
dGlvbi1yZWZlcmVuY2VzLXNwZWMtdGVzdHMvY2FsbF9yZWYud2FzdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NzJjNTY3MmIwMTA4OGJiYmMzODk5NDFkZTFhZWI2YmI3NTVmMjEyCi0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5jZXMtc3BlYy10ZXN0cy9jYWxsX3JlZi53
YXN0LmpzCkBAIC0wLDAgKzEsOTYgQEAKK2xldCAkMSA9IGluc3RhbmNlKCJceDAwXHg2MVx4NzNc
eDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDE4XHgwNFx4NjBceDAxXHg3Zlx4MDFceDdmXHg2MFx4
MDFceDdlXHgwMVx4N2VceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDYwXHgwMlx4NmJceDAwXHg3
Zlx4MDFceDdmXHgwM1x4MGFceDA5XHgwM1x4MDBceDAwXHgwMFx4MDFceDAyXHgwMVx4MDFceDAx
XHgwNlx4MWZceDA1XHg2Ylx4MDFceDAwXHhkMlx4MDRceDBiXHg2Ylx4MDJceDAwXHhkMlx4MDVc
eDBiXHg2Ylx4MDFceDAwXHhkMlx4MDZceDBiXHg2Ylx4MDFceDAwXHhkMlx4MDdceDBiXHg2Ylx4
MDFceDAwXHhkMlx4MDhceDBiXHgwN1x4MmFceDA2XHgwM1x4NzJceDc1XHg2ZVx4MDBceDAzXHgw
M1x4NjZceDYxXHg2M1x4MDBceDA0XHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAw
XHgwNVx4MDNceDY2XHg2OVx4NjJceDAwXHgwNlx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDdc
eDAzXHg2Zlx4NjRceDY0XHgwMFx4MDhceDA5XHgxN1x4MDVceDAzXHgwMFx4MDJceDAxXHgwMlx4
MDNceDAwXHgwMVx4MDRceDAzXHgwMFx4MDFceDA1XHgwM1x4MDBceDAxXHgwNlx4MDNceDAwXHgw
Mlx4MDdceDA4XHgwYVx4YTdceDAxXHgwOVx4MDdceDAwXHgyMFx4MDFceDIwXHgwMFx4MTRceDBi
XHgwN1x4MDBceDIwXHgwMFx4MjBceDAwXHg2Y1x4MGJceDA3XHgwMFx4NDFceDAwXHgyMFx4MDBc
eDZiXHgwYlx4MTVceDAxXHgwMlx4NmNceDAwXHhkMlx4MDFceDIxXHgwMVx4ZDJceDAyXHgyMVx4
MDJceDIwXHgwMFx4MjBceDAxXHgxNFx4MjBceDAyXHgxNFx4MGJceDE2XHgwMFx4MjBceDAwXHg1
MFx4MDRceDdlXHg0Mlx4MDFceDA1XHgyMFx4MDBceDIwXHgwMFx4NDJceDAxXHg3ZFx4MjNceDAw
XHgxNFx4N2VceDBiXHgwYlx4MThceDAwXHgyMFx4MDBceDUwXHgwNFx4N2VceDIwXHgwMVx4MDVc
eDIwXHgwMFx4NDJceDAxXHg3ZFx4MjBceDAwXHgyMFx4MDFceDdlXHgyM1x4MDFceDE0XHgwYlx4
MGJceDFlXHgwMFx4MjBceDAwXHg0Mlx4MDFceDU4XHgwNFx4N2VceDQyXHgwMVx4MDVceDIwXHgw
MFx4NDJceDAyXHg3ZFx4MjNceDAyXHgxNFx4MjBceDAwXHg0Mlx4MDFceDdkXHgyM1x4MDJceDE0
XHg3Y1x4MGJceDBiXHgxM1x4MDBceDIwXHgwMFx4NTBceDA0XHg3ZVx4NDJceDJjXHgwNVx4MjBc
eDAwXHg0Mlx4MDFceDdkXHgyM1x4MDRceDE0XHgwYlx4MGJceDE0XHgwMFx4MjBceDAwXHg1MFx4
MDRceDdlXHg0Mlx4ZTNceDAwXHgwNVx4MjBceDAwXHg0Mlx4MDFceDdkXHgyM1x4MDNceDE0XHgw
Ylx4MGIiKTsKKworYXNzZXJ0X3JldHVybigoKSA9PiBjYWxsKCQxLCAicnVuIiwgWzBdKSwgMCk7
Cithc3NlcnRfcmV0dXJuKCgpID0+IGNhbGwoJDEsICJydW4iLCBbM10pLCAtOSk7CisKKy8vIGNh
bGxfcmVmLndhc3Q6OTkKKy8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgKHJlZi5udWxsIDxoZWFw
dHlwZT4pOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NzA3Lgor
Ly8gKGFzc2VydF90cmFwIChpbnZva2UgIm51bGwiKSAibnVsbCBmdW5jdGlvbiIpCisKKy8vIGNh
bGxfcmVmLndhc3Q6OTkKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZk
XHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFc
eDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAxXHgwM1x4
MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgw
MVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1
XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtd
KSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMiIChpNjQuY29uc3QgMCkpIChpNjQu
Y29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTAwCitydW4oKCkgPT4gY2FsbChpbnN0YW5j
ZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4
MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2
MVx4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZl
XHgwMFx4MDFceDBhXHgxNVx4MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDFceDEwXHgwMFx4MDFc
eDQyXHgwMVx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQx
IiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmFjIiAo
aTY0LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMQorcnVu
KCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgw
MVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAy
XHgyNFx4MzFceDAzXHg2Nlx4NjFceDYzXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdc
eDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZceDAxXHgxNFx4MDBceDAyXHg0MFx4
NDJceDA1XHgxMFx4MDBceDAxXHg0Mlx4ZjhceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgw
Ylx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0
X3JldHVybiAoaW52b2tlICJmYWMiIChpNjQuY29uc3QgNSkpIChpNjQuY29uc3QgMTIwKSkKKwor
Ly8gY2FsbF9yZWYud2FzdDoxMDIKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4
NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3
ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NjZceDYxXHg2M1x4MDBceDAx
XHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFc
eDFlXHgwMVx4MWNceDAwXHgwMlx4NDBceDQyXHgxOVx4MTBceDAwXHgwMVx4NDJceDgwXHg4MFx4
ODBceGRlXHg4N1x4OTJceGVjXHhjZlx4ZTFceDAwXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgw
Ylx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0
X3JldHVybiAoaW52b2tlICJmYWMiIChpNjQuY29uc3QgMjUpKSAoaTY0LmNvbnN0IDcwMzQ1MzUy
Nzc1NzM5NjM3NzYpKQorCisvLyBjYWxsX3JlZi53YXN0OjEwMworcnVuKCgpID0+IGNhbGwoaW5z
dGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4
MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFceDdlXHgwMlx4MGVceDAxXHgwMlx4MjRceDMxXHgw
N1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3
XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxN1x4MDFceDE1XHgwMFx4MDJc
eDQwXHg0Mlx4MDBceDQyXHgwMVx4MTBceDAwXHgwMVx4NDJceDAxXHgwMVx4NTFceDQ1XHgwZFx4
MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAv
LyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDApIChpNjQuY29u
c3QgMSkpIChpNjQuY29uc3QgMSkpCisKKy8vIGNhbGxfcmVmLndhc3Q6MTA0CitydW4oKCkgPT4g
Y2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4
MDJceDYwXHgwMFx4MDBceDYwXHgwMlx4N2VceDdlXHgwMVx4N2VceDAyXHgwZVx4MDFceDAyXHgy
NFx4MzFceDA3XHg2Nlx4NjFceDYzXHgyZFx4NjFceDYzXHg2M1x4MDBceDAxXHgwM1x4MDJceDAx
XHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVc
eDAwXHgwMlx4NDBceDQyXHgwMVx4NDJceDAxXHgxMFx4MDBceDAxXHg0Mlx4MDFceDAxXHg1MVx4
NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwg
W10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYy1hY2MiIChpNjQuY29uc3QgMSkg
KGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMDUKK3J1
bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDBhXHgwMlx4NjBceDAwXHgwMFx4NjBceDAyXHg3ZVx4N2VceDAxXHg3ZVx4MDJceDBlXHgw
MVx4MDJceDI0XHgzMVx4MDdceDY2XHg2MVx4NjNceDJkXHg2MVx4NjNceDYzXHgwMFx4MDFceDAz
XHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MThc
eDAxXHgxNlx4MDBceDAyXHg0MFx4NDJceDA1XHg0Mlx4MDFceDEwXHgwMFx4MDFceDQyXHhmOFx4
MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQx
KSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZhYy1hY2MiIChp
NjQuY29uc3QgNSkgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxMjApKQorCisvLyBjYWxsX3Jl
Zi53YXN0OjEwNgorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAx
XHgwMFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDBceDAwXHg2MFx4MDJceDdlXHg3ZVx4MDFc
eDdlXHgwMlx4MGVceDAxXHgwMlx4MjRceDMxXHgwN1x4NjZceDYxXHg2M1x4MmRceDYxXHg2M1x4
NjNceDAwXHgwMVx4MDNceDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgw
MFx4MDFceDBhXHgyMFx4MDFceDFlXHgwMFx4MDJceDQwXHg0Mlx4MTlceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceDgwXHg4MFx4ODBceGRlXHg4N1x4OTJceGVjXHhjZlx4ZTFceDAwXHgwMVx4NTFc
eDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIs
IFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJmYWMtYWNjIiAoaTY0LmNvbnN0IDI1
KSAoaTY0LmNvbnN0IDEpKSAoaTY0LmNvbnN0IDcwMzQ1MzUyNzc1NzM5NjM3NzYpCisKKy8vIGNh
bGxfcmVmLndhc3Q6MTExCitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAx
XHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNc
eDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4
MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDBceDEwXHgwMFx4MDFceDQyXHgwMVx4MDFceDUxXHg0
NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBb
XSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDApKSAoaTY0
LmNvbnN0IDEpKQorCisvLyBjYWxsX3JlZi53YXN0OjExMgorcnVuKCgpID0+IGNhbGwoaW5zdGFu
Y2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBc
eDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4
NjlceDYyXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MTVceDAxXHgxM1x4MDBceDAyXHg0MFx4NDJceDAxXHgxMFx4MDBceDAx
XHg0Mlx4MDFceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIk
MSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImZpYiIg
KGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCAxKSkKKworLy8gY2FsbF9yZWYud2FzdDoxMTMKK3J1
bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4
MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgw
Mlx4MjRceDMxXHgwM1x4NjZceDY5XHg2Mlx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3
XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBc
eDQyXHgwMlx4MTBceDAwXHgwMVx4NDJceDAyXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4
MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3Jl
dHVybiAoaW52b2tlICJmaWIiIChpNjQuY29uc3QgMikpIChpNjQuY29uc3QgMikpCisKKy8vIGNh
bGxfcmVmLndhc3Q6MTE0CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2
ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAx
XHg3ZVx4MDJceDBhXHgwMVx4MDJceDI0XHgzMVx4MDNceDY2XHg2OVx4NjJceDAwXHgwMVx4MDNc
eDAyXHgwMVx4MDBceDA3XHgwN1x4MDFceDAzXHg3Mlx4NzVceDZlXHgwMFx4MDFceDBhXHgxNVx4
MDFceDEzXHgwMFx4MDJceDQwXHg0Mlx4MDVceDEwXHgwMFx4MDFceDQyXHgwOFx4MDFceDUxXHg0
NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBb
XSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAiZmliIiAoaTY0LmNvbnN0IDUpKSAoaTY0
LmNvbnN0IDgpKQorCisvLyBjYWxsX3JlZi53YXN0OjExNQorcnVuKCgpID0+IGNhbGwoaW5zdGFu
Y2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBc
eDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Nlx4
NjlceDYyXHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2
ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBceDAyXHg0MFx4NDJceDE0XHgxMFx4MDBceDAx
XHg0Mlx4YzJceGQ1XHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAiZmliIiAoaTY0LmNvbnN0IDIwKSkgKGk2NC5jb25zdCAxMDk0NikpCisKKy8vIGNhbGxfcmVm
Lndhc3Q6MTE3CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFc
eDAwXHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4
MDJceDBiXHgwMVx4MDJceDI0XHgzMVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFceDAzXHgw
Mlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTVceDAx
XHgxM1x4MDBceDAyXHg0MFx4NDJceDAwXHgxMFx4MDBceDAxXHg0Mlx4MmNceDAxXHg1MVx4NDVc
eDBkXHgwMFx4MGZceDBiXHgwMFx4MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10p
KTsgIC8vIChhc3NlcnRfcmV0dXJuIChpbnZva2UgImV2ZW4iIChpNjQuY29uc3QgMCkpIChpNjQu
Y29uc3QgNDQpKQorCisvLyBjYWxsX3JlZi53YXN0OjExOAorcnVuKCgpID0+IGNhbGwoaW5zdGFu
Y2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBc
eDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2NVx4
NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE2XHgwMVx4MTRceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceGUzXHgwMFx4MDFceDUxXHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4
cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9r
ZSAiZXZlbiIgKGk2NC5jb25zdCAxKSkgKGk2NC5jb25zdCA5OSkpCisKKy8vIGNhbGxfcmVmLndh
c3Q6MTE5CitydW4oKCkgPT4gY2FsbChpbnN0YW5jZSgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAw
XHgwMFx4MDBceDAxXHgwOVx4MDJceDYwXHgwMFx4MDBceDYwXHgwMVx4N2VceDAxXHg3ZVx4MDJc
eDBiXHgwMVx4MDJceDI0XHgzMVx4MDRceDY1XHg3Nlx4NjVceDZlXHgwMFx4MDFceDAzXHgwMlx4
MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTZceDAxXHgx
NFx4MDBceDAyXHg0MFx4NDJceGU0XHgwMFx4MTBceDAwXHgwMVx4NDJceDJjXHgwMVx4NTFceDQ1
XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygiJDEiLCAkMSkpLCAgInJ1biIsIFtd
KSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJldmVuIiAoaTY0LmNvbnN0IDEwMCkpIChp
NjQuY29uc3QgNDQpKQorCisvLyBjYWxsX3JlZi53YXN0OjEyMAorcnVuKCgpID0+IGNhbGwoaW5z
dGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4
MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYlx4MDFceDAyXHgyNFx4MzFceDA0XHg2
NVx4NzZceDY1XHg2ZVx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcy
XHg3NVx4NmVceDAwXHgwMVx4MGFceDE3XHgwMVx4MTVceDAwXHgwMlx4NDBceDQyXHhjZFx4MDBc
eDEwXHgwMFx4MDFceDQyXHhlM1x4MDBceDAxXHg1MVx4NDVceDBkXHgwMFx4MGZceDBiXHgwMFx4
MGIiLCBleHBvcnRzKCIkMSIsICQxKSksICAicnVuIiwgW10pKTsgIC8vIChhc3NlcnRfcmV0dXJu
IChpbnZva2UgImV2ZW4iIChpNjQuY29uc3QgNzcpKSAoaTY0LmNvbnN0IDk5KSkKKworLy8gY2Fs
bF9yZWYud2FzdDoxMjEKK3J1bigoKSA9PiBjYWxsKGluc3RhbmNlKCJceDAwXHg2MVx4NzNceDZk
XHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBceDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFc
eDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4
MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3NVx4NmVceDAwXHgwMVx4MGFceDE2XHgw
MVx4MTRceDAwXHgwMlx4NDBceDQyXHgwMFx4MTBceDAwXHgwMVx4NDJceGUzXHgwMFx4MDFceDUx
XHg0NVx4MGRceDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4i
LCBbXSkpOyAgLy8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAib2RkIiAoaTY0LmNvbnN0IDApKSAo
aTY0LmNvbnN0IDk5KSkKKworLy8gY2FsbF9yZWYud2FzdDoxMjIKK3J1bigoKSA9PiBjYWxsKGlu
c3RhbmNlKCJceDAwXHg2MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDA5XHgwMlx4NjBc
eDAwXHgwMFx4NjBceDAxXHg3ZVx4MDFceDdlXHgwMlx4MGFceDAxXHgwMlx4MjRceDMxXHgwM1x4
NmZceDY0XHg2NFx4MDBceDAxXHgwM1x4MDJceDAxXHgwMFx4MDdceDA3XHgwMVx4MDNceDcyXHg3
NVx4NmVceDAwXHgwMVx4MGFceDE1XHgwMVx4MTNceDAwXHgwMlx4NDBceDQyXHgwMVx4MTBceDAw
XHgwMVx4NDJceDJjXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0
cygiJDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJv
ZGQiIChpNjQuY29uc3QgMSkpIChpNjQuY29uc3QgNDQpKQorCisvLyBjYWxsX3JlZi53YXN0OjEy
MworcnVuKCgpID0+IGNhbGwoaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBc
eDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAwXHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4
MDFceDAyXHgyNFx4MzFceDAzXHg2Zlx4NjRceDY0XHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgw
N1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4MDBceDAxXHgwYVx4MTdceDAxXHgxNVx4MDBceDAy
XHg0MFx4NDJceGM4XHgwMVx4MTBceDAwXHgwMVx4NDJceGUzXHgwMFx4MDFceDUxXHg0NVx4MGRc
eDAwXHgwZlx4MGJceDAwXHgwYiIsIGV4cG9ydHMoIiQxIiwgJDEpKSwgICJydW4iLCBbXSkpOyAg
Ly8gKGFzc2VydF9yZXR1cm4gKGludm9rZSAib2RkIiAoaTY0LmNvbnN0IDIwMCkpIChpNjQuY29u
c3QgOTkpKQorCisvLyBjYWxsX3JlZi53YXN0OjEyNAorcnVuKCgpID0+IGNhbGwoaW5zdGFuY2Uo
Ilx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDlceDAyXHg2MFx4MDBceDAw
XHg2MFx4MDFceDdlXHgwMVx4N2VceDAyXHgwYVx4MDFceDAyXHgyNFx4MzFceDAzXHg2Zlx4NjRc
eDY0XHgwMFx4MDFceDAzXHgwMlx4MDFceDAwXHgwN1x4MDdceDAxXHgwM1x4NzJceDc1XHg2ZVx4
MDBceDAxXHgwYVx4MTZceDAxXHgxNFx4MDBceDAyXHg0MFx4NDJceGNkXHgwMFx4MTBceDAwXHgw
MVx4NDJceDJjXHgwMVx4NTFceDQ1XHgwZFx4MDBceDBmXHgwYlx4MDBceDBiIiwgZXhwb3J0cygi
JDEiLCAkMSkpLCAgInJ1biIsIFtdKSk7ICAvLyAoYXNzZXJ0X3JldHVybiAoaW52b2tlICJvZGQi
IChpNjQuY29uc3QgNzcpKSAoaTY0LmNvbnN0IDQ0KSkKKworLy8gVW5yZWFjaGFibGUgdHlwaW5n
LgorCisvLyBjYWxsX3JlZi53YXN0OjEyOQorbGV0ICQyID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3
M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDVceDAxXHg2MFx4MDBceDAxXHg3Zlx4MDNceDAy
XHgwMVx4MDBceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFceDYzXHg2OFx4NjFc
eDYyXHg2Y1x4NjVceDAwXHgwMFx4MGFceDA2XHgwMVx4MDRceDAwXHgwMFx4MTRceDBiIik7Cith
c3NlcnRfdHJhcCgoKSA9PiBjYWxsKCQyLCAidW5yZWFjaGFibGUiLCBbXSkpOworCisvLyBjYWxs
X3JlZi53YXN0OjEzNworbGV0ICQzID0gaW5zdGFuY2UoIlx4MDBceDYxXHg3M1x4NmRceDAxXHgw
MFx4MDBceDAwXHgwMVx4MGFceDAyXHg2MFx4MDFceDdmXHgwMVx4N2ZceDYwXHgwMFx4MDFceDdm
XHgwM1x4MDNceDAyXHgwMFx4MDFceDA3XHgwZlx4MDFceDBiXHg3NVx4NmVceDcyXHg2NVx4NjFc
eDYzXHg2OFx4NjFceDYyXHg2Y1x4NjVceDAwXHgwMVx4MDlceDA1XHgwMVx4MDNceDAwXHgwMVx4
MDBceDBhXHgwZFx4MDJceDA0XHgwMFx4MjBceDAwXHgwYlx4MDZceDAwXHgwMFx4ZDJceDAwXHgx
NFx4MGIiKTsKK2Fzc2VydF90cmFwKCgpID0+IGNhbGwoJDMsICJ1bnJlYWNoYWJsZSIsIFtdKSk7
CisKKy8vIGNhbGxfcmVmLndhc3Q6MTQ5CitsZXQgJDQgPSBpbnN0YW5jZSgiXHgwMFx4NjFceDcz
XHg2ZFx4MDFceDAwXHgwMFx4MDBceDAxXHgwYVx4MDJceDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBc
eDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJceDAwXHgwMVx4MDdceDBmXHgwMVx4MGJceDc1XHg2ZVx4
NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4MDVceDAxXHgw
M1x4MDBceDAxXHgwMFx4MGFceDEyXHgwMlx4MDRceDAwXHgyMFx4MDBceDBiXHgwYlx4MDBceDAw
XHg0MVx4MDBceGQyXHgwMFx4MTRceDFhXHg0MVx4MDBceDBiIik7Cithc3NlcnRfdHJhcCgoKSA9
PiBjYWxsKCQ0LCAidW5yZWFjaGFibGUiLCBbXSkpOworCisvLyBjYWxsX3JlZi53YXN0OjE2NAor
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAyNzgu
CisvLyBhc3NlcnRfaW52YWxpZCgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAx
XHgwYVx4MDJceDYwXHgwMVx4N2ZceDAxXHg3Zlx4NjBceDAwXHgwMVx4N2ZceDAzXHgwM1x4MDJc
eDAwXHgwMVx4MDdceDBmXHgwMVx4MGJceDc1XHg2ZVx4NzJceDY1XHg2MVx4NjNceDY4XHg2MVx4
NjJceDZjXHg2NVx4MDBceDAxXHgwOVx4MDVceDAxXHgwM1x4MDBceDAxXHgwMFx4MGFceDBmXHgw
Mlx4MDRceDAwXHgyMFx4MDBceDBiXHgwOFx4MDBceDAwXHg0Mlx4MDBceGQyXHgwMFx4MTRceDBi
Iik7CisKKy8vIGNhbGxfcmVmLndhc3Q6MTc5CisvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDI3OC4KKy8vIGFzc2VydF9pbnZhbGlkKCJceDAwXHg2
MVx4NzNceDZkXHgwMVx4MDBceDAwXHgwMFx4MDFceDBhXHgwMlx4NjBceDAxXHg3Zlx4MDFceDdm
XHg2MFx4MDBceDAxXHg3Zlx4MDNceDAzXHgwMlx4MDBceDAxXHgwN1x4MGZceDAxXHgwYlx4NzVc
eDZlXHg3Mlx4NjVceDYxXHg2M1x4NjhceDYxXHg2Mlx4NmNceDY1XHgwMFx4MDFceDA5XHgwNVx4
MDFceDAzXHgwMFx4MDFceDAwXHgwYVx4MTBceDAyXHgwNFx4MDBceDIwXHgwMFx4MGJceDA5XHgw
MFx4MDBceGQyXHgwMFx4MTRceDFhXHg0Mlx4MDBceDBiIik7CisKKy8vIGNhbGxfcmVmLndhc3Q6
MTk1Cithc3NlcnRfaW52YWxpZCgiXHgwMFx4NjFceDczXHg2ZFx4MDFceDAwXHgwMFx4MDBceDAx
XHgwNVx4MDFceDYwXHgwMVx4NmZceDAwXHgwM1x4MDJceDAxXHgwMFx4MGFceDA3XHgwMVx4MDVc
eDAwXHgyMFx4MDBceDE0XHgwYiIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2Z1bmN0aW9u
LXJlZmVyZW5jZXMvcmVmX3R5cGVzLmpzIGIvSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXJlZmVyZW5j
ZXMvcmVmX3R5cGVzLmpzCmluZGV4IDdiYWY5YzJjOTkxY2FiMTE1NDE3NjU2OGEwOTFjZTg0MTlm
ZTNiZTkuLjg2YmVjNjE5OThhYjAyOTBhMDhmNWQyNDk4YTlkNTMxMTliMjNlNTQgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi1yZWZlcmVuY2VzL3JlZl90eXBlcy5qcworKysgYi9K
U1Rlc3RzL3dhc20vZnVuY3Rpb24tcmVmZXJlbmNlcy9yZWZfdHlwZXMuanMKQEAgLTIwOCw3ICsy
MDgsNyBAQCBhc3luYyBmdW5jdGlvbiB0ZXN0UmVmR2xvYmFsQ2hlY2soKSB7CiAgICAgICApCiAg
ICAgfSwKICAgICBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsCi0gICAgIldlYkFzc2VtYmx5Lk1v
ZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBzZXRfZ2xvYmFsIDAgd2l0aCB0eXBlIEV4dGVybnJlZiIK
KyAgICAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHNldF9nbG9iYWwgMCB3
aXRoIHR5cGUgUmVmIHdpdGggYSB2YXJpYWJsZSBvZiB0eXBlIFJlZk51bGwsIGluIGZ1bmN0aW9u
IGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYnVmZmVyKScp
IgogICApOwogfQogCkBAIC0yNzIsNyArMjcyLDcgQEAgYXN5bmMgZnVuY3Rpb24gdGVzdE5vbk51
bGxFeHRlcm5yZWZJbmNvbXBhdGlibGUoKSB7CiAgICAgICAgICJceDAwXHg2MVx4NzNceDZkXHgw
MVx4MDBceDAwXHgwMFx4MDFceDA3XHgwMVx4NjBceDAxXHg2Zlx4MDFceDZiXHg2Zlx4MDNceDAy
XHgwMVx4MDBceDBhXHgwNlx4MDFceDA0XHgwMFx4MjBceDAwXHgwYlx4MDBceDBiXHgwNFx4NmVc
eDYxXHg2ZFx4NjVceDAxXHgwNFx4MDFceDAwXHgwMVx4NjYiCiAgICAgICApLAogICAgIFdlYkFz
c2VtYmx5LkNvbXBpbGVFcnJvciwKLSAgICAiY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4
cGVjdGVkIHR5cGUuIEV4dGVybnJlZiIKKyAgICAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3Qg
dmFsaWRhdGU6IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBSZWZO
dWxsIGlzIG5vdCBhIFJlZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3
IFdlYkFzc2VtYmx5Lk1vZHVsZShidWZmZXIpJykiCiAgICk7CiB9CiAKQEAgLTMwMCwxMCArMzAw
LDc1IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3ROb25OdWxsRnVuY3JlZkluY29tcGF0aWJsZSgpIHsK
ICAgICAgICAgIlx4MDBceDYxXHg3M1x4NmRceDAxXHgwMFx4MDBceDAwXHgwMVx4MDdceDAxXHg2
MFx4MDFceDcwXHgwMVx4NmJceDcwXHgwM1x4MDJceDAxXHgwMFx4MGFceDA2XHgwMVx4MDRceDAw
XHgyMFx4MDBceDBiXHgwMFx4MGJceDA0XHg2ZVx4NjFceDZkXHg2NVx4MDFceDA0XHgwMVx4MDBc
eDAxXHg2NiIKICAgICAgICksCiAgICAgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLAotICAgICJj
b250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gRnVuY3JlZiIKKyAgICAi
V2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxvdyByZXR1cm5z
IHdpdGggdW5leHBlY3RlZCB0eXBlLiBSZWZOdWxsIGlzIG5vdCBhIFJlZiwgaW4gZnVuY3Rpb24g
YXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShidWZmZXIpJyki
CiAgICk7CiB9CiAKK2FzeW5jIGZ1bmN0aW9uIHRlc3RXYXNtSlNHbG9iYWxzKCkgeworICBjb25z
dCBwcm92aWRlckluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUoCisgICAgYChtb2R1bGUKKyAg
ICAgICAgKGZ1bmMgKGV4cG9ydCAiZiIpIChwYXJhbSBmNjQpIChyZXN1bHQgZjY0KQorICAgICAg
ICAgIChsb2NhbC5nZXQgMCkpCisgICAgIClgLAorICAgIHt9LAorICAgIHsgcmVmZXJlbmNlX3R5
cGVzOiB0cnVlIH0KKyAgKTsKKworICBjb25zdCB3YXNtR2xvYmFsRnVuY3JlZiA9IG5ldyBXZWJB
c3NlbWJseS5HbG9iYWwoe3ZhbHVlOidmdW5jcmVmJywgbXV0YWJsZTp0cnVlfSk7CisKKyAgLy8g
TnVsbCBpcyBPSywgYmVjYXVzZSBGdW5jcmVmIGluIHR5cGVkIGZ1bmN0aW9uIHJlZmVyZW5jZXMg
cHJvcG9zYWwgcmVwcmVzZW50cyAocmVmIG51bGwgZnVuY3JlZikuCisgIGFzc2VydC5lcSh3YXNt
R2xvYmFsRnVuY3JlZi52YWx1ZSwgbnVsbCk7CisgIHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0g
bnVsbDsKKyAgYXNzZXJ0LmVxKHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlLCBudWxsKTsKKworICAv
LyBBIHdhc20gZnVuY3Rpb24gZnJvbSBvdGhlciBpbnN0YW5jZSBpcyBPSyB0b28gYmVjYXVzZSAo
cmVmICR0KSA8OiAocmVmIG51bGwgZnVuY3JlZikKKyAgd2FzbUdsb2JhbEZ1bmNyZWYudmFsdWUg
PSBwcm92aWRlckluc3RhbmNlLmV4cG9ydHMuZjsKKworICBhc3NlcnQudGhyb3dzKAorICAgICgp
ID0+IHdhc21HbG9iYWxGdW5jcmVmLnZhbHVlID0gY29uc29sZS5sb2csCisgICAgV2ViQXNzZW1i
bHkuUnVudGltZUVycm9yLAorICAgICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBm
dW5jdGlvbiAoZXZhbHVhdGluZyAnd2FzbUdsb2JhbEZ1bmNyZWYudmFsdWUgPSBjb25zb2xlLmxv
ZycpIgorICApOworCisgIGNvbnN0IHdhc21HbG9iYWxFeHRlcm4gPSBuZXcgV2ViQXNzZW1ibHku
R2xvYmFsKHt2YWx1ZTonZXh0ZXJucmVmJywgbXV0YWJsZTp0cnVlfSk7CisgIGFzc2VydC5lcSh3
YXNtR2xvYmFsRXh0ZXJuLnZhbHVlLCB1bmRlZmluZWQpOworICB3YXNtR2xvYmFsRXh0ZXJuLnZh
bHVlID0gY29uc29sZS5sb2c7CisgIGFzc2VydC5lcSh3YXNtR2xvYmFsRXh0ZXJuLnZhbHVlLCBj
b25zb2xlLmxvZyk7CisKKyAgd2FzbUdsb2JhbEV4dGVybi52YWx1ZSA9IHByb3ZpZGVySW5zdGFu
Y2UuZXhwb3J0cy5mOworICBhc3NlcnQuZXEod2FzbUdsb2JhbEV4dGVybi52YWx1ZSwgcHJvdmlk
ZXJJbnN0YW5jZS5leHBvcnRzLmYpOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0UmVmVHlwZXNJ
blRhYmxlcygpIHsKKyAgY29uc3QgcHJvdmlkZXJJbnN0YW5jZSA9IGF3YWl0IGluc3RhbnRpYXRl
KAorICAgIGAobW9kdWxlCisgICAgICAgIChmdW5jIChleHBvcnQgImYiKSAocGFyYW0gZjY0KSAo
cmVzdWx0IGY2NCkKKyAgICAgICAgICAobG9jYWwuZ2V0IDApKQorICAgICApYCwKKyAgICB7fSwK
KyAgICB7IHJlZmVyZW5jZV90eXBlczogdHJ1ZSB9CisgICk7CisKKyAgY29uc3Qgd2FzbVRhYmxl
RnVuY3JlZiA9IG5ldyBXZWJBc3NlbWJseS5UYWJsZSh7IGluaXRpYWw6IDEsIG1heGltdW06IDEs
IGVsZW1lbnQ6ICJmdW5jcmVmIiB9KTsKKyAgYXNzZXJ0LmVxKHdhc21UYWJsZUZ1bmNyZWYuZ2V0
KDApLCBudWxsKTsKKyAgd2FzbVRhYmxlRnVuY3JlZi5zZXQoMCwgcHJvdmlkZXJJbnN0YW5jZS5l
eHBvcnRzLmYpOworICBhc3NlcnQuZXEod2FzbVRhYmxlRnVuY3JlZi5nZXQoMCksIHByb3ZpZGVy
SW5zdGFuY2UuZXhwb3J0cy5mKTsKKworICBhc3NlcnQudGhyb3dzKAorICAgICgpID0+IHdhc21U
YWJsZUZ1bmNyZWYuc2V0KDAsIGNvbnNvbGUubG9nKSwKKyAgICBUeXBlRXJyb3IsCisgICAgIldl
YkFzc2VtYmx5LlRhYmxlLnByb3RvdHlwZS5zZXQgZXhwZWN0cyB0aGUgc2Vjb25kIGFyZ3VtZW50
IHRvIGJlIG51bGwgb3IgYW4gaW5zdGFuY2Ugb2YgV2ViQXNzZW1ibHkuRnVuY3Rpb24iCisgICk7
CisKKyAgY29uc3Qgd2FzbVRhYmxlRXh0ZXJucmVmID0gbmV3IFdlYkFzc2VtYmx5LlRhYmxlKHsg
aW5pdGlhbDogMSwgbWF4aW11bTogMSwgZWxlbWVudDogImV4dGVybnJlZiIgfSk7CisgIGFzc2Vy
dC5lcSh3YXNtVGFibGVFeHRlcm5yZWYuZ2V0KDApLCB1bmRlZmluZWQpOworICB3YXNtVGFibGVF
eHRlcm5yZWYuc2V0KDAsIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsKKyAgYXNzZXJ0LmVx
KHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIHByb3ZpZGVySW5zdGFuY2UuZXhwb3J0cy5mKTsK
KworICB3YXNtVGFibGVFeHRlcm5yZWYuc2V0KDAsIGNvbnNvbGUubG9nKTsKKyAgYXNzZXJ0LmVx
KHdhc21UYWJsZUV4dGVybnJlZi5nZXQoMCksIGNvbnNvbGUubG9nKTsKK30KKwogYXNzZXJ0LmFz
eW5jVGVzdCh0ZXN0UmVmVHlwZUxvY2FsKCkpOwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Tm9uTnVs
bFJlZlR5cGVMb2NhbCgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdFJlZlR5cGVJblNpZ25hdHVy
ZSgpKTsKQEAgLTMxNCwzICszNzksNSBAQCBhc3NlcnQuYXN5bmNUZXN0KHRlc3RFeHRlcm5yZWZD
b21wYXRpYmlsaXR5KCkpOwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Tm9uTnVsbEV4dGVybnJlZklu
Y29tcGF0aWJsZSgpKTsKIGFzc2VydC5hc3luY1Rlc3QodGVzdEZ1bmNyZWZDb21wYXRpYmlsaXR5
KCkpOwogYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Tm9uTnVsbEZ1bmNyZWZJbmNvbXBhdGlibGUoKSk7
Cithc3NlcnQuYXN5bmNUZXN0KHRlc3RXYXNtSlNHbG9iYWxzKCkpOworYXNzZXJ0LmFzeW5jVGVz
dCh0ZXN0UmVmVHlwZXNJblRhYmxlcygpKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS93YXNt
Lmpzb24gYi9KU1Rlc3RzL3dhc20vd2FzbS5qc29uCmluZGV4IDlkMjI1ZTRlODIyNDk2NjA0NDRm
ZjQxYWViYmEyN2M2NGM3NmVlZjEuLjMyYzhhZjhiYmY1N2VhNjA1YjMzNTVhNTZkODgyZThkZGUx
ZTBlZWQgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS93YXNtLmpzb24KKysrIGIvSlNUZXN0cy93
YXNtL3dhc20uanNvbgpAQCAtMTYsMTIgKzE2LDExIEBACiAgICAgICAgICJyZWZfbnVsbCI6ICB7
ICJ0eXBlIjogInZhcmludDciLCAidmFsdWUiOiAgLTIwLCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIg
fSwKICAgICAgICAgInJlZiI6ICAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAt
MjEsICJiM3R5cGUiOiAiQjM6OkludDY0IiB9LAogICAgICAgICAiZnVuYyI6ICAgICAgeyAidHlw
ZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC0zMiwgImIzdHlwZSI6ICJCMzo6Vm9pZCIgfSwKLSAg
ICAgICAgInZvaWQiOiAgICAgIHsgInR5cGUiOiAidmFyaW50NyIsICJ2YWx1ZSI6ICAtNjQsICJi
M3R5cGUiOiAiQjM6OlZvaWQiIH0sCi0gICAgICAgICJ0eXBlX2lkeCI6ICB7ICJ0eXBlIjogInZh
cmludDciLCAidmFsdWUiOiAtMTI4LCAiYjN0eXBlIjogIkIzOjpJbnQ2NCIgfQorICAgICAgICAi
dm9pZCI6ICAgICAgeyAidHlwZSI6ICJ2YXJpbnQ3IiwgInZhbHVlIjogIC02NCwgImIzdHlwZSI6
ICJCMzo6Vm9pZCIgfQogICAgIH0sCiAgICAgInZhbHVlX3R5cGUiOiBbImkzMiIsICJpNjQiLCAi
ZjMyIiwgImY2NCIsICJleHRlcm5yZWYiLCAiZnVuY3JlZiJdLAogICAgICJibG9ja190eXBlIjog
WyJpMzIiLCAiaTY0IiwgImYzMiIsICJmNjQiLCAidm9pZCIsICJleHRlcm5yZWYiLCAiZnVuY3Jl
ZiJdLAotICAgICJyZWZfdHlwZSI6IFsiZnVuY3JlZiIsICJleHRlcm5yZWYiLCAidHlwZV9pZHgi
XSwKKyAgICAicmVmX3R5cGUiOiBbImZ1bmNyZWYiLCAiZXh0ZXJucmVmIiwgInJlZiIsICJyZWZf
bnVsbCJdLAogICAgICJleHRlcm5hbF9raW5kIjogewogICAgICAgICAiRnVuY3Rpb24iOiAgICB7
ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMCB9LAogICAgICAgICAiVGFibGUiOiAgICAgICB7
ICJ0eXBlIjogInVpbnQ4IiwgInZhbHVlIjogMSB9LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>